NOTA: este articulo ha sido extraído del original proveniente del sitio web varper-tech.com en la dirección http://varper-tech.com/articulo.php?idart=78. Allí podrás conseguir informacion mas detallada sobre la descarga de los archivos de código del microcontrolador y los archivos de simulación.
Resumen
Los motores paso a paso bipolares se caracterizan por tener dos bobinas independientes que al ser excitadas sincronizadamente, estas pueden actuar haciendo que rotor se mueva en uno u otro sentido y asimismo podríamos variar la velocidad del giro. Además de esto los motores paso a paso tienen una característica particular en la que podemos realizar una retención de la posición, a diferencia de los motores DC, los cuales no tienen esta característica.
Materiales usados
- Microcontrolador PIC18F2550
- 1 CI L298
- Fuente de poder de 5V
- 4 Pulsadores
- 1 Condensadores de 470nF
- 4 Resistencias de 10K
- 8 Diodos 1N4007
- 1 Bornera de 4 terminales o 2 de dos terminales
- Motor Paso a paso bipolar (se caracterizan por tener solo 4 cables) con un consumo menor a 3A
Herramientas utilizadas
- MPLAB C18.
- Proteus 7.4 SP3
Descripción
El circuito básicamente consta de un sistema capaz de controlar motores paso a paso bipolares basándonos en el uso de un microcontrolador PIC18F2550, este circuito puede servir de complemento para el desarrollo de sistemas robóticos o de control de posición con una precisión bastante aceptable.
Diagrama circuital
Gráfico 1. Diagrama circuital.
El microcontrolador consta de 4 pulsadores que se utilizan para variar la velocidad, sentido de giro y dar inicio o parar la secuencia. Estos pulsadores estan normalmente abiertos y tienen una resistencia en la entrada del micro que los pone siempre en alto mientras no esten pulsados, a esto se le conoce como logica inversa. El circuito no cuenta con un cristal para manejar el oscilador del microcontrolador porque este cuenta con un oscilador interno que ha sido configurado internamente en el codigo configuracion del microcontrolador.
Es de suma importancia colocar un condensador bypass de 470nF al menos en la fuente de 5V, y en caso de que usen una de 12V esta tambien debe llevar su respectivo capacitor, de no llevarlos el microcontrolador se reseteara constantemente, y podria sufrir daños permanentes.
Configuracion del L298
El circuito es algo sencillo, como se puede observar se tiene el circuito integrado L298 configurado de manera simplificada con sus entradas de habilitacion siempre en alto de modo que el mismo siempre esta activo, para alimentar el motor en este caso se hace con los mismos 5V ya que el motor utilizado para esta practica no requiere mucha corriente para moverse, sin embargo, dependiendo de cual motor usen, podrian necesitar 12V de alimentacion en la terminal 4 del L298. Las terminales 1 y 15 estan puestas directamente a tierra porque se esta haciendo un control muy sencillo en el que no necesitamos hacer un sensado de la corriente que pasa por cada una de las bobinas, sin embargo en otros articulos se visualiza como hacer uso de estas terminales, y como mejorar el rendimiento del circuito para controlar el motor. Ademas podemos mejorar la eficiencia energetica, cortar el paso de corriente cuando el motor se trave, entre otras cosas.
El uso de los 8 diodos en las terminales de salida del L298 es muy importante ya que evitan que el mismo sufra por las constantes descargas de la bobina del motor cuando se realiza una conmutacion, si estos no fueran colocados, se producirian sobreimpulsos que podrian dañar las salidas de este debido a que los niveles de voltaje exceden los valores tolerables. Ademas asi se evitan los resets indeseables en el microcontrolador causados por estas constantes descargas, e incluso podrian dañarlo completamente o alterar el PC (program counter) del mismo.
Gráfico 2. Muestra de la señal de una de las bobinas del motor con los diodos de proteccion (escala 2V/div).
En esta imagen se muestra el grafico de la señal de una de las bobinas del motor con sus respectivos diodos de proteccion observese que se observan picos de voltaje en cada flanco, estos se deben a que los diodos no conducen hasta que lleguen a su voltaje umbral por lo que dejan un excedente de voltaje por un corto periodo de tiempo mientras la corriente va descendiendo en la bobina.
Gráfico 3. Muestra de la señal de una de las bobinas del motor sin los diodos de proteccion (escala 5V/div).
En el grafico 3 se muestra la señal de una bobina del motor sin el diodo D1, D2 o D7, D8, observen que el pico de voltaje asciende casi a los 10V, lo que hace que esto sea un problema sobretodo cuando se trabaja con corrientes mas altas, en la parte inferior no se nota este sobresalto porque se le dejaron los diodos que conducen la corriente a tierra.
Algunos cambios
El circuito constituido por el L298 puede ser ligeramente modificado para realizar algunas pruebas y mejoras; las terminales 1 y 15 están puestas directamente a tierra ya que no se necesita un sistema de sensado de corriente por los momentos, sin embargo, es posible que ud lo desee. Estos sistemas de sensado pueden ser constituidos simplemente por una resistencia (de muy bajo valor) colocada en lugar de un cable, o en dado caso, si se requiere un mínimo de perdidas, se podría utilizar directamente un cable con un circuito amplificador para obtener una señal a partir de estas mediciones y así realizar cálculos como, por ejemplo, la corriente promedio que circula por el motor, implementar algún tipo de controlador o regulador de corriente para evitar sobrecalentamiento, existen muchas alternativas con respecto a esto. En los articulos relacionados podra conseguir algunos temas sobre el sensado de señales, que es muy util para este caso.
Formas de control
Para el control de los motores paso a paso bipolares se deben seguir algunas secuencias de pasos en la excitación de las bobinas, por ser estos motores de bobinas independientes debemos controlarlas cada una mediante un puente en H, que bien puede ser hecho a base de transistores o, en este caso utilizamos un circuito integrado muy común y muy versátil en este tipo de aplicaciones, les hablo del CI L298. Este circuito integrado tiene en su chip dos puentes H integrados los cuales manejan hasta 4 amperios cada uno. Esto lo hace ideal para la mayoría de aplicaciones con motores de mediana y alta potencia incluso.
Para el control de los pasos del rotor tenemos un tipo de secuencia que debemos seguir a la hora de ejecutar los movimientos esta secuencia es:
| PASO | TERMINALES | |||
| A | B | C | D | |
| 1 | +V | -V | +V | -V |
| 2 | +V | -V | -V | +V |
| 3 | -V | +V | -V | +V |
| 4 | -V | +V | +V | -V |
Para la parte del control de los pasos, el sentido de giro, entre otras cosas recurriremos al microcontrolador PIC18F2550, que mediante el código del mismo podremos realizar las secuencias de pasos de acuerdo a lo necesario para que el motor pueda moverse de manera controlada y estable, todo esto lo haremos siguiendo el diagrama de flujo descrito a continuación. Cabe destacar que este diagrama es una simplificación exhaustiva del código implementado originalmente, si desea el código completo puede ir a la sección descargas al final de este articulo.
Gráfico 4. Diagrama de flujo del código para el control del motor paso a paso bipolar.
Nótese que en este diagrama de flujo se muestra una máxima simplificación de los estados del control del motor, esto para evitar complejidad innecesaria al explicar el proceso.
En el proceso principal tenemos una rutina que se mantiene en un ciclo permanente verificando el estado de los pulsadores, en caso de que se active el pulsador correspondiente se incrementara, decrementara o cambiara el sentido de giro, aunque en el diagrama de flujo no esta reflejado, es importante recalcar la importancia de los retardos para evitar los rebotes en los pulsadores, además hay una rutina que evita que se realice un cambio hasta que el pulsador presionado se haya levantado. En el caso del pulsador P4 lo que se hace es cambiar el estado de una variable de 0xff a 0x00, indicando que esta parada o esta corriendo la secuencia. Al igual que el pulsador P4, el pulsador P3 alterna el valor de una variable que determina el sentido de giro actual, esto se vera reflejado en el orden de los pasos realizados por el motor.
Por otro lado en la rutina de servicio de interrupciones nos encontramos con el control de la secuencia de pasos, estos se van ejecutando siguiendo un orden establecido por una variable contador que se va incrementando en la medida que se ejecutan los pasos. Una vez que se haya ejecutado la secuencia de pasos, se establece la precarga del timer correspondiente a la interrupción para que este retarde la próxima rutina de servicio de interrupciones.
Nota: los indicadores RB0, RB1, RB2 y RB3 corresponden a los terminales de la bobina del motor, a su ves así se llaman los terminales en el micro correspondientes al puerto B.
No hay comentarios:
Publicar un comentario