Descripción
Este controlador dual de motores, modelo L9110S (L-9110) nos permite controlar dos motores, o bien un único motor paso a paso. Su pequeño tamaño (28×21 mm), su manejo sencillo y su bajo precio hacen que sea uno de los controladores más usados en proyectos de pequeña potencia
Su tensión de alimentación debe estar en el rango 2,5-12V y su corriente de salida máxima es de 800mA (1,5A en pulsos de corta duración).
El conexionado es muy sencillo. Para controlar un par de motores DC con control del sentido de giro se conectará así:
- Motor A: Conexión del motor A
- Motor B: Conexión del motor B
- Vcc del L9110: a 5V de Arduino (o a la tensión necesaria).
- GND del L9110: A GND de Arduino
- A-1A del L9110: Al pin D5 de Arduino
- A-1B del L9110: Al pin D6 de Arduino
- B-1A del L9110: Al pin D10 de Arduino
- B-1B del L9110: Al pin D11 de Arduino
Las entradas A y B del módulo se usan para indicar en qué sentido debe girar el motor. Además, realizando PWM sobre estas señales puede regularse la velocidad de giro del motor. Si la entrada A y B del mismo motor toman igual valor (ambas LOW o ambas HIGH) el motor se detiene. Si A y B son distintas el motor gira en un sentido u otro.
Disponemos también de un kit con hélice para iniciarse en el uso de este driver L9110.
Código de ejemplo:
#define A1 5 // Conexión de A-1A y A-1B #define A2 6 #define B1 10 // Conexión de B-1A y B-1B #define B2 11 // *** CONFIGURACIÓN *** void setup() { pinMode(A1, OUTPUT); // Pines Ax y Bx como salida pinMode(A2, OUTPUT); pinMode(B1, OUTPUT); pinMode(B2, OUTPUT); digitalWrite(A1, LOW); // En el inicio a LOW (motor parado) digitalWrite(A2, LOW); digitalWrite(B1, LOW); digitalWrite(B2, LOW); } // *** CÓDIGO PRINCIPAL *** void loop() { adelante(255); // Adelante (ver código más abajo) delay(2000); // Espera 2 seg atras(255); // Atrás (ver código más abajo) delay(2000); // Espera 2 seg stop(); // Detener movimiento (ver código más abajo) delay(2000); // Espera 2 seg y repite el bucle } // *** FUNCIONES *** void adelante(int velocidad) { //Adelante // Permite regular la velocidad mediante PWM... // ... "velocidad" puede ir de 0(0%) a 255(100%) analogWrite(A1, velocidad); analogWrite(A2, 0); analogWrite(B1, velocidad); analogWrite(B2, 0); } void atras(int velocidad) { //Atrás // Permite regular la velocidad mediante PWM... // ... "velocidad" puede ir de 0(0%) a 255(100%) analogWrite(A1, 0); analogWrite(A2, velocidad); analogWrite(B1, 0); analogWrite(B2, velocidad); } void stop() { //Parado // También se podría conseguir el parado con adelante(0) ó atras(0) digitalWrite(A1, LOW); digitalWrite(A2, LOW); digitalWrite(B1, LOW); digitalWrite(B2, LOW); }
Más información: Hoja de datos L9110S
Valoraciones
No hay valoraciones aún.