logo microc
    microC®
Líder en la programación de microcontroladores PIC
©2009-2012
Síguenos en    
logo facebook
Inicio La empresa. Contáctanos  | Cómo comprar nuestros productos  | Ofertas | Recursos | Mapa del sitio |

Control de motores de corriente directa DC y paso a paso PAP

Extracto del Capítulo XII del libro Cómo programar en lenguaje C los microcontroladores PIC16F88, 16F628A y 16F877A. 2da edición. 2010

Regístrate aquí para descargar una muestra gratis de este libro

Introducción

Las aplicaciones que tienen los motores eléctricos en el área de la automatización son muy amplias, van desde los juguetes hasta la robótica industrial, pasando por la medicina, las aplicaciones militares, la investigación espacial y submarina, los electrodomésticos, las computadoras, los dispositivos de entretenimiento, los simuladores, las máquinas herramientas, los automóviles, etc. En este capítulo se estudia en detalle el control de sentido de giro, velocidad y posición angular de los motores eléctricos de corriente continua convencionales y los motores paso a paso (PAP) o stepper motor.

Controlador - driver L293B

El circuito integrado L293B (tabla 12.1 y figuras 12.1, 12.2, 12.3 y 12.4) se ha diseñado con el propósito de realizar el control de los motores de manera óptima y económica. Está conformado por cuatro amplificadores push-pull capaces de entregar una corriente de salida de 1A por canal. Cada canal está controlado por entradas compatibles con los niveles TTL y cada par de amplificadores (un puente completo) está equipado con una entrada de habilitación, que puede apagar los cuatro transistores de salida. Tiene una entrada de alimentación independiente para la lógica, de manera que se puede polarizar con bajos voltajes para reducir la disipación de potencia. Los cuatro pines centrales se emplean para conducir el calor generado hacia el circuito impreso. Sus características sobresalientes son las siguientes:
  • Corriente de salida de 1A por canal.
  • Corriente pico de salida 2A por canal (no repetitiva).
  • Pines de Habilitación.
  • Alta inmunidad al ruido.
  • Fuentes de alimentación separadas.
  • Protección contra exceso de temperatura.
valores maximos del
                                        driver l293b

Tabla 12.1 Valores máximos absolutos del driver L293B


driver l293b

Figura 12.1 Distribución de terminales del driver L293B


conexión del
                                        driver l293b
Figura 12.2 Diagrama de bloques del driver L293B y tabla de verdad (Z= Alta impedancia de salida). Se muestran diferentes tipos de conexión de motores DC.

Observe con cuidado la tabla de verdad de la figura 12.2 y note que si el voltaje de entrada de habilitación Vinh tiene un nivel ALTO el voltaje de salida Vo tendrá el mismo nivel (ALTO o BAJO), aunque NO el mismo valor, del nivel de entrada Vi. Algo que debe tenerse muy en cuenta es que los valores del voltaje de entrada Vi no son los mismos valores del voltaje de salida Vo, ya que Vi corresponde a valores TTL mientras que Vo es el voltaje de alimentación de los motores Vs.

Por otro lado, si Vinh tiene un valor BAJO, el pin de salida se pone en estado de alta impedancia (sin importar el valor del voltaje de entrada Vi).

control de motores
                                        dc con l293b

Figura 12.3 Control de motores DC (con conexión al positivo y al negativo de la fuente). Tabla de verdad.

La tabla de verdad de la figura 12.3 muestra la posibilidad de controlar dos motores DC en el mismo sentido de giro, con la diferencia de que M1 girará si la entrada A tiene un nivel BAJO, mientras que M2 girará si la entrada B tiene un nivel ALTO.

control de giro con
                                        l293b

Figura 12.4 Control de giro en ambos sentidos de un motor eléctrico DC

Controlador - driver L293D

El driver L293D (figura 12.5) es similar al L293B, se diferencia fundamentalmente en su máxima corriente de salida y en la incorporación de los diodos de protección en cada uno de los cuatro amplificadores. Sus características principales son las siguientes:
  • Corriente de salida de 600 mA por canal.
  • Corriente pico de salida 1,2A por canal (no repetitiva).
  • Pines de Habilitación.
  • Alta inmunidad al ruido.
  • Fuentes de alimentación separadas.
  • Protección contra exceso de temperatura.
  • Diodos de protección incorporados.
driver
                                            l293d

Figura 12.5 Diagrama de bloques del driver L293D

Está diseñado para recibir niveles TTL y alimentar cargas inductivas (relés, motores DC y PAP bipolares y unipolares) y transistores de potencia de conmutación. Este dispositivo se puede usar en aplicaciones de conmutación hasta los 5 kHz. Está encapsulado en formato DIP16 y sus cuatro pines centrales se han conectado juntos y se emplean como disipadores de calor.

Conexión del driver L293D al PIC

El control de giro de motores DC por medio del driver L293D se detalla en el siguiente ejemplo. También puede emplearse el L293B tomando en cuenta que se deben añadir los diodos de protección (pueden ser del tipo 1N4007) como se indica en la figura 12.4.

Ejemplo-MotorDC_01.c: Conexión típica de un motor eléctrico DC al PIC a través del driver L293D (figuras 12.6.1 y 12.6.2). El giro del motor está determinado por el estado de los pines RB0 y RB1 de acuerdo a la tabla 12.2. El pin RB0 determina el encendido o apagado del motor, mientras que RB1 controla el sentido de giro.
tabla de
                                                verdad
Tabla 12.2 Tabla de verdad del problema MotorDC_01.c

circuito con l293d
                                                y pic

Figura 12.6.1 Circuito de control de motores DC (También para el PIC16F628A)

//MotorDC_01.c
void main(){
OSCCON=0x60;                //Oscilador interno a 4MHz (TCI=1 us).
while (OSCCON.IOFS==0);     //Esperar mientras el oscilador está inestable.
PORTB=0x00;                 //Inicialización.
NOT_RBPU_bit=0;             //Habilitar las pull-up.
TRISB=0b11100011;           //RB<4:2> como salidas.
while (1){
 if (RB0_bit==0) RB4_bit=0;         //Motor desconectado.
 if (RB0_bit==1){
  if (RB1_bit==0) PORTB=0b00011000; //Giro a la derecha.
  if (RB1_bit==1) PORTB=0b00010100; //Giro a la izquierda.
 }
}
}

Temas relacionados que también encontrarás en este libro:
  • Motores paso a paso - PAP (Stepper / Stepping motor)

  • Motores PAP bipolares

  • Motores PAP unipolares

  • Configuración de las bobinas

  • Conexión de motores PAP bipolares al PIC

  • Conexión de motores PAP unipolares al PIC

  • Más ejemplos de programación



Si esta información te ha sido útil
entonces considera la posibilidad
de hacer una contribución para microC.
Tu apoyo es muy importante para seguir adelante.
Muchas gracias.






Copyright © microC
Quito-Ecuador