En la entrada anterior ¿Cómo controlar un motor con Arduino? aprendimos a controlar la dirección y velocidad de un motor a través de las instrucciones del código, en esta esta guía aprenderás a controlar la velocidad de un motor DC utilizando un potenciómetro, una placa Arduino y el controlador L298N. Esta configuración es ideal para proyectos donde se necesita ajustar la velocidad de motores de corriente continua de manera precisa y eficiente.
Materiales necesarios:
1 Arduino Uno
1 motor CC
1 potenciómetro de 10k ohmios
1 controlador L298N
Fuente de alimentación externa para el motor (como una batería de 9V)
Protoboard y cables de conexión
Esquema de Conexión:
Motor: conecta los dos terminales del motor a las salidas OUT1 y OUT2 del L298N.
Fuente de alimentación del motor: conecta el terminal positivo de la fuente de alimentación al pin 12V del L298N y el negativo al pin GND .
Conexión de Arduino al L298N:
Pin de control IN1 del L298N al pin digital 9 del Arduino.
Pin de control IN2 del L298N al pin digital 8 del Arduino.
Pin ENA del L298N al pin PWM 10 del Arduino (para control de velocidad).
Potenciómetro: conecta los extremos del potenciómetro a 5V y GND, y el pin central al pin A0 del Arduino.
Lógica del L298N: Conecta el pin GND del L298N al GND del Arduino.
Código Arduino con L298N:
// Definir pines
int potPin = A0; // Pin del potenciómetro
int in1 = 9; // Pin IN1 del L298N
int in2 = 8; // Pin IN2 del L298N
int enablePin = 10; // Pin ENA del L298N (PWM)
void setup() {
// Configurar pines como salida
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(enablePin, OUTPUT);
// Inicializar el motor en dirección hacia adelante
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
}
void loop() {
// Leer el valor del potenciómetro (0 a 1023)
int potValue = analogRead(potPin);
// Mapear el valor del potenciómetro a un rango de 0 a 255
int motorSpeed = map(potValue, 0, 1023, 0, 255);
// Controlar la velocidad del motor usando PWM
analogWrite(enablePin, motorSpeed);
}
Explicación del Código:
Control de Direcciones del Motor:
En el setup(), configuramos el motor para que gire en una dirección específica. Usamos los pines IN1 e IN2 del L298N para definir la dirección. En este caso, IN1 está en HIGH e IN2 en LOW, lo que hace que el motor gire hacia adelante.
Control de Velocidad:
En el loop(), leemos el valor del potenciómetro con analogRead(potPin). Luego, este valor se convierte a un rango de 0 a 255 con map(), y se usa analogWrite(enablePin, motorSpeed)para controlar la velocidad del motor.
Conclusión:
Con esta configuración, puede controlar la velocidad de un motor de corriente continua simplemente girando el potenciómetro. El driver L298N te permite manejar motores más grandes y potentes de manera eficiente, haciéndolo ideal para proyectos que requieren más potencia. ¡Experimenta ajustando la velocidad y dirección para llevar tus proyectos al siguiente nivel!