Crea, comparte, aprende y disfruta
Controlar motores de CC con el L293
El L293x (x por su múltiples versiones, B,D..etc) Es un integrado que posee en su interior dos puentes H lo que nos permite controlar en el sentido que giran dos motores de corriente continua.
Además nos soluciona otro importante problema, la salidas de los microcontroladores solo entregan 5V en su salida, esta cantidad de voltios es insuficiente para lograr que un motores de corriente continua se mueva. El L293 recibe señales de 5V y entrega, en sus salidas, el voltaje que le suministremos por su patilla 8.
También soluciona el problema del consumo, puesto que de otra forma, el amperaje que demandan los motores podría ser mayor que el que puede suministrar el microcontrolador y podríamos dañarlo.
Sus Terminales
Pin | Función | Descripción |
---|---|---|
1 | Enable 1 | cuanto esta a 1 ( es decir, esta recibiendo corriente) Activa el circuito uno del chip ( el que controlara el primer motor) Es importante no olvidarnos de esto. Ya que aunque el resto de la programación y el montaje sea correcto, y las señales lleguen bien, el circuito no hará absolutamente nada si esta patilla no esta a 1. |
2 | Input 1 | cuando ponemos corriente en esta patilla ( cuando hacemos que este a 1) la salida en output1 también será de 1 y el motor se moverá. |
3 | Output 1 | (Salida a Motor1) Una de las patillas que iran conectadas a los motores, si Enable 1 e Input 1 estan en alto e input 2 en bajo,esta patilla alimentará el motor para que se mueva. |
4 | GND | Conectada a Tierra |
5 | GND | Conectada a Tierra |
6 | Output2 | (Salida a Motor1) Una de las patillas que iran conectadas a los motores, si Enable 1 e Input 2 estan en alto e input 1 en bajo, esta patilla alimentará el motor para que se mueva. |
7 | Input 2 | cuando ponemos corriente en esta patilla ( cuando hacemos que este a 1) la salida en output2 también será de 1 y el motor se moverá. |
8 | Vs | Alimentación de los motores |
9 | Enable 2 | Permite que pueda darse una salida en Output 2 |
10 | Input 3 | Control de Output 3 (consultar la tabla de verdad) |
11 | Output3 | (Salida a Motor2) Una de las patillas que iran conectadas a los motores, si Enable 2 e Input 3 estan en alto e input 4 en bajo esta patilla alimentará el motor para que se mueva. |
12 | GND | Conectada a tierra |
13 | GND | Conectada a tierra |
14 | Output 4 | (Salida a Motor2) Una de las patillas que iran conectadas a los motores, si Enable 2 e Input 4 estan en alto e input 3 en bajo esta patilla alimentará el motor para que se mueva. |
15 | Input 4 | Control de Output 4 (consultar la tabla de verdad) |
16 | Vss | Alimentación del integrado (5V) |
Tabla de verdad
Enable | Input 1 | Input 2 | Output 1 | Output 2 | Comportamiento del motor |
---|---|---|---|---|---|
1 | 1 | 1 | 0 | 0 | Parado |
1 | 1 | 0 | 1 | 0 | Avanza |
1 | 0 | 1 | 0 | 1 | Retrocede |
1 | 0 | 0 | 0 | 0 | Parado |
0 | dc | dc | 0 | 0 | Parado |
Esta seria la tabla de verdad de la mitad del integrado L293. La mostramos así para facilitar su comprensión, ya que la otra mitad es simetrica a esta. La relación sería
Enable 1 | -> | Enable 2 |
Input 1 | -> | Input 3 |
Input 2 | -> | Input 4 |
Output 1 | -> | Output 3 |
Output 2 | -> | Output 4 |
La tabla completa, usando el L293 para controlar la puesta en marcha y direccón de dos motores sería
Enable | Input 1 | Input 2 | Output 1 | Output 2 | Enable 2 | Input 3 | Input 4 | Output 3 | Output 4 | Motor 1 | Motor 2 | Comportamiento del robot |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | Parado | Parado | Parado |
1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | Avanza | Avanza | Avanza |
1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | Retrocede | Retrocede | Retrocede |
1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | Avanza | Retrocede | Gira |
1 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | Retrocede | Avanza | Gira |
1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | Parado | Parado | Parado |
0 | dc | dc | 0 | 0 | 0 | dc | dc | 0 | 0 | Parado | Parado | Parado |
Existen más estados, pero sus resultados son poco útiles si lo que pretendemos es controlar un robot móvil, ya que darían como resultado acciones del tipo una rueda parada y otra en movimiento.
Funcionamiento
Como vemos en la imagen, el integrado cuenta con cuatro puertas AND, de tal forma que cuando el enable correspondiente a esa parte del integrado esta en alto y se activa un input, la salida relacionada con dicho input queda activada. Para cualquier otro caso, esa puerta entregará un 0.
Montajes con el L293D
Este es el montaje más tipico para este integrado. Con esta configuración podemos controlar si giran o no y en que sentido lo hacen los dos motores que tenemos conectados. Para simplificar el montaje, utilizaremos la versión D del integrado, es decir, un L293D. Esta versión lleva integrados los diodos que aparecen en el esquemático de arriba, así solamente tendremos que conectar y ponerlo a funcionar.
En la imagen usamos un Arduino para controlar los motores, pero podría usarse igualmente un PIC, un Pinguino, o cualquier otro microprocesador e ,incluso, unos botones.
Cargando este código a nuestro Arduino conseguiremos que los motores se muevan en todas las combinaciones posibles:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | /*Estos son los pines de la TrasBot conectados al controlador de motores*/ int i1 = 5;//Input 1 int i2 = 6;//Input 2 int i3 = 10;//Input 3 int i4 = 11;//Input 4 void setup(){ //indicamos que los pines de los motores son salidas pinMode(i1, OUTPUT); pinMode(i2, OUTPUT); pinMode(i3, OUTPUT); pinMode(i4, OUTPUT); } void loop(){ //avance digitalWrite(i1,HIGH); digitalWrite(i2,LOW); digitalWrite(i3,HIGH); digitalWrite(i4,LOW); delay(1000);//mantenemos la direccion durante 1 segundo //retroceso digitalWrite(i1,LOW); digitalWrite(i2,HIGH); digitalWrite(i3,LOW); digitalWrite(i4,HIGH); delay(1000);//mantenemos la direccion durante 1 segundo //giro a la derecha digitalWrite(i1,HIGH); digitalWrite(i2,LOW); digitalWrite(i3,LOW); digitalWrite(i4,HIGH); delay(1000);//mantenemos la direccion durante 1 segundo //giro a la izquierda digitalWrite(i1,LOW); digitalWrite(i2,HIGH); digitalWrite(i3,HIGH); digitalWrite(i4,LOW); delay(1000);//mantenemos la direccion durante 1 segundo } |
¡MUY IMPORTANTE CONTROLAR LOS SONSUMOS! El consumo total de los motores no puede superar el máximo que el L293 puede entregar en sus salidas.
Deja una respuesta