VelezDuino 1.2: control dirección motores cc con módulo l298n

Seguimos con nuestro RobotCar 2WD construido con los tutoriales del blog de Luis LLamas (VelezDuino 1.0). En esta ocasión vamos a programar el módulo L298N directamente con las funciones de Arduino.

El módulo controlador de motores L298N nos permite controlar la velocidad y la dirección de dos motores de corriente continua.

En nuestro caso hemos optado por controlar solo la dirección de los motores, dejando el control de la velocidad para una próxima entrada.

CONEXIÓN ELÉCTRICA

Las salidas para los motores A y B nos darán la energía para mover los motores.
Los pines IN1 e IN2 nos sirven para controlar el sentido de giro del motor A, y los pines IN3 e IN4 el del motor B.
  • Si IN1 está a HIGH e IN2 a LOW, el motor A gira en un sentido, y si está IN1 a LOW e IN2 a HIGH lo hace en el otro.
  • Lo mismo con los pines IN3 e IN4 y el motor B.

Para controlar la velocidad de giro de los motores tenemos que quitar los jumpers y usar los pines ENA y ENB.

  • Los conectaremos a dos salidas PWM de Arduino de forma que le enviemos un valor entre 0 y 255 que controle la velocidad de giro.
  • Si  tenemos los jumpers colocados, los motores girarán a la siempre a la misma velocidad.

Hemos programado nuestro VelezDuino 1.2 para que realiza la siguiente secuencia:

  • Avanzar 2 segundos, retroceder 2 segundos, derecha 1 segundo e izquierda 1 segundo.
  • De un estado a otro se encuentra parado durante 1,5 segundos.

 

CÓDIGO ARDUINO
/* RobotCar VelezDuino 1.2
* Control de motores de corriente continua mediante el módulo L298N
* Los jumpers están activados, de esta forma no ejercemos control sobre velocidad motores, irán a máxima velocidad
*/
// Definición de variables y constantes del motor izquierdo (motor A)
const int IN1 = 5; // Pin digital 5 para controlar sentido giro motor izquierdo
const int IN2 = 6; // Pin digital 6 para controlar sentido giro motor izquierdo// Definición de variables y constantes del motor derecho (motor B)
const int IN3 = 7; // Pin digital 5 para controlar sentido giro motor izquierdo
const int IN4 = 8; // Pin digital 6 para controlar sentido giro motor izquierdo

// Función que se ejecuta una sola vez al cargar el programa
void setup(){
pinMode (IN1, OUTPUT); // Se declaran todos los pines como salidas
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}

// Creamos las funciones avanzar, parar, retrocer, izquierda y derecha

// Función para avanzar
void avanzar(){
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN1,LOW);
}

// Función para parar
void parar(){
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN1,LOW);
}

// Función para retroceder
void retroceder(){
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN1,HIGH);
}

// Función para girar derecha
void derecha(){
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN1,LOW);
}

// Función para girar izquierda
void izquierda(){
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN1,LOW);
}

// Función que se repite de manera periódica
void loop(){
avanzar ();
delay (2000);
parar ();
delay  (1500);
retroceder ();
delay (2000);
parar ();
delay  (1500);
derecha ();
delay (1000);
parar ();
delay  (1500);
izquierda   ();
delay (1000);
parar ();
delay  (1500);
}

FUNCIONAMIENTO

Inténtalo tú:

  • Modifica el programa para que realice otra secuencia totalmente diferente.

Fuentes consultadas:

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.