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. |
|||||
|
* La velocidad será
controlada mediante modulación de ancho de pulsos (PWM). |
||||
|
Circuito impreso propuesto para el PCB de ensayos |
Vista de los componentes montados, según el software de diseño del PCB |
|||
El programa inicial |
|||||
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. |
||||
|
Las ramas inferiores se comportan como llaves fijas y el PWM se aplica sobre un solo transistor, en la rama superior |
||||
|
Comenzando
a programar |
||||
|
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. |
|||||
Una aplicación con un contador ascendente / descendente que puedes utilizar en cualquier proyecto. |
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. |
|||||
|
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. |
||||
|
|||||
Comienzan las pruebas |
|||||
|
Una invitada de lujo:
la FEM |
||||
|
|||||
|
Ahora sí, el motor de
corriente continua |
||||
|
La FEM puede transformar un hermoso pulso en un garabato incompresible |
||||
|
¿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: |
||||
Con el monitor
cardíaco que te presentamos puedes controlar, escuchar y ver tu ritmo
cardíaco. |
|||||
Servomotores |
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?
|
||||
Amperímetro 5Amper | |||||
Montajes | |||||
Monitor de tensión de línea | |||||
Robot Siguelíneas | |||||
Indice de montajes | |||||