Créditos: Paula Campbell
Fecha: 14/07/25
Visualizaciones: 13
Guía completa para usar un motor DC con Arduino y el módulo L298N
Arduino
¿Te preguntaste alguna vez cómo giran los ventiladores, los autos a control remoto o incluso los robots limpiadores? Detrás de muchos de esos movimientos está un motor de corriente continua. En este artículo te cuento qué es un motor DC, cómo funciona por dentro, qué tipos hay y cómo podés controlarlo con Arduino.
¿Qué es un motor de corriente continua y cómo funciona por dentro?
Como hemos visto en artículos previos, un motor es un dispositivo capaz de convertir energía eléctrica en un movimiento mecánico. Un motor de corriente continua es un dispositivo que al recibir una corriente eléctrica es capaz de girar libremente. Internamente está compuesto por:
- un estator: es la parte fija que se encarga de dar soporte al motor, generalmente es de imán permanente o bobinas, que generan un campo magnético
- un rotor: es la parte que se encarga de girar, conformado por bobinas
- un conmutador: se encarga de cambiar la dirección de la corriente en la armadura para mantener el giro
- escobillas: hacen contacto eléctrico entre las partes giratorias y la alimentación
El funcionamiento del motor de corriente continua es bastante simple: al recibir corriente, las bobinas del rotor generan un campo magnético, el cual interactúa con el campo magnético generado por el estator, y se genera una fuerza capaz de hacer girar al rotor. El conmutador se encarga de cambiar el sentido de la corriente en cada medio giro para que el movimiento continúe. Para cambiar la dirección de giro del motor, simplemente hay que invertir el sentido de la corriente en el motor.
¿Qué es un puente H y cómo funciona por dentro?
Un puente H es un circuito compuesto por cuatro transistores, utilizado para invertir el sentido de la corriente entrante. Si se le aplica tensión alta al transistor 1, la corriente entrará por el transistor 1, atraviesa el motor y luego sale por el transistor 4. Si, en cambio, se le aplica tensión al transistor 3, la corriente entrará por el transistor 3, atraviesa el motor en el sentido opuesto y sale por el transistor 2. De esta forma se puede controlar el sentido en el que se mueve el motor. Si no se le entrega tensión a ningún transistor, el motor no se mueve. La única configuración que no se puede es entregar tensión a ambos transistores, porque se cruzarían las corrientes. Para cambiar la velocidad, simplemente hay que cambiar la frecuencia del pulso que se le entrega a los transistores. Cuanto mayor sea la modulación del pulso (cuanto mayor sea el ciclo de trabajo en un período), mayor será la velocidad; y cuanto menor sea la anchura del pulso, menor será la velocidad.
El L298N es un controlador que permite controlar dos motores de corriente continua, variando la velocidad y la dirección, que contiene dos Puente H (uno para cada motor). Tiene dos pares de pines de entrada, dos pines para cada motor. Cuando se le entrega un 1 a uno de los dos pines y un 0 al otro pin (desde el código del Arduino, usando la función digitalWrite), el motor girará para un lado, y si se invierten, girará para el otro lado. Adicionalmente, el L298N también cuenta con dos pines para controlar la velocidad de los motores. A este pin se le debe entregar un valor analógico (con la función analogWrite) para modificar la velocidad.
¿Cómo usarlo con Arduino usando el driver L298N?
Materiales:
- Arduino UNO
- Módulo L298N
- Motor DC
- Fuente de alimentación externa (por ejemplo, 9V o batería de 6V)
- Cables
Conexiones
- Pin 8 del Arduino →IN1 del módulo L298N
- Pin 9 del Arduino →IN2 del módulo L298N
- Pin 10 del Arduino (PWM) → ENA del módulo L298N (habilita el motor A)
- Positivo de la batería →+12V del módulo L298N (entrada de alimentación)
- Negativo de la batería →GND del módulo L298N
- GND de Arduino →GND del módulo L298N
- Motor →conectado a OUT1 y OUT2
Consejo: asegurate de quitar el jumper de ENA si querés controlar la velocidad con PWM. Si no usás PWM, podés dejar el jumper puesto y ENA siempre estará activo.
Código para encender el motor por dos segundos, apagarlo por dos segundos y cambiar el sentido de giro
int in1 = 8;
int in2 = 9;
int ena = 10; // debe ser un pin PWM
int velocidad = 128; // La velocidad va entre 0 y 255. Cambia el valor de esta variable para aumentar o disminuir la velocidad
void setup() {
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(ena, OUTPUT);
}
void loop() {
// Gira para un sentido
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(ena, velocidad);
delay(2000); // Espera 2 segundos
analogWrite(ena, 0); // Apaga el motor
delay(2000);
// Gira para el otro sentido
digitalWrite(in1, LOW);
digitalWrite(in1, LOW);
analogWrite(ena, velocidad);
delay(2000); // Espera 2 segundos
}
Conclusión
Los motores DC son una excelente forma de dar movimiento a tus proyectos. Son simples, baratos y muy útiles. Con un Arduino y unos pocos componentes, podés controlar su velocidad, dirección y encendido. Dominar los motores DC te abre la puerta al mundo del movimiento en robótica, domótica y más.
