Control de motores DC

Las aplicaciones que tienen los motores CC ( DC) 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 CC ( DC) convencionales y los motores paso a paso (PAP) o stepper motor usando el driver L293D / L293B con los microcontroladores PIC programados en mikroC PRO.

Driver L293B

El circuito integrado L293B se ha diseñado con el propósito de realizar el control de los motores CC ( DC) 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

Pinout driver l293b

Conexión del driver l293b

Observe con cuidado la tabla de verdad 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 Z (sin importar el valor del voltaje de entrada Vi).

Control de motores dc con l293b

La tabla de verdad muestra la posibilidad de controlar dos motores CC ( 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

Driver L293D

El driver L293D 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

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

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

Tabla de verdad de control de giro con L293D

Control de motores CC / DC con L293D y PIC16F88

//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.
}
}
}