Motor DC de corriente continua
El L293D es un controlador (driver) de motores, que permite encender y controlar dos motores de corriente continua desde Arduino, variando tanto la dirección como la velocidad de giro.
Como comentamos frecuentemente Arduino, y en general todos los autómatas, no disponen de potencia suficiente para mover actuadores. De hecho, la función de un procesador no debe ser ejecutar acciones si no mandar ejecutar acciones a drivers que realicen el “trabajo pesado”.
El L293D también puede controlar un único motor de paso a paso aunque, en general, preferiremos usar dispositivos específicamente diseñados para motores paso a paso.
Las características de son:
Los puertos de servomotor (engranaje de dirección) 1,2 de 5V están conectados al temporizador de alta resolución y alta precisión de Arduino, ¡sin fluctuaciones!
2. Hasta 4 motores CC bidireccionales y regulación de velocidad PWM de 4 vías (resolución de aproximadamente 0.5%)
3. Se pueden utilizar hasta 2 motores paso a paso para control de avance y retroceso, control de paso simple/doble, control escalonado o micro paso y control de ángulo de rotación.
4. Puente H de 4 vías: El chip L293D proporciona 0.6A (pico 1.2A) de corriente para cada puente y tiene protección de apagado térmico, 4,5 V a 36V.
5. Tire hacia abajo de la resistencia para asegurarse de que el motor permanezca detenido cuando se encienda.
6. El terminal grande facilita la conexión (10 - 22AWG) y la fuente de alimentación.
7. Con botón de Reinicio Arduino.
8,2 bloques de terminales de fuente de alimentación externa de terminal grande garantizan la separación de la potencia de accionamiento lógico y del motor.
¿Cómo funciona el driver L293D?
Un puente-H es un componente ampliamente utilizado en electrónica para alimentar una carga de forma que podemos invertir el sentido de la corriente que le atraviesa.
Internamente un puente-H es una formación de 4 transistores, conectados entre Vcc y GND, con la carga a alimentar entre ellos. Dibujado en esquema el conjunto tiene forma de “H”, de la que recibe su nombre su nombre.

Actuando sobre los 4 transistores, activando los transistores opuestos en diagonal de cada rama, podemos variar el sentido en el que la corriente atraviesa la carga.
Conectando simultáneamente los transistores superiores o inferiores, podemos poner la carga Vcc o Gnd respectivamente, configuración que usaremos como freno.
Por último, nunca debemos encender ambos transistores de un mismo ramal (izquierda o derecha), ya que estaremos provocando un cortocircuito entre Vcc y GND.
Para ello el módulo incorpora un regulador de voltaje que suministra la tensión necesaria en Vlógico. Este regulador puede desactivarse quitando el jumper de la placa. Desactivaremos el regulador cuando la tensión de alimentación sea inferior a 5V o superior a 15V.
Por tanto:
- Si el regulador está activado (jumper cerrado) Vlógico es una salida de 5V que podemos emplear para alimentar otros dispositivos.
- Si el regulador está desactivado (jumper abierto), Vlógico es una entrada a la que tendremos que proporcionar un voltaje de 4.5 a 5.5V.
Conexiones del driver:
Por otro lado, tenemos las dos clemas de conexión A y B que suministran la salida a los motores.Por último, tenemos los pines de entrada que controlan la dirección y velocidad de giro.
- Los pines IEA, IN1 e IN2 controlan la salida A.
- Los pines IEB, IN3 e IN4 controlan la salida B.
Los pines IEA y IEB desactivan la salida. Podemos conectarlos permanentemente mediante el uso de un jumper, o conectar una señal PWM para controlar la velocidad de giro.
Ejemplos de código
Para controlar los dos motores, debemos activar correctamente las salidas digitales conectadas a los pines IN1 y IN2 (salida A), o los pines IN3 e IN4 (salida B).
Las posibles combinaciones son:
| Adelante | Atrás | Freno | |
|---|---|---|---|
| IN1 (o IN3) | HIGH | LOW | LOW |
| IN2 (o IN4) | LOW | HIGH | LOW |
Respecto a los pines IEA y IEB, usaremos una salida PWM para controlar la velocidad de giro.
El siguiente código mueve hacia adelante el motor de la salida A al 80% de velocidad.const int pinENA = 6;
const int pinIN1 = 7;
const int pinIN2 = 8;
const int speed = 200; //velocidad de giro 80% (200/255)
void setup()
{
pinMode(pinIN1, OUTPUT);
pinMode(pinIN2, OUTPUT);
pinMode(pinENA, OUTPUT);
}
void loop()
{
digitalWrite(pinIN1, HIGH);
digitalWrite(pinIN2, LOW);
analogWrite(pinENA, speed);
delay(1000);
}Fuente de referncia blog de Luis LLamas: https://www.luisllamas.es/arduino-motor-corriente-continua-l298n/

No hay comentarios:
Publicar un comentario