Menu
in

PWM, MOSFET y Motores CC (Parte III)

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 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).

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:

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.

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.

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.

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.

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.

En la página anterior, donde te entregamos la rutina principal de funcionamiento, te recomendamos observar en el listado el estado inicial del sistema. Siempre estaremos atentos a la pulsación de cualquiera de los interruptores. Notarás también, que aquí ya utilizamos la totalidad de los incorporados en el desarrollo. La función del cuarto pulsador será la de incrementar el ciclo de trabajo al máximo, razón por la cual lo llamaremos “MAX” (cualquier similitud con nombres reales de personas activas en NeoTeo es mera coincidencia). Iniciamos entonces la explicación sosteniendo que mientras se mantenga pulsado el botón acoplado a PORTA.3 (STOP) (WHILE – WEND), los ciclos de trabajo aplicables a las ramas superiores del puente H se llevan a cero, mientras los transistores de las ramas inferiores se colocan en un estado de conducción plena para lograr un frenado máximo.

Luego observamos si se activan los botones de trabajo (PORTA.0 y PORTA.1) y saltamos a las etiquetas respectivas. Si esto no ocurre, mantenemos un lazo de detención y reposo del sistema. En algún momento, cuando una de las dos posibilidades se ejecuta, saltamos a la sub-rutina correspondiente, activamos el transistor de la rama inferior cual si fuera una llave fija y asignamos un valor de ciclo de trabajo (DUTY) a la salida que pretendemos activar sobre la rama superior del puente H. Un ciclo de trabajo con valor de variable 63 equivale a un 25% de la velocidad de giro del motor. Dentro de cada rutina de marcha estaremos pendientes de la condición de detención (PORTA.3) y de la aplicación del máximo ciclo de trabajo que nos permitirá alcanzar (de manera momentánea) el botón “MAX” (PORTA.2) Observa el funcionamiento del botón “MAX” en el siguiente video:

Comienzan las pruebas
¿Creías que comenzaríamos con un motor? Pues lamentamos decirte que no. Es necesario, antes de realizar cualquier ensayo, que observes algunos aspectos del funcionamiento del puente H en sus terminales de salida. Distorsiones inducidas por un mal diseño del circuito en el camino que traslada la señal PWM desde el PIC hasta los transistores MOSFET conmutadores de salida podrían provocar un verdadero desastre a la salida, en la forma de onda entregada al motor. Los resultados podrían ser impredecibles e impresentables, por lo tanto, las primeras pruebas que debemos realizar con el osciloscopio (luego de haber controlado las etapas intermedias) las haremos directamente a la salida de la carga del puente H. Allí estará la realidad. Y la mejor prueba se hará con una carga resistiva que en el video puedes ver que se trata de una lámpara incandescente de 25W la que nos inducirá un consumo total (a máxima potencia) de aproximadamente 2 Amperes. ¿Los resultados? Impecables. Tómate el tiempo de observar bien el video, las condiciones de trabajo (la aparición del convertidor DC-DC), la inversión del sentido de los impulsos del PWM (lo que equivaldría a la inversión de giro de un motor), la perfección en los flancos de subida y bajada de los impulsos y todos los detalles que completan la experiencia inicial con PWM variable sobre una lámpara.

Una invitada de lujo: la FEM
Un motor conectado a un puente H puede resultar una caja de sorpresas que nunca dejará de brindarnos enseñazas, descubrimientos y nuevos desafíos a cada paso que demos. Sin avanzar demasiado en la práctica y con sólo conectar el motor al puente H podemos observar en el osciloscopio conectado sobre la salida del sistema, es decir, sobre los bornes del motor mismo, un movimiento de tensión con sólo comenzar a mover su eje en forma manual. Hasta ahora habíamos hablado sobre el funcionamiento como generador de un motor de corriente continua y es en el siguiente video donde se nos permite ver todos los alcances insospechados que nos trae aparejados esta invitada invisible que es la fuerza electromotriz generada. Para los que no comprendieron el concepto del frenado regenerativo, explicado en artículos anteriores, bastará con ver el video e imaginar un motor dedicado a un montacargas, o a un coche eléctrico en una pendiente.

El motor, actuando como generador, podrá alcanzar velocidades mayores al máximo ciclo de trabajo y es allí donde será capaz de generar corrientes suficientes como para ser utilizadas en la recarga del sistema principal de baterías. En nuestro caso, no hemos podido construir un coche eléctrico, ni un montacargas para demostrar la funcionalidad que expresamos pero bastará aplicar el sentido común para darse cuenta de estas situaciones a la que un sistema puede exponerse en un sinnúmero de oportunidades. Observa la FEM en su polaridad y su valor. Este último dato no es menor y reafirma lo dicho antes. Si apenas con el giro de la mano logramos hacer funcionar un regulador serie 7805 (pon atención al LED rojo en el video), ¡Imagina lo que puedes lograr con un sistema motriz lanzado en velocidad!

Ahora sí, el motor de corriente continua
Cuando se toman todas las previsiones antes de emprender una tarea y se logran superar todos los obstáculos previos, el final del trabajo debiera ser un hecho que tendría que brotar desde el sistema como un resultado libre de situaciones inesperadas e inexplicables. Debiera caer como un fruto maduro, que se obtiene luego de un proceso natural e inevitable. Sin embargo, la realidad nunca deja de asombrarnos con sus infinitas variables ocultas que nos obligan a razonar y que a su vez nos hacen el enorme favor de enseñarnos, a cada paso, una nueva situación inesperada, intrigante y llena de planteamientos técnicos. ¿Porque mencionamos esto? Basta con mirar la imagen que resulta en el osciloscopio sobre el funcionamiento del motor y es imposible negar el estupor que nos invade.

¿Tan fea se volvió de repente la hermosa señal PWM que teníamos? Dicho de otro modo: ¿En qué momento Megan Fox se transformó en un sapo y no nos percatamos de ello? No amigos, no hay nada que temer. La correcta señal PWM está allí dentro de la imagen que vemos. Los altos valores de tensión que van desde la finalización de un DUTY hasta el inicio del otro es, ni más ni menos que la fuerza electromotriz que el motor genera (y aplica sobre los bornes de salida del punte H) durante los momentos en que mantiene el giro por inercia de funcionamiento y no recibe tensión de trabajo. Es en ese momento “muerto” que continúa girando y genera tensión por pasar a trabajar en modo generador. En el video se puede ver claramente el fenómeno. Alguien conocido por todos ustedes presenta las imágenes:

Esta fuerza electromotriz inducida, como mencionamos antes, podemos utilizarla para diversas aplicaciones dentro de nuestro diseño y hasta podemos eliminarla por completo mediante la utilización de varistores o resistencias de carga adicionales al sistema que sean capaces de absorber esta energía y no permitir que la misma “retorne” hacia el puente H. El inconveniente que acarrea cualquier método empleado es que el ciclo activo del PWM, es decir, el DUTY también energizará el dispositivo adicional arrastrando a los transistores a un drenaje mayor de corriente que el nominal. En nuestro ejemplo, hemos colocamos la lámpara utilizada en los ensayos previos y la FEM desaparecía casi en su totalidad. La desventaja de este procedimiento es que debemos agregar un elemento extra que consume 2 Amperes (la lámpara mencionada) para optimizar el uso de un motor que consume 1 Amper o menos. Verdaderamente un despropósito. Por último y para todos los seguidores del club de electrónica de NeoTeo el mensaje es muy claro: ya tenemos un nuevo desafío por delante, librar al motor de la FEM. ¿Te anotas?

Escrito por Mario

Leave a Reply