Tengo dificulta programando un seguidor de linea usando arduino UNO el programa la parte que funciona es cuando todos los sensores están en "0" o en "1" y se demora en racionar.
si me pueden ayudar que es lo que estoy fallando seria genial.
Este es el código del programa:
int cny1 = 7; //cny derecha exterior
int cny2 = 8; //cny derecha interior
int cny3 = 9; // cny izquierda interior
int cny4 = 12; //cny izquierda exterior
int Vcny1 = 0;
int Vcny2 = 0;
int Vcny3 = 0;
int Vcny4 = 0;
int izqA = 5;
int izqB = 6;
int derA = 10;
int derB = 11;
int vel = 225; // Velocidad de los motores (0-255)
void setup() {
Serial.begin(9200);
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
pinMode(cny1, INPUT);
pinMode(cny2, INPUT);
pinMode(cny3, INPUT);
pinMode(cny4, INPUT);
}
void loop() {
if((digitalRead(cny4)==LOW)&&(digitalRead(cny3)==HIGH)&&(digitalRead(cny2)==HIGH)&&(digitalRead(cny1)==LOW)){
analogWrite(derB, 0); //avansa
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, vel);
}
if((digitalRead(cny4)==HIGH)&&(digitalRead(cny3)==HIGH)&&(digitalRead(cny2)==LOW)&&(digitalRead(cny1)==LOW)){
analogWrite(derB, 0); //izq
analogWrite(izqB, 0);
analogWrite(izqA, vel);
analogWrite(derA, 0);
}
else{
// der
analogWrite(derB, 0);
analogWrite(izqA, 0);
analogWrite(derA, vel);
analogWrite(izqB, 0); }
if((digitalRead(cny4)==HIGH)&&(digitalRead(cny3)==LOW)&&(digitalRead(cny2)==LOW)&&(digitalRead(cny1)==LOW)){
analogWrite(derB, 0); //izq
analogWrite(izqB, 0);
analogWrite(izqA, vel);
analogWrite(derA, 0);
}
else{
analogWrite(derB, 0); //der
analogWrite(izqA, 0);
analogWrite(derA, vel);
analogWrite(izqB, 0);
}
if ((digitalRead(cny4)==LOW)&&(digitalRead(cny3)==LOW)&&(digitalRead(cny2)==LOW)&&(digitalRead(cny1)==LOW))
{
// Reversa
analogWrite(derA, 0);
analogWrite(izqB, vel);
analogWrite(derB, vel);
analogWrite(izqA, 0);
}
else{
analogWrite(derA, 0);
analogWrite(izqB, 0);
analogWrite(derB, 0);
analogWrite(izqA, 0);
}
Vcny1 = digitalRead(cny1);
Vcny2 = digitalRead(cny2);
Vcny3 = digitalRead(cny3);
Vcny4 = digitalRead(cny4);
Serial.print("cny1 =");Serial.println(Vcny1);
delay(1000);
Serial.print("cny2 =");Serial.println(Vcny2);
delay(1000);
Serial.print("cny3 =");Serial.println(Vcny3);
delay(1000);
Serial.print("cny4 =");Serial.println(Vcny4);
delay(1000);
}