TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: piriots en 31 de Enero de 2007, 16:51:32
-
Buenaaaaas!!!! Estoy usando el modulo PWm del pic junto con un L293B para manejar un motor de corriente continua de 12V . El PWM es de 100khz. El problema que tengo es que tengo que definir 24 duty cycle diferentes, o sea poder augmentar la tension en intervalos de 0.5v.
El modulo de PWM lo tengo configurado de la siguiente manera para conseguir los 100khz
setup_timer_2(T2_DIV_BY_1,9,1);
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
Lo que no se es como definir estos incrementos de 0.5v. Dicho de otra manera, que set_pwm2_duty(24); corresponda a 12v ¿Alguien sabe como hacerlo?
Salu2 y gracias
-
No conozco tu hardware pero si lo que quieres es cambiar el ciclo de trabajo del PWM estás en la vía correcta.
Yo que tu pruebo al 100% y al 0% y observo si cubres todo el rango que esperas. Sino, hay que modificar "algo" para que así sea.
Luego podrías probar con diferentes valores de ciclo de trabajo hasta ver si la relación es lineal o no.
Para ayudarte, podrías hacer alguna transmisión desde la PC por un RS232 al pic y de esa manera ir probando los 1024 valores posibles que puede tomar los registros que controlan el ciclo de trabajo del PWM.
Saludos
-
He hecho las pruebas y para conseguir este rango la configuración es : setup_timer_2(T2_DIV_BY_1,24,1); pero esta configuración tiene el problema que la frecuencia del PWM baja hasta los 40 Khz y creo que es un poco baja mara manejar un motor CC. He observado que a 11.5v el consumo del motor es de 0.230A y se oye un pitido acompañado y a 12v el consumo es de 0.3A, en este momento la frecuencia es 0 ya que el duty cycle esta al máximo.
¿Si le meto un filtro pasa-bajos a la salida del L293B para hacer que la frecuéncia de la señal sea lo mas próximo a 0 puede funcionar? ¿O que me recomendais?
Salu2 y gracias
-
He estado simulando en proteus y con un filtro paso bajo de segundo orden consigo una tension continua proporcional a la anchura del PWM. Ahora tengo una duda. Esta tension continua que sale del filtro tiene que alimentar un motor, ¿como puedo hacer para dar potencia a la señal? He pensado en utilizar un operacional de potencia para hacer el filtro, de esta forma poder manejar el motor directamente con la salida el operacional, pero no se si este metodo es recomendable. Todo comentario o consejo es bienvenido.
Salu2
-
Buenas!! Alguien me puede recomendar un operacional de potencia para controlar un motor? necesito uno que entregue una corriente de salida de unos 3A con una potencia de alrededor de 20-25W y que no necesite alimentacion simetrica. He encontrado el L165 pero me resulta dificil de encontrar y en el datasheet dice que hay que alimentarlo con tension simetrica. Espero vuestras recomendaciones.
Salu2 y gracias
-
..... He encontrado el L165 pero me resulta dificil de encontrar ....
Hola piriots
Cualquier IC que maneje más de 2A, para controlar un motor DC, vá a ser un tanto complejo de conseguir (no imposible)
Entiendo que usando sólo un IC, te resolvés la complejidad constructiva de implementar un puente H, pero a esa corriente, creo que te vá a ser más sencillo, realizar el puente H, que conseguir un IC de esa potencia.
Saludos.
Mario
-
Sí, tienes toda la razón. El problema es que hacer un buen puente en H con mosfets o BJT de potencia lleva tiempo y necesito un osciloscopio, sondas de corriente y demas material del que no dispongo, por este motivo decidí esta solución. Manda huevos que te manden un proyecto en la universidad y no te dejen un laboratorio para realizarlo. Usaría un L298 pero es un control para dos motores y en esta asignatura cuenta mucho que el componente elegido sea el mas adecuado. Desde este punto de vista el 298 queda sobredimensionado ya que solo se requiere controar un motor y por tanto encareces el proyecto inecesariamente. El profesor es muy exigente y me da un poco de miedo...
Si intento hacer un puente en H sin poder ver la conmutacion de los mosfets, haciendolo a ojímetro puedo conseguir algo mas que dolores de cabeza?
Otro problema es que la frecuéncia de PWM ha de ser de 40KHz, con las pruebas que he hecho a esta frecuéncia es rendimiento del motor es malisimo. De aqui la idea de usar un operacional de potencia, hago un filtro paso-bajo y saco una corriente totalmente continua con lo que mejora mucho el rendimiento del motor.
Como podeis ver estoy hecho un lio!! espero que me puedan iluminar un poco el camino.
Salu2
-
Usaría un L298 pero es un control para dos motores y en esta asignatura cuenta mucho que el componente elegido sea el mas adecuado. Desde este punto de vista el 298 queda sobredimensionado ya que solo se requiere controar un motor y por tanto encareces el proyecto inecesariamente. .....
Porqué sobredimensionado ? Si vós estabas buscando
.... necesito uno que entregue una corriente de salida de unos 3A ......
y el datasheet del L298 dice que es para 4A, porqué no ha de servirte ?
Más arriba leo que estás manejando valores de 0,3A, con esos valores, fijate en el datasheet del TA7291 (http://www.datasheetarchive.com/datasheet.php?article=3665189) en los distintos encapsulados que tiene.
Tal vez te sirva.
Ese IC es muy fácil de conseguir, ya que se usa en muchos equipos de CD como motor de carga de la bandeja de discos.
Quedo atento.
Saludos
Mario
-
A mi me sirve perfectamente, es mas, si por mi fuera ya lo habria utilizado, pero en este caso como quien manda es el profe pos... Digo sobredimensionado porque el integrado tiene dos puentes y solo necesito uno. Veo que he de elegir entre 2 posibilidades. Una es bajar la corriente de salida del circuito a 1A y usar el integrado que me recomiendas y la otra es hacer que el circuito controle 2 motores en vez de uno y uso el L298.
Creo que la forma mas rapida y con menos complicaciones es bajar la potencia del circuito, de esta manera el diseño es mas simple y los componentes mas baratos y mas sencillos de encontrar.
La corriente de salida del circuito la puedo elegir yo, no es un parametro impuesto por el profesor, por lo tanto la puedo adaptar a mis necesidades.
De momento las primeras pruebas las hice con un motorcillo de un coche de scalextric ya que no tenia nada mas, por esto la corriente de 0.3A
Muchas gracias por tus consejos!
Salu2
-
Hola Piriots!
No te olvides de la corriente en el arranque del motor. Suele ser hasta 10 veces la nominal (aunque durante un tiempo corto, quizas unos 500 ms) y si en lugar de 3A le haces circular al integrado 20 o 30A, no le va a gustar nada...:)
Yo controlo motores de CC directamente desde PIC -> MOSFET -> MOTOR, con un solo mosfet...para que el puente H?
Ahhh, quizas necesitas los dos sentidos de giro! Si no es asi, con un IRFZ44N tenes para manejar ese motor tranquilo, hasta sin disipador, y sin problemas con la corriente de arranque, se lo banca barbaro.
Saludos!
-
He estado simulando en proteus y con un filtro paso bajo de segundo orden consigo una tension continua proporcional a la anchura del PWM. Ahora tengo una duda. Esta tension continua que sale del filtro tiene que alimentar un motor, ¿como puedo hacer para dar potencia a la señal? He pensado en utilizar un operacional de potencia para hacer el filtro, de esta forma poder manejar el motor directamente con la salida el operacional, pero no se si este metodo es recomendable. Todo comentario o consejo es bienvenido.
Salu2
Si no quieres que la alimentacion del motor sea un PWM, sino una tension constante y puedes rebajar la corriente del motor hasta un amperio ¿para que el PIC, el PWM y el filtro?. Puedes directamente meterle un regulador de tension (tipo LM317 o similar, o algun LDO) con un potenciometro, aunque puede que el profesor exija el PIC y el software, pero si lo que quiere es economia, hay la tienes.
Si el profesor exige control digital siempre puedes usar el regulador de tension con un potenciometro digital, comandado por un PIC y asi te olvidas definitivamente del PWM.
-
Muchas gracias por vuestra colaboración! El proyecto tiene las siguientes especificaciones, hay que controlar un motor de corriente continua del comsumo que sea ( da igual 0.3A que 30A) con un pic y PWM , la alimentacion del motor se controla digitalmente con pasos de 0.5v.
Tambien hay que monitorear la corriente que consume el motor, el campo magnetico que genera, la temperatura y las RPM. Todos los datos hay que mostrarlos en un LCD y la unica interficie de comunicacion con el usuario para regular la alimentacion y ver los distintos datos son 3 pulsadores.
Lo que mas se valora del diseño es la elecion de los componentes mas apropiados y su disposición sobre el PCB.
Toda la parte de los sensores ya la tengo apañada y la interficie de usuario tambien. Solo me queda la parte de control del motor.
El uso del filtro paso bajos es porque si la señal es continua, con una resistencia de 0.1 ohm en serie con la salida, puedo meter la senyal directamente al ADC del pic a traves de un operacional cnfigurado como amplificador restador. Si la señal es PWM no puedo meterla al ADC del pic.
De ahi bienen los quebraderos de cabeza con la salida. Formas mas sencillas de hacerlo claro que las hay como usar el 317 pero debo de cumplir con las especificaciones del proyecto.
-
Esas especificaciones me suenan a que espera que elijas una solución concreta, la que tiene en mente quien las ha fijado, y si es así hay que intentar "adivinar" cual es, a lo que puede ayudar el conocer las "preferencias" de quien ha establecido el proyecto.
-
Buuuuuuuuuf!!!! saber lo que le pasa a este hombre por la cabeza es tarea imposible! Es un profesor bastante mayor y realmente es una enciclopedia, sabe muchisimo de todo, y tambien es muy exigente. El proyecto es un 40% de la nota de la asignatura o sea que es mejor currarselo un poco... por otra parte el tiempo apremia porque lo he de entregar a final de este mes montado y funcionando, para la documentacion tengo mas tiempo. Mi opinion es que considerar que un componente es mas adecuado que otro, en muchos casos es algo muy subjetivo, ya que no hay un solo componente que haga una tarea determinada. A ver que hago con la parte de salida...
Salu2
-
Hay nuevas noticias sobre el avance del proyecto. Ahora he de controlar de motor con punte en H y con opamp. El problema se me ha presentado con el opamp, ya que la simulacion dice una cosa y la realidad otra. Estoy probando el filtro con un 741, en proteus funciona de maravilla, en la realidad, consigo que la señal de salida sea continua pero no superior a 5V. Alimento al 741 con +15v y GND, no entiendo porque no supera los 5v.
Luego por otra parte para sensar las RPm del motor uso un CNY70, hasta ahi ningun problema. la salida del cny70 la conecto a un LM358 ,alimentado con +5v y GND, a la salida del LM358 tengo 3.5V. ¿ no deberia ser superior esta tension? Los pulsos de la salida del 358 van al timer1 del pic y lo usa como contador. Si meto los pulsos con el generador de funciones no tengo problema, pero si meto los pulsos de la salida del 358 solamente leo ruido, como si no hubiera nada conectado al pic.
¿Alguien tiene idea de como solucionar los dos problemas? adjunto la simulacion del filtro en proteus
Salu2
-
Si pasas la señal de 12V por el filtro pasabajos se elimina la componente que lleva la frecuencia fundamental (la del pwm), esta componente es la de mayor amplitud, creo que por esto solo alcanzas 5 voltios.
No se bien como funciona el cny70, pero si quieres tener a la salida del 358 voltajes de 5 voltios debes alimentarlo con un voltaje un poco mayor; si usas el timer supongo que la salida del cny70 son pulsos, de ser así no sería mejor usar un transistor en vez de un operacional?
Veo que usas un 741 y un 358, si no estoy mal el primero tiene un operacional y el otro tiene dos, no alcanzaría solo el 358 para la aplicación?
saludos,
-
Asi a votepronto el 741 tiene unas cuantas limitaciones, entre ellas una baja intensidad maxima de salida, lo que supone que baje su tensión de salida cuando se le pide una mayor de la que puede suministrar (ley de Ohm), desde luego no puede considerarse como un OP de potencia.
-
Para lo del CNY70 yo usaria un trigger schmitt, eso te subira el nivel alto a 5V, Lo he usado en robots siguelineas para detectar negro sobre blanco y meterlo al PIC, en concreto use la puerta 74HCT14, pero tiene 6 entradas, puede que encuentres una con menos que te vaya bien.
-
Si quereis me dais una colleja porque a veces hago unas tonterias... El PWM del pic es de 5V por esto como máximo conseguia 5v, en la simulación funciona porque los pulsos que le entro son de 12v. Meteré un transistor para amplificar a 12v los pulsos y ya deberia funcionar.
El 741 lo estaba usando para hacer pruebas, el de potencia es un L2722 que da 1A de salida.
5GTT, es un buen consejo el que me das, voy a bucear por mi chiringuito a ver si encuentro un 7414. Lo que no entiendo mucho es el porque de estos 3.5v. Un comparador es un circuito no lineal por lo tanto la salida deberia de ser cercana a la alimentacion, unos 4.5v o algo asi.
-
Buenas!!! Los problemas que tenia con el Cny70 se han solucionado usando el 7414, no hay como tener unos pulsos bien limpios de ruidos para obtener buenos resultados. La parte que ahun no he conseguido es amplificar el pwm del pic a 12v. Con un transistor no funciona con PWM, he probado con un comparador, pero me salen los pulsos de 5v entre 10 y 15v normal, pues el oparacional esta en saturacion. He probado con un diodo en paralelo a la salida de los pulsos para que me amorre la tension a 12v tampoco me ha funcionado. No se que mas probar!! ¿Tienen alguna idea??
Salu2
-
Hola Piriots!
Copia la parte que sigue de la pata tres del NE 555 en el esquema que esta en la gunda parte de este proyecto:
http://www.ucontrol.com.ar/Articulos/PWMNE555/pwmne555.htm
Saludos!
-
Muchas gracias Ariel! Solucionado! El error que cometia es que yo no ponia resistencia entre el colector y los +12v, por esto no conmutaba correctamente el transistor, ahora de ahi ya puedo meterlo en el filtro paso-bajos y al motor, ya falta menos para terminar. Con lo sencillo que seria alimentar el motor a traves del transistor... pero bueno el profe manda y hay que hacerle caso. Mañana me tirare el dia haciendo pruebas, ya comentare los resultados.
Salu2 y muchas gracias!
-
Me alegro que te haya sido util. :-/
Saludos!
-
En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
Hace tiempo que no leo una frase tan, pero tan acertada.
-
Bueno seguimos con esto! Ariel con el circuito que me propusiste del transistor funciona perfectamente, pero... Ahora biene cuando me pegais otro cachete :lol: Aqui complicandonos la vida con transistores y demas circuiteria externa. Puedo aprovechar el operacional del filtro para amplificar los pulsos!! Lo he simulado en proteus y funciona!! Si algunas veces creo que tengo la cabeza solo para peinarme.... A ver si el viernes me voy a comprar un par de condensadores que me hacen falta y lo pruebo en la protoboard. Si funciona ya hago el esquematico final y lo subo al foro por si le puede servir de ayuda a alguien y si no funciona pos.... try again :-)
Salu2
-
Bueno, al final con el operacional no consegui hacerlo andar, dejé de complicarme la vida y puse un L293 para controlar el motor, tenia alguna dificultad para arrancar con un duty cycle bajo, debido a la baja frecuencia del PWM (40Khz) pero funcionaba. El problema del aranque lo solucioné por software, haciendo que siempre arrancara con un duty cycle del 80% y luego bajara al valor introducido.
Ahora que he terminado los examenes voy ha rehacer el soft para adaptarlo a mis necesidades, motorcillos de coches de scalextric, suena un poco a juego de niño pero con un motor de 46000rpm estos cochecitos vuelan.
Tambien he cambiado la forma de alimentar el motor, ahora paso de pwm y le he puesto un potenciometro, que tengo mas resolución. Para no usar un potenciometro de potencia que son grandes, he aprovechado el operacional de potencia media para usarlo como seguidor de tension y dar la corriente al motor.
Los menus que configuran el equipo tengo pensado estructurarlos de la siguiente forma:
Probar motor: aqui se visualizaran las rpm del motor, el voltage de alimentacion, el consumo de corriente, la temperatura y la fuerza magnetica
Probar coxe: Probar : muestra las rpm del motor, la velocidad del coxe, el voltage y la corriente.
configurar: introducioms el diametro de la rueda trasera, de esta forma se puede calcular la velocidad del coxe
introducimos la relacion de trasmision para poder calcular la velocidad del motor sabiendo la de la rueda.
Que recursos del pic necesito?
3 timers : uno configurado como contador de pulsos, otro que salte cada segundo para sacar la frecuencia de los pulsos que provienen del cny 70 para sensar la velocidad de la rueda, y otro que salte cada cierto tiempo para actualizar los datos del LCD.
3 interrupciones por cambio de estado para los tres pulsadores
6 entradas anlogicas: 4 para voltages e intensidades de motor y coche una para el sensor de temperatura y otra para el sensor hall.
Creo que con esto ya sabre totos los parametros del coche que me interesan
El hardware ya lo tengo hecho, mas tarde o mañana pondre una foto del pcb.
Menudo ladrillo !!!!!!!!!!!
Salu2