UNIVERSIDAD DEL VALLE
INTRODUCCIÓN A LA INGENIERÍA ELECTRÓNICA
INGENIERÍA ELECTRÓNICA
Septiembre 2021
Isaac Arias (2127306) / Zuly Valentina Rodríguez (2128691) / Anderson Cuaspud (2077336)
ROLBOLT FASE 4
En esta cuarta fase del robot seguidor de línea ‘Robolt’, hablaremos sobre el driver que vamos a utilizar para el control y comportamiento de los motores. Además incluiremos el diagrama de flujo explicativo del funcionamiento, de tal manera que los motores se muevan hacia delante, hacia atrás y hacia los lados de acuerdo a la información suministrada por los sensores, así mismo su respectivo código.
En esta ocasión utilizamos el módulo controlador de motores L298N H-bridge. El módulo controlador de motores L298N nos permite controlar la velocidad y la dirección de dos motores, gracias a los H-bridge que posee, el cual es es un componente formado por 4 transistores y así nos permite invertir el sentido de la corriente, además de invertir el sentido de giro del motor.
El modulo L298N incluye un regulador de tensión que nos permite obtener una tensión de 5V, perfecta para alimentar nuestro Arduino, pero debe ser alimentado por una tensión máxima de 12V.
imagen 1. L298N H-bridge
imagen 2. conexiones del modulo L298N H-bridge
tabla 1. características básicas del modulo L298N H-bridge
Funcionamiento de los motores por medio de los sensores
Gracias a las señales suministradas por los sensores, logramos que los motores realizaran ciertas acciones. Los sensores enviaran señales de '1' y '0', donde '0' significan que los sensores no detectan nada, el caso contrario '1', nos indicara que detecto algo.
Cuando el sensor derecho de una señal de '1'el motor de la derecha empezara a girar hacia atrás y el motor de la izquierda va a girar hacia la derecha. Cuando el sensor izquierdo proporcione señal de '1' el motor izquierdo girara hacía delante y el motor derecho hacía atrás.
En la siguiente tabla se observará los movimientos que realizará el robot dependiendo de la lectura de los sensores.
SENSOR DERECHO
|
SENSOR IZQUIERDO
|
MOTOR DERECHO
|
MOTOR IZQUIERDO
|
MOVIMIENTO
|
0
|
0
|
1
|
1
|
ADELANTE/AVANZAR
|
0
|
1
|
0
|
1
|
DERECHA
|
1
|
0
|
1
|
0
|
IZQUIERDA
|
1
|
1
|
0
|
0
|
ATRÁS/RETROCEDER
|
Tabla 2. Movimiento de motores a señales de sensores
En el siguiente diagrama de flujo pondrá en evidencia el programa implementado en el Arduino.
imagen 3. Diagrama de flujo
Programación
Finalmente, se verá del código junto con evidencias del funcionamiento del Arduino en compañía del modulo de motores y los sensores.
#define motorMA1 3 #define motorMA2 5 #define motorMB1 6 #define motorMB2 9 #define si 7 // SENSOR IZQUIERDO #define sd 8// SENSOR DERECHO
int sensorD=0; int sensorI=0;
//variables para calibrar la potencia de los motores, represental la velocidad necesaria //para que el robot siga la linea y sortee las curvas
int velrecta=200; int velcurva=155;
void setup() {
pinMode(motorMA1,OUTPUT); pinMode(motorMA2,OUTPUT); pinMode(motorMB1,OUTPUT); pinMode(motorMB2,OUTPUT);
pinMode(si,INPUT); pinMode(sd,INPUT); }
void loop() { sensorI=digitalRead(si); delay(10); sensorD=digitalRead(sd); delay(10);
if(sensorI==0 && sensorD==0 ) {analogWrite(motorMA1,velrecta); analogWrite(motorMA2,0); analogWrite(motorMB1,velrecta); analogWrite(motorMB2,0); }
if(sensorI==1 && sensorD==0 ) {analogWrite(motorMA1,0); analogWrite(motorMA2,0); analogWrite(motorMB1,velrecta); analogWrite(motorMB2,0); }
if(sensorI==0 && sensorD==1 ) {analogWrite(motorMA1,velcurva); analogWrite(motorMA2,0); analogWrite(motorMB1,0); analogWrite(motorMB2,0); }
if(sensorI==1 && sensorD==1 ) {analogWrite(motorMA1,0); analogWrite(motorMA2,0); analogWrite(motorMB1,0); analogWrite(motorMB2,0); } }
|
imagen 4. conexiones del funcionamiento
imagen 5. Evidencias
imagen 6. Evidencias
imagen 7. Evidencias
Video 1. funcionamiento del seguidor de línea
Video 2. funcionamiento del seguidor de línea
Comentarios
Publicar un comentario