lunes, 4 de marzo de 2024

CONTROLAR MOTORES DE BOBINADORA CON EL DRIVER L298N

 CONTROLAR MOTORES DE BOBINADORA CON EL DRIVER L298N

Descargue codigo para el anterior circuito: DESCARGAR

Objetivo:

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

MANEJO BASICO DE LA LCD 16X2 PARA MOSTRAR DATOS

  MANEJO BASICO DE LA LCD 16X2 PARA MOSTRAR DATOS Introducción a la Interfaz I2C: I2C (Inter-Integrated Circuit) es un bus de comunicación s...