Racing Senna - Fase 5
_______________________________________________________________________________________________________________________
Introducción a la Ingeniera Electrónica
Pablo Esteban Brand Tegue
Juan Camilo Pavi Valencia
Docente Oscar Casas García
_______________________________________________________________________________________________________________________
Para la Fase #5 se realizaron una serie de cambios destinados a la finalización del seguidor de linea. A continuación se presentan los detalles resaltados.
____________________________________________
CONEXIONES ACTUALIZADAS
____________________________________________
Cambios:
Uso de los puertos "ena" y "enb" del modulo L298N para el control de la velocidad de los motores
Se añade un sensor extra (sensor central) al seguidor de linea
________________________________________
PROGRAMA UTILIZADO
________________________________________
int rs = 13; // Pin del sensor derecho
int ls = 2; // Pin del sensor izquierdo
int cs = 12; // Pin del sensor central
int ledr=8;
int ledl=7;
// Pines de señal del módulo L298N
int in1 = 4;
int in2 = 6;
int in3 = 10;
int in4 = 11;
// Pines de velocidad del módulo L298N
int ena = 5;
int enb = 9;
int velocidad;
int velocidad2;
int velocidad3;
int leftValue; //izquierda
int rightValue; //derecha
int centerValue; //centro
void setup() {
pinMode(rs, INPUT);
pinMode(ls, INPUT);
pinMode (cs, INPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(ledr, OUTPUT);
pinMode(ledl, OUTPUT);
pinMode(ena, OUTPUT);
pinMode(enb, OUTPUT);
velocidad = 60;
Serial.begin(9600); // // Comunicación serial
}
void sensorReading(){
leftValue = digitalRead(ls); // Lectura - Pin izquierdo
rightValue = digitalRead(rs); //Lectura - Pin derecho
centerValue = digitalRead(cs);// Lectura - Pin central
}
void forward(){
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(ena, velocidad);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(ena, velocidad);
}
void turnRight(){
//Motor izquierdo
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(ena, velocidad);
// Motor derecho
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
analogWrite(enb, 0);
delay(50);
//Motor izquierdo
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
analogWrite(ena, 0);
// Motor derecho
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(50);
}
void turnLeft(){
//Motor izquierdo
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
analogWrite(ena, 0);
// Motor derecho
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enb, velocidad);
delay(50);
//Motor izquierdo
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
analogWrite(ena, 0);
// Motor derecho
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(50);
}
void stopMotors(){
//Motor izquierdo
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
// Motor derecho
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(1500);
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(100);
}
void loop() {
sensorReading();
if(leftValue == 1 && centerValue== 0 && rightValue == 0){
turnLeft();
} else if(leftValue == 1 && centerValue== 1 && rightValue == 0){
turnLeft();
}else if(leftValue == 0 && centerValue== 0 && rightValue == 1){
turnRight();
}else if(leftValue == 0 && centerValue== 1 && rightValue == 1){
turnRight();
}else if(leftValue == 0 && centerValue== 0 && rightValue == 0 ){
forward();
}else if(leftValue == 1 && centerValue== 1 && rightValue == 1 ){
stopMotors();
}
else if(leftValue == 0 && rightValue == 0 && centerValue== 1){
forward();
}
{
if (rightValue==HIGH)
{
digitalWrite(ledr, HIGH);
}
else
{
digitalWrite(ledr, LOW);
}}
{
if (leftValue==HIGH)
{
digitalWrite(ledl, HIGH);
}
else
{
digitalWrite(ledl, LOW);
}
}
Serial.print(leftValue);
Serial.print(rightValue);
Serial.println(centerValue);
}//END
________________________________________________________
ENSABLAJE TEMPORAL DEL ROBOT
________________________________________________________
Imagen 1
Imagen 2
Imagen 3
Imagen 4
________________________________________________________
ROBOT EN FUNCIONAMIENTO
________________________________________________________
Comentarios
Publicar un comentario