Cuando trabajamos con motores de corriente continua no siempre las aplicaciones se limitan a una función de marcha plena en alguno de los dos sentidos posibles (CW y CCW). En la mayoría de los diseños debemos controlar las revoluciones por minuto de los motores de acuerdo al desarrollo efectuado y el sentido de giro que esta rotación debe tener. Es por esto que, cuando necesitamos invertir el movimiento mecánico del sistema debemos apelar a utilizar un puente H, en consecuencia, utilizaremos el mismo sistema que comenzamos a delinear en la segunda parte de esta serie de artículos. En esta etapa final, abordaremos los métodos más apropiados para controlar mediante la modulación de ancho de pulsos (PWM) la velocidad, el sentido de rotación y el frenado de un motor CC.
-
-
Haciendo un breve repaso de los conceptos elementales a tener en cuenta en nuestro desarrollo, donde será necesario controlar la velocidad, el sentido de giro y el frenado de un motor de corriente continua, podemos citar los principales fundamentos:
- La velocidad será controlada mediante modulación de ancho de pulsos (PWM).
- La inversión de giro será supervisada por un puente H.
- Para un frenado dinámico del motor, utilizaremos los transistores de las ramas inferiores del puente H con inclusión de PWM para variar la intensidad del frenado.
- Para un frenado regenerativo del motor, utilizaremos los diodos “volante” incorporados a cada transistor MOSFET de los cuatro que forman el puente H.
Con estos fundamentos bien razonados, asimilados y comprendidos, podemos dar paso al desarrollo de los programas (firmware) que utilizaremos en nuestra placa de entrenamiento vista en el artículo anterior. Como valor agregado, aquí te ofrecemos el modelo propuesto de circuito impreso para que puedas realizar también tú una placa de entrenamiento y logres experimentar todo lo necesario hasta descubrir cada uno de los misterios y secretos que encierra el funcionamiento de un motor gobernado por un puente H. Para el montaje y distribución de componentes sobre el PCB puedes guiarte con las imágenes del artículo anterior, el diagrama esquemático sugerido y los videos explicativos de aquel y del presente artículo. Además, queremos hacer hincapié en un detalle importante: no dejes de visitar los enlaces sugeridos en los puntos enumerados más arriba para refrescar los conceptos que darán soporte al desarrollo de este artículo.
El programa inicial
Como siempre, tomaremos el trabajo por su lado más sencillo para obtener, además de resultados inmediatos y con poco esfuerzo, aprendizajes importantes que sirvan a la comprensión de algunos secretos ocultos que encierran los puentes H, especialmente para aquellos que nunca han incursionado en su utilización. El primer ejemplo de lo mencionado se inicia en el artículo anterior. Para quienes no lo recuerdan, el avance (CW - Colckwise) en el sentido de las agujas del reloj o el retroceso (CCW - Counterclockwise) en el sentido inverso de giro, lo obteníamos mediante la activación en forma opuesta de los transistores de las ramas superiores e inferiores (marcadas en azul en el gráfico inferior).
Activación de los transistores (azul) para lograr los giros CW y CCW
Ahora, no solo volveremos a invertir el giro del motor sino que además, lo haremos controlando la velocidad de funcionamiento mediante la utilización de la modulación de ancho de pulsos. ¿Cómo se te ocurre que podemos realizar este trabajo sobre el puente H? ¿Aplicando PWM a los Gates de los transistores que antes activábamos de manera fija? ¡Por supuesto que no amigo! Lo que haremos será tan sencillo como activar de manera fija (con un estado alto a la salida correspondiente del PIC) el Gate del MOSFET de la rama inferior para obtener el giro esperado y solamente aplicaremos PWM al transistor de la rama superior. Como ejemplo puedes ver en la figura anterior que para el movimiento de avance, activaremos de manera fija a Q4 y aplicaremos PWM sobre Q1.
De este modo, evitarás conmutaciones innecesarias en la rama inferior del puente H con los eventuales problemas de desfasaje de tiempos en la conmutación entre uno y otro transistor. Por sobre todas las cosas, el programa del PIC se abrevia y simplifica junto con los problemas de hardware que otros diseños pueden acarrear. Un claro ejemplo de esto serían temperaturas de funcionamiento indeseadas en los transistores. ¿Comprendes la idea? La rama inferior se hace conducir en forma permanente (se la utiliza como una llave fija) y el verdadero control de velocidad se obtiene sobre un solo transistor. Algo que perecía tan complejo se simplifica a un solo transistor. Por lo tanto, el funcionamiento se reduciría a lo mostrado en el siguiente diagrama:
Las ramas inferiores se comportan como llaves fijas y el PWM se aplica sobre un solo transistor, en la rama superior
Comenzando a programar
Para generar PWM con un 16F628A, utilizaremos la técnica de desborde del TMR0 (Timer Cero) que tan buen resultado nos ha dado en artículos anteriores, donde ensayamos su uso con diodos LEDs. Haciendo un repaso muy breve de su funcionalidad, podemos recordarte que el TMR0 es un temporizador que actúa en un “detrás de la escena” mientras se desarrolla el programa principal. Es decir, por ejemplo, podemos organizar un programa que encienda un LED (A) cada 2 segundos y además, programar al TMR0 para que encienda otro (B) cada medio segundo. En este sencillo ejemplo obtendremos que el TMR0 “desbordará” (terminará la cuenta preestablecida) cada medio segundo haciendo encender el LED B, mientras que por su parte el LED A encenderá cada 2 segundos tal como decidimos que lo haga en las instrucciones del programa.
El TMR0 es un Timer (un bloque del hardware interno del PIC) que ejecuta instrucciones repetitivas cada un intervalo de tiempo ajustable por software. Este tiempo depende de la frecuencia del cristal empleado en el oscilador que regula el funcionamiento del PIC y del ajuste o “preset” de lo que se conoce como Prescaler. Este bloque funcional interno del PIC es programable y en palabras sencillas podríamos describirlo como un divisor de la frecuencia del oscilador. Por lo tanto, con el adecuado ajuste del prescaler podremos ajustar la frecuencia PWM deseada para nuestra aplicación. Afortunadamente existen herramientas que nos permiten ajustar las frecuencias de trabajo de salida del TMR0, el Timer de 8 bits del PIC (el TMR1 es de 16 bits de resolución), como así también seleccionar el ajuste óptimo del prescaler, como es el software PIC multi-calc y el PIC Timer Calculator.
PIC multi-calc puede ser una herramienta muy útil a la hora del diseño
Ambos programas poseen características muy similares donde requieren el ingreso de muy pocos datos elementales (frecuencia de cristal, timer a utilizar y valor inicial de conteo – offset- y valor opcional del prescaler). El resultado obtenido será el de la frecuencia de salida, que para nuestros ajustes y datos ingresados es de 968,992Hz (1Khz en valores prácticos). Como dato adicional, en la mayoría de los casos, estos programas generan de manera automática los bloques de programa necesarios para incrustar en el firmware que se está desarrollando. Un dato sobresaliente es que el PIC multi-calc permite obtener cálculos adicionales que serán de mucha utilidad. La sub-aplicación USART calc será de mucha utilidad cuando estemos diseñando sistemas comunicados a través de enlaces RS232 o redes RS485. No dejes de darles un vistazo.
El PWM visto en un osciloscopio virtual
En nuestro caso, con un cristal de 4Mhz y un prescaler ajustado a una relación 1:4 obtendremos una frecuencia de trabajo de 1Khz para el desborde del TMR0 tal como vemos en el trazo inferior de la imagen obtenida en el osciloscopio virtual. Esta señal estará presente en cada salida del puerto B del PIC donde asignemos un puerto en estado alto. Esto sucede porque trabajaremos sobre todo el conjunto de los 8 bits que forman el puerto, en consecuencia, cada vez que activemos una salida con estado alto (en especial a las ramas inferiores), por ejemplo HIGH PORTB.0, la misma traerá montada sobre sí una señal de 1Khz con impulsos de 256 microsegundos de duración. En la práctica, estos impulsos son imperceptibles en el trabajo a realizar y la salida se comportará como si fuese un estado alto activo sin perturbaciones. Observa esta aseveración en un video real.
Tal como mencionamos antes, el programa posee las bases del ejemplo ya mostrado donde activamos las 8 salidas de PWM a partir de un 16F628A y que hemos adaptado para el desarrollo del control de velocidad y sentido de giro del motor de corriente continua con el puente H. En la primera parte del bloque mostrado, tenemos los “alias” (SYMBOL) que utilizaremos en el programa para llamar a los distintos bits de los registros encargados de setear el registro de control del TMR0. Luego de declarar los “seudónimos” de los registros actualizaremos, a cada desborde del TMR0, los valores de variables que trasladarán los ciclos de trabajo hacia las salidas.
Inicio del programa para obtener el correcto funcionamiento del TMR0 y el Prescaler
Seguramente te estarás preguntando: ¿porque usamos los 8 bits del puerto siendo que sólo vamos a emplear dos para los Gates de los transistores de las ramas superiores? Paciencia amigos, necesitamos al menos 4 salidas PWM. Dos para un funcionamiento normal y otras dos para el momento del frenado controlado, cuando actuemos sobre las ramas inferiores del puente H. Además, el programa desarrollado “lee” los 8 bits formando el byte completo de salida al puerto. Por último, realizamos la puesta a cero de todas las variables, la puesta en marcha del TMR0 y el seteo del prescaler. Luego de este preludio obligado, comenzamos a trabajar y jugar directamente sobre las salidas. Vale aclarar antes de seguir que de no realizar esta serie de artilugios, que nos permiten obtener muchas salidas PWM desde un PIC elemental y económico, deberíamos utilizar microcontroladores más caros que posean 4 o más salidas PWM y la programación sería más sencilla. Sería una necedad negar esta realidad, pero el desafío es siempre lograr el máximo resultado con mínimos recursos y obtener así muchos aprendizajes útiles para esta y futuras aplicaciones.
El soft de funcionamiento del motor con la inclusión del pulsador "MAX"
Allí arriba está el sencillo listado del programa que nos permitirá hacer girar el motor en sentido horario (CW) y en sentido inverso ó anti-horario (CCW). ¿Quieres verlo en acción, funcionando y con todos los detalles mostrados en video? Avanza a la siguiente página. Pulsa sobre el pequeño rectángulo verde que encontrarás al finalizar este texto (a la derecha) y encontrarás toda la acción como ningún otro sitio web te la muestra. Mientras los demas sólo escriben, teorizan, copian y pegan, NeoTeo te muestra toda la emoción del funcionamiento de los proyectos explicados con todos los detalles y en imágenes propias, generadas en nuestros estudios centrales y planta transmisora. Avancemos a la segunda página. Allí verás el motor en funcionamiento.
-
¿Y tú, qué opinas?
-
#1kevenisac sábado, 06 de febrero de 2010, 16:15
Excelente trabajo Mario!,
Espero poder realizar este proyecto uno de estos días.
Recibe fuerte abrazo y un saludo muy cordial. -
#2Jorge sábado, 06 de febrero de 2010, 16:54
Es tal como decís...
Tuve una experiencia de este tipo en una silla de ruedas eléctrónica y quedé sorprendido en lo que se convertía la señal cuando se aplicaba a los motores.
Leyendo este articulo me quedo más tranquilo de que es una problema bastante común.
Sigan así.
Gracias Mario
-
#3
-
#4
Mario sábado, 06 de febrero de 2010, 22:12#2Hola Jorge
Sí. Es muy fuerte saber que todo lo que hemos hecho funciona de la mejor forma y cuando lo conectamos nos encontramos con un desastre incomprensible.
Lo importante es que a tu tranquilidad le hayamos aportado además, la explicación de "porqué" te encontrabas con esas raras formas de onda.
Gracias a tí por estar con nosotros Jorge. :) -
#5
-
#6LucasVega domingo, 07 de febrero de 2010, 02:37
Hola Mario:
Que bien como finalizaste la tercera parte de estos buenisimos articulos, ademas la explicacion con el bombillo ayudo mucho mas a entender como funcionaba todo el proceso, y pues ni que decir del osciloscopio que es una grandisima ayuda para ver y medir situaciones electronicas que se nos hace dificil entender.
Me gusto mucho lo de la FEM de verdad que no crei que se generara un voltaje tan alto, aunque sobra decir que es poca corriente, el voltaje que enciende el led verde es impresionante, te abre una puerta para experimentar con sistemas como recargas de baterias con sistemas movidos por viento por ejemplo, o por que no en nuestra bicicleta, bueno ojala mas a... Leer más -
#7Mechamon domingo, 07 de febrero de 2010, 07:39
Orale¡¡, exelente articulo muy bien explicado (ojala y los profesores en las escuelas explicaran asi, pero no¡¡), espero poder llevarlo a la practica muy pronto ya que no dispongo de mucho tiempo por ahora, pero creo que le podre dar un buen uso ya que en la escuela tengo un proyecto de una estufa solar y estoy pensando en automatizarla para que sola siga al sol y asi no se mueva el punto focal y creo que este puente H me podra ayudar gracias Sr. Mario por el aporte.
Una pregunta, me podra recomendar algun Mosfet canal P, para intentar hacer el cargador de baterias que le habia mencionado en el primer articulo.
Saludos desde México. -
#8
-
#9
-
#10
Mario domingo, 07 de febrero de 2010, 19:09¡Hola Yesbond!
Me alegra mucho que te haya gustado esta serie de artículos.
Realmente uno antes de hacer el trabajo piensa que un puente H es algo que no puede tener mayores misterios y sin embargo al momento de comenzar a trabajar las sorpresas brotan por todos lados.
Lo de la FEM "aprovechable" es un tema valedero y muy importante para cuando comencemos la construcción del coche eléctrico NeoTeo. (Nunca dejes de soñar)
Respecto al osciloscopio coincido contigo en que es una herramienta clave para saber que sucede "en el interior" de los circuitos. Le he pedido uno nuevo a Santa Claus en el artículo de Navidad, pero me ha dicho que prefería irse al car... Leer más -
#11
Mario domingo, 07 de febrero de 2010, 19:17Orale chavo !
Aún no logro saber tu nombre amigo.
"Pic-Codelic Trance" es un nombre muy largo. ¿No tienes uno más corto? :))
Por supuesto que este circuito puede serte útil para un seguidor solar. Solo bastaría utilizar las entradas opcionales (son pines que se ven en el video, cerca de los pulsadores) para conectar allí las señales resultantes de las fotocélulas o fotodiodos (o LEDs ....."Proyecto Girasol" ... ¿recuerdas?) y todo tiene que funcionar sin problemas. Claro que sí.
Respecto al transistor de canal P que podrías utilizar sería un IRF9Z34s
http://www.datasheetcatalog.com/datasheets_pdf/I/R/F/9/IRF9Z34S.shtml
o un IRF9540N
http... Leer más -
#12
-
#13jesus domingo, 07 de febrero de 2010, 20:00
#12No lo habia visto, la verdad es que está muy interesante. Pero yo me refería a grandes corrientes, 15-30A y controlado por un pic por PWM y IRFZ44N parecido a las entregas que nos has regalado estos últimos dias.
-
#14Mechamon lunes, 08 de febrero de 2010, 07:09
Hola gracias por contestar, empezaré a conseguir los mosfets para hacer pruebas con el cargador (aver que tal queda, si sale pondre algo aquí).
con respecto a lo del nombre largo, si ya me habian dicho algo sobre eso, nadie lo entiende (intento de fusionar Pic + psychedelic trance, nomas por k megusta el trance y el psych... y toda la musica electro... en general), no sé si se pueda cambiar el nombre aquí en NEOTEO (si se puede como le ago?), porcierto me llamo: (font zize= 0.5) Ismael (/end font).
(sarcasmo= on) Con razon te escondes el nombre (sarcasmo = off)
Saludos desde Puebla - México -
#15Desiderium lunes, 08 de febrero de 2010, 23:14
Hola... muy buenos artículos, aunque en sí, aún hace falta controlar la velocidad, seria bueno poder ponerle su retroalimentación y mediante un PID o un PI poder controlar la velocidad a pesar de la carga en el motor y optimizar el consumo de energía de nuestro sistema, lo cual nos permitiría por ejemplo ir a 80 kilómetros por hora constantes ya sea en una subida o en horizontal; E igualmente para el frenado.
Por cierto, no sé si no entendí bien, pero según yo, sólo necesitas poner los PWM en los mosfets de abajo, dejando activados los de arriba, además, cuando se haga el frenado controlado, de los dos de abajo, dejas uno conectado y al otro le aplicas el PWM.
Saludos! -
#16
Mario martes, 09 de febrero de 2010, 00:02Hola!
Suena muy interesante tu teoría!
¿Podrías armar toda una explicación detallada con textos, videos y el hardware correspondiente para que todos podamos enriquecernos?
Además, a tu propuesta le agregaría que la realimentación de las RPM para el PID debieras hacerla con sensores Hall para que no los afecte la tierra, el agua, barro, etc, en el coche eléctrico.
¡Sería muy bueno que un lector nos sorprenda con un auto eléctrico!
!Ánimo! Ya tienes la idea, ahora solo te falta el resto.
Una pregunta para el final:¿Que diferencia hay entre aplicar PWM a los MOSFET de arriba o a los de abajo? No olvides de incluír ese tópico en el trabajo.
Leer más -
#17juaneletas05 martes, 09 de febrero de 2010, 13:31
Hola Mario y toda la gente de NeoTeo.
Excelente artículo como siempre.
Una consulta para quien me pueda colaborar:
Estoy replicando el esquemático del siguiente link: http://www.monkeylectric.com/products/m132s_schematic.pdf
y quisiera saber qué transistores se podrían utilizar, veo que el IRFZ44 sería factible pero, en este caso no se requieren corrientes elevadas, a lo sumo 3 Amperios manejados a través del micro (5V sí o sí por simplicidad del diseño).
Gracias pos su atención, espero su pronta respuesta. -
#18juaneletas05 martes, 09 de febrero de 2010, 13:40
¿Los TIP141 y 146 serían recomendables?
Si el empaquetado es más bonito mejor, como esos que parecen un Amplificador Operacional. -
#19sureli viernes, 02 de julio de 2010, 01:20
Que tal Mario, antes que nada, felicitaciones por tremenda explicacion, un lujo...
Te cuento, estoy necesitando algo muy parecido, pero sin tener que usar un PIC... Yo lo que necesito es controlar el sentido de giro y la velocidad de un motor cc, mediante el solo accionamiento de un potenciometro. Lo que necesito es que cuando el pote este en la mitad de su recorrido, el motor no se mueva, y al girarlo para uno u otro lado, el motor gire para uno u otro lado, y que cuanto mas giro el pote, mas rapido funcione el motor (el potenciometro puede ser doble o no, que supongo que sera necesario)...
Bueno, espero puedas hecharme un cable, y desde ya, muchas gracias por tu tiempo
Un a... Leer más -
#20ingcinfante miércoles, 04 de agosto de 2010, 20:03
Estimado Mario:
Agradezco muchísimo estas publicaciones ya que me cuesta bastante la electrónica pero creo que gracias a estas explicaciones se me hace todo un poco más fácil.
Este material lo quiero utilizar para el control de velocidad de un motor para mantener alineado un sistema óptico (FSO) utilizando control óptimo y controladores PID. Agradezco si podrías facilitar un artículo para la parte de protección contra ruidos del circuito y además que creo que el problema es aún más simple si no integramos frenado regenerativo (para aplicaciones donde la potencia consumida por los motores es despreciable sobre la potencia total del sistema).
Agradezco tus comentarios, ... Leer más -
Cargando...
-
nuevo comentario
Nombre Campo obligatorio
Email Escriba una dirección de correo electrónico con el formato sunombre@ejemplo.com.
Campo obligatorio
-



