CONTROL DE DOS MOTORES DC CON
EL L293N, A VELOCIDAD CONSTANTE.
El L293N (x para sus múltiples
versiones, B, D..etc) es un sistema integrado que tiene dos puentes H en su interior
que nos permiten controlar en el sentido de que giran dos motores de CC.
También resuelve otro problema
importante, las salidas de los microcontroladores solo entregan 5V en su
salida, esta cantidad de voltios es insuficiente para hacer que los motores de
CC se muevan. El L293N recibe señales de 5V y 12V entrega.
También resuelve el problema
del consumo, ya que, de lo contrario, el amperaje exigido por los motores
podría ser mayor que lo que puede suministrar el microcontrolador y podríamos
dañarlo.
Sus terminales
Marcha
L293N integrado Como vemos en
la imagen, el integrado tiene cuatro compuertas AND, de modo que cuando la
habilitación correspondiente a esa parte del integrado es alta y se activa una
entrada, se activa la salida relacionada con esta entrada. Para cualquier otro
caso, esa puerta entregará un 0.
Montajes con la L293N
Este es el montaje más típico
para este integrado. Con esta configuración podemos controlar si giran o no y
en qué sentido hacen los dos motores que tenemos conectados. Para simplificar
el ensamblaje, utilizaremos la versión D integrada, es decir, una L293N. Esta
versión tiene diodos integrados que aparecen en el esquema anterior, así que
solo tenemos que conectarlo y ponerlo en funcionamiento.
En la imagen usamos un Arduino
para controlar los motores, pero también podemos usar un PIC, un Pinguino o
cualquier otro microprocesador, e incluso algunos botones.
Al cargar este código en
nuestro Arduino, los motores se moverán en todas las combinaciones posibles:
//https://ingenieriaiktronic.com
//https://roboticaytecnologia.com
//https://jlizarazurocha.com
// * Estos son los pines del
JIMMY LIZARAZU ROCHA conectados al controlador de dos motores * /
int i1 = 5; // Entrada 1
int i2 = 6; // Entrada 2
int i3 = 10; // Entrada 3
int i4 = 11; // Entrada 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 () {
//Avanzar
digitalWrite (i1, HIGH);
digitalWrite (i2, LOW);
digitalWrite (i3, HIGH);
digitalWrite (i4, LOW);
delay(1000); // mantener la
dirección durante 1 segundo
//retroceso
digitalWrite (i1, LOW);
digitalWrite(i2, HIGH);
digitalWrite (i3, LOW);
digitalWrite (i4, HIGH);
delay (3000); // mantener la
dirección durante 3 segundo
//gira a la derecha
digitalWrite(i1, LOW);
digitalWrite (i2, LOW);
digitalWrite (i3, HIGH);
digitalWrite (i4, LOW);
delay(5000); // mantener la
dirección durante 5 segundo
//doblar a la izquierda
digitalWrite (i1, HIGH);
digitalWrite(i2, LOW);
digitalWrite(i3, LOW);
digitalWrite (i4, LOW);
delay (5000); // mantener la
dirección durante 5 segundo
}