CONTROLAR MOTORES DE BOBINADORA CON EL DRIVER L298N
Descargue codigo para el anterior circuito: DESCARGARObjetivo:
Controlar dos motores reductores con Arduino y el puente H L298N. Este ejemplo utilizará un Arduino Uno y dos motores de corriente continua.
Sistema: El puente H L298N es un controlador de motor dual que te permite controlar la dirección y velocidad de dos motores de corriente continua. Este dispositivo tiene pines para la conexión de los motores y utiliza pulsos PWM para controlar la velocidad y direcciones para determinar el sentido de giro.
Conexión física:
·
Conecta las salidas de los
motores a las salidas OUT1 y OUT2, y OUT3 y OUT4 del módulo L298N.
·
Alimenta el módulo L298N con
una fuente de energía externa (asegúrate de que comparta tierra con Arduino).
· Conecta la entrada de alimentación de Arduino a una fuente de energía.
Conexión lógica:
·
Conecta los pines de control de
dirección (IN1, IN2, IN3, IN4) del módulo L298N a pines digitales de Arduino (4,
5, 6, 7 respectivamente).
·
Conecta el pin Enable A (ENA)
del L298N al pin digital de Arduino 3 para controlar la velocidad del motor 1.
· Conecta el pin Enable B (ENB) del L298N al pin digital de Arduino 9 para controlar la velocidad del motor 2.
Código en Arduino:
/*
Programa: ControlMotoresBobinadora
Programa para controlar motores de la
bobinadora
Movimiento independiente de cada motor
conectado al
driver l298N
El
programa controla dos motores de una bobinadora de forma independiente.
Los
motores pueden moverse hacia adelante, hacia atrás y detenerse, y las
velocidades
de cada motor son controlables mediante las variables velocidadMotor1 y velocidadMotor2. El código está estructurado de manera modular, lo que facilita la comprensión y modificación de las funciones de control de motores.
*/
//
Declaración de variables para el primer motor (MOTOR 1)
int
enaPin1 = 3; // Pin ENA conectado al pin 3 del Arduino
int
in1Pin1 = 4; // Pin IN1 conectado al pin 4 del Arduino
int
in2Pin1 = 5; // Pin IN2 conectado al pin 5 del Arduino
//
Declaración de variables para el segundo motor
(MOTOR 2)
int
enbPin2 = 9; // Pin ENB conectado al pin 9 del Arduino
int
in3Pin2 = 6; // Pin IN3 conectado al pin 6 del Arduino
int
in4Pin2 = 7; // Pin IN4 conectado al pin 7 del Arduino
//
Declarar variables para controlar las velocidades de cada motor
int
velocidadMotor1 = 255;
int
velocidadMotor2 = 255;
void
setup() {
// Establecer modo de los pines a usar para
el primer motor
pinMode(enaPin1, OUTPUT); // usado para
habilitar PWM para controlar velocidad
pinMode(in1Pin1, OUTPUT);
pinMode(in2Pin1, OUTPUT);
// Establecer modo de los pines a usar para
el segundo motor
pinMode(enbPin2, OUTPUT);
pinMode(in3Pin2, OUTPUT);
pinMode(in4Pin2, OUTPUT);
}
//
Funciones para controlar el primer motor
void
motor1Adelante() {
digitalWrite(in1Pin1, HIGH);
digitalWrite(in2Pin1, LOW);
analogWrite(enaPin1, velocidadMotor1); //
Velocidad máxima (0-255)
}
void
motor1Atras() {
digitalWrite(in1Pin1, LOW);
digitalWrite(in2Pin1, HIGH);
analogWrite(enaPin1, velocidadMotor1); //
Velocidad máxima (0-255)
}
void
detenerMotor1() {
digitalWrite(in1Pin1, LOW);
digitalWrite(in2Pin1, LOW);
analogWrite(enaPin1, 0);
}
//
Funciones para controlar el segundo motor
void
motor2Adelante() {
digitalWrite(in3Pin2, HIGH);
digitalWrite(in4Pin2, LOW);
analogWrite(enbPin2, velocidadMotor2); //
Velocidad máxima (0-255)
}
void
motor2Atras() {
digitalWrite(in3Pin2, LOW);
digitalWrite(in4Pin2, HIGH);
analogWrite(enbPin2, velocidadMotor2); //
Velocidad máxima (0-255)
}
void
detenerMotor2() {
digitalWrite(in3Pin2, LOW);
digitalWrite(in4Pin2, LOW);
analogWrite(enbPin2, 0);
}
void
loop() {
// Controlar el primer motor
motor1Adelante();
delay(4000);
detenerMotor1();
delay(2000);
motor1Atras();
delay(4000);
// Controlar el segundo motor
motor2Adelante();
delay(4000);
detenerMotor2();
delay(2000);
motor2Atras();
delay(4000);
}
En resumen, el programa controla dos motores de una bobinadora de forma
independiente. Los motores pueden moverse hacia adelante, hacia atrás y
detenerse, y las velocidades de cada motor son controlables mediante las
variables velocidadMotor1
y velocidadMotor2
.
El código está estructurado de manera modular, lo que facilita la comprensión y modificación de las funciones de control de motores.
No hay comentarios:
Publicar un comentario