Control de GIRO Y VELOCIDAD de MOTORES con L298N


p5.jpg

Video

En esta práctica programaremos un control de giro usando pulsadores y uno de velocidad con un potenciómetro con el módulo L298N y un Arduino UNO.

Control de GIRO Y VELOCIDAD de MOTORES con L298N, POTENCIOMETRO, PULSADORES y ARDUINO


- Materiales:


Para realizar el circuito necesitas:

• 1 Arduino UNO,
• 2 pulsadores,
• 2 resistencias de 10k,
• 1 potenciómetro de cualquier valor,
• 1 fuente de alimentación entre 6v y 12v,
• 1 módulo puente h L298N,
• 1 motor DC,
• 1 Protoboard y Jumpers.

- Código


Comenzamos el desarrollo del programa definiendo los pines digitales de los pulsadores y de los pines IN3, IN4 y ENB del L298N. También el pin analógico del potenciómetro.
Con variables de tipo entero almacenaremos los estados de los pulsadores, el valor del potenciómetro y la conversión a señal PWM.

int pulsadorizq=2;
int pulsadorder=3;
int pot=A0;
int IN3=7;
int IN4=8;
int ENB=9;
int statusizq;
int statusder;
int value;
int total;

En void setup() determinamos los pines conectados al L298N como salidas y los restantes como salidas.

void setup() {
pinMode(pulsadorizq,INPUT);
pinMode(pulsadorder,INPUT);
pinMode(pot,INPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(ENB,OUTPUT);
Serial.begin(9600);
}

En este punto, estructuraremos la lógica del programa dentro de la función loop(). Leeremos los valores de los dos pulsadores almacenándolos en cada variable definida al principio y el valor del potenciómetro. Utilizaremos la función map para cambiar de los valores 0-1023 dadas por el pot a 0-255 para el PWM.

Después de procesar el valor del pot, lo mandaremos al pin ENB para regular la velocidad. Con condicionales accionaremos los pines INs para manejar el giro del motor. Dependiendo de que pulsador estemos accionando, girará el motor la izquierda o derecha.

void loop() {
statusizq= digitalRead(pulsadorizq);
statusder= digitalRead(pulsadorder);
value= analogRead(pot);
total=map(value,0,1023,0,255);
analogWrite(ENB,total);
Serial.println(total);
if(statusizq==HIGH){
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}else{
if(statusder==HIGH){
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
}else{
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
}
delay(100);
}


- Instrumentación


Colocaremos primero los pulsadores. Los pulsadores los pondremos en un extremo de la protoboard. En cada pulsador, conectaremos una de las patas a 5v y el otro haremos un nodo donde estará una pata de la resistencia de 10k y el puente donde lo conectaremos al pin digital de Arduino. El extremo que falta por conectar de la resistencia lo pondremos en GND.

Las patas de cada extremo del potenciómetro se conectarán a Vcc y a GND, dejando solo la pata de en medio para que sea conectada al pin A0 del Arduino. Puenteamos 5v y GND de la placa Arduino a las líneas de alimentación de la protoboard.

Conectamos a la entrada MOTOR B del L298N el motor DC y enlazamos con jumpers IN3, IN4 y ENB a los pines digitales 7,8 y 9 del Arduino. Finalizamos la instrumentación colocando la fuente de alimentación 6v-12v al módulo L298N

DESCARGAS


LINK DE DESCARGA

Imágenes

p5.jpg
p5-2.jpg
p5-3.jpg

APRENDE LO QUE NECESITAS

NUESTROS CURSOS


cursoarduinoyandroid.jpg

Creación de un HMI en Android Studio y Arduino

Nivel: Básico 2 horas y 30 min (146 min.)

Diseña, maqueta y programa un HMI completo en Android Studio vinculado a un Arduino mediante Bluetooth.

cursodispensadorautomatico.jpg

CONSTRUYE un DISPENSADOR AUTOMÁTICO CASERO sin ARDUINO desde CERO

Nivel: Básico 27 minutos

Construye desde cero un dispensador automático casero sin Arduino desde cero, utilizando pura electrónica.

cursocarritorobot4wd.jpg

Creación de carrito robot desde cero usando mando de PS4

Nivel: Básico 2 horas y 19 min (139 min.)

Construye desde cero un carrito robot con arduino manipulado por un control de PS4 y un teléfono Android.