El controlador del motor L9110S es una solución compacta y eficiente para controlar motores de CC y motores paso a paso en sus proyectos Arduino. Ya sea que esté construyendo un robot simple o un sistema de automatización más complejo, el L9110 ofrece una forma confiable de administrar las operaciones motoras con un mínimo de cableado y complejidad de programación. En esta publicación de blog, exploraremos las características del controlador del motor L9110, cómo conectarlo a un Arduino y proporcionaremos un código de muestra para que comience.
¿Qué son los L9110?
El L9110S es un IC del controlador de motor de doble canal diseñado para controlar la velocidad y la dirección de dos motores de CC o un motor paso a paso. Funciona en un rango de voltaje de 2.5V a 12V, lo que lo hace versátil para varias aplicaciones. El L9110S es conocido por su tamaño compacto, bajo consumo de energía y facilidad de integración con microcontroladores como el Arduino.
¿Por qué elegir el L9110S?
- Diseño compacto: Su pequeña huella lo hace ideal para proyectos con espacio limitado.
- Canales duales: Controle dos motores de forma independiente, permitiendo movimientos complejos.
- Fácil de usar: Interfaz simple con etiquetado transparente para conexiones fáciles.
- Rentable: Precios asequibles sin comprometer la funcionalidad.
Conectando el L9110 a Arduino
Configurar el L9110 con un Arduino es sencillo. A continuación se muestra una guía paso a paso para hacer las conexiones:
-
Conexiones de alimentación:
- Conecte el
VCC
Pin del L9110 al pin 5V en el Arduino. - Conecte el
GND
Pin del L9110 al pin GND en el Arduino.
- Conecte el
-
Conexiones del motor:
- Conecte el primer motor al
OUT1
yOUT2
patas. - Si usa un segundo motor, conéctelo al
OUT3
yOUT4
patas.
- Conecte el primer motor al
-
Pins de control:
- Conecte el
AIN1
yAIN2
Pins a dos alfileres digitales en el Arduino (por ejemplo, pines 2 y 3). - Si usa un segundo motor, conecta
BIN1
yBIN2
a otros dos alfileres digitales (por ejemplo, pines 4 y 5).
- Conecte el
Consulte el diagrama a continuación para obtener una representación visual de las conexiones:
Programación del Arduino
Después de configurar el hardware, el siguiente paso es programar el Arduino para controlar los motores. A continuación se muestra un código de muestra que demuestra cómo controlar la dirección y la velocidad de un motor de CC utilizando el controlador del motor L9110S.
// Define motor control pins
const int AIN1 = 2;
const int AIN2 = 3;
// Setup function
void setup() {
// Initialize the motor control pins as outputs
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
}
// Loop function
void loop() {
// Rotate motor forward
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
delay(2000); // Run for 2 seconds
// Stop the motor
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
delay(1000); // Stop for 1 second
// Rotate motor backward
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
delay(2000); // Run for 2 seconds
// Stop the motor
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
delay(1000); // Stop for 1 second
}
Explicación:
-
AIN1
yAIN2
se utilizan para controlar la dirección del motor. - Configuración
AIN1
Alto yAIN2
Low gira el motor hacia adelante. - Configuración
AIN1
Bajo yAIN2
Alto gira el motor hacia atrás. - Establecer ambos
AIN1
yAIN2
Bajo detiene el motor.
Velocidad de control con PWM
El L9110s admite PWM (modulación de ancho de pulso) para el control de velocidad. Al variar el ciclo de trabajo de la señal PWM, puede ajustar la velocidad del motor. Aquí le mostramos cómo modificar el código anterior para incluir el control de velocidad:
// Define motor control pins
const int AIN1 = 2;
const int AIN2 = 3;
const int PWM_PIN = 9; // PWM pin for speed control
// Setup function
void setup() {
// Initialize the motor control pins as outputs
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWM_PIN, OUTPUT);
}
// Loop function
void loop() {
// Set speed to 150 out of 255
analogWrite(PWM_PIN, 150);
// Rotate motor forward
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
delay(2000); // Run for 2 seconds
// Stop the motor
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
delay(1000); // Stop for 1 second
// Rotate motor backward
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
delay(2000); // Run for 2 seconds
// Stop the motor
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
delay(1000); // Stop for 1 second
}
Explicación: El analogWrite()
La función envía una señal PWM al motor, lo que le permite controlar su velocidad. El valor varía de 0 (parada) a 255 (velocidad completa).
Aplicaciones de L9110 con Arduino
La combinación del controlador de motor L9110 y Arduino abre una amplia gama de posibilidades de proyecto:
- Robótica: Controle el movimiento de brazos robóticos o robots móviles con control de motor preciso.
- Sistemas de automatización: Automatice tareas como abrir/cerrar puertas, ajustar válvulas o componentes móviles en líneas de ensamblaje.
- Proyectos de bricolaje: Cree proyectos electrónicos personalizados como controles deslizantes de cámara motorizados, sistemas de riego de plantas automatizados o vehículos controlados a distancia.
- Herramientas educativas: Enseñe a los estudiantes sobre el control del motor, la electrónica y la programación a través de proyectos prácticos.
Conclusión
El controlador del motor L9110S es un componente versátil y fácil de usar para cualquier persona que busque controlar motores utilizando un Arduino. Su capacidad de doble canal, combinada con simplicidad en el cableado y la programación, lo convierte en una excelente opción tanto para principiantes como para aficionados experimentados. Siguiendo los pasos descritos en esta publicación, puede integrar rápidamente el control del motor en sus proyectos y ampliar la funcionalidad de sus sistemas basados en Arduino.
Experimente con diferentes velocidades, direcciones y aplicaciones motoras para aprovechar completamente el potencial del controlador del motor L9110S. ¡Feliz tinking!