Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 147 additions & 0 deletions prueba1.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@

// Sensores de línea
int linea_izq = A0; // Sensor de línea izquierdo
int linea_der = A1; // Sensor de línea derecho
int linea_atr = A2; // Sensor de línea trasero

// Sensores de oponente
int detector_izq = 4; // Detector de oponente izquierdo
int detector_cen = 7; // Detector de oponente central
int detector_der = 8; // Detector de oponente derecho

//Izquierdo
int Ai1 = 5; // Salida 1 motor izquierdo (cable gris)
int Ai2 = 6; // Salida 2 motor izquierdo (cable azul)

//Derecho
int Bi1 = 9; // Salida 1 motor derecho (cable azul)
int Bi2 = 10; // Salida 2 motor derecho (cable gris)

//int LED = 13; // Led indicador ready

// Variables
int SA0 = 0; // Almacenamos los niveles de los detectores de línea
int SA1 = 0;
int SA2 = 0;

int velocidad = 64;
int umbral = 300;

// Inicialización
void setup()
{
Serial.begin(9600);
// pinMode(LED, OUTPUT);
pinMode(Ai1, OUTPUT);
pinMode(Ai2, OUTPUT);
pinMode(Bi1, OUTPUT);
pinMode(Bi2, OUTPUT);
}

void detener(){
analogWrite(Ai1, 0);
analogWrite(Ai2, 0);
analogWrite(Bi1, 0);
analogWrite(Bi2, 0);
}

void adelante(){
analogWrite(Ai1, velocidad);
analogWrite(Ai2, 0);
analogWrite(Bi1, velocidad);
analogWrite(Bi2, 0);
}

void reversa(){
analogWrite(Ai1, 0);
analogWrite(Ai2, velocidad);
analogWrite(Bi1, 0);
analogWrite(Bi2, velocidad);
}

void derecha(){
analogWrite(Ai1, 0);
analogWrite(Ai2, velocidad);
analogWrite(Bi1, velocidad);
analogWrite(Bi2, 0);
}

void izquierda(){
analogWrite(Ai1, velocidad);
analogWrite(Ai2, 0);
analogWrite(Bi1, 0);
analogWrite(Bi2, velocidad);
}

// Rutina
void loop() {

adelante();
linea_izq = analogRead(A0); // Lectura de los sensores de línea
linea_der = analogRead(A1);
linea_atr = analogRead(A2);

// detector_izq = digitalRead(4); // Leemos los Detector de oponente
// detector_cen = digitalRead(7);
// detector_der = digitalRead(8);

// ¡Detección de línea por el lado derecho!
if (linea_der < umbral) {
print_LineaDer()
detener();
delay(500);
izquierda();
delay(750);
}
// ¡Detección de línea por el lado izquierdo!
else if (linea_izq < umbral) {
print_LineaIzq()
detener();
delay(500);
derecha();
delay(750);
}
// ¡Detección de línea por atrás!
else if (linea_atr < 350) {
print_LineaIAtr()
detener();
delay(500);
adelante();
}

/*
// ¡Detección de objeto por el lado izquierdo!
if (detector_izq = digitalRead(HIGH)) {
izquierda();
delay(1000);
adelante();
}

// ¡Detección de objeto por el lado derecho!
if (detector_der = digitalRead(HIGH)) {
derecha();
delay(1000);
adelante();
}

// ¡Detección de objeto por el frente!
if (detector_cen = digitalRead(HIGH)) {
adelante();
}*/
}

void print_LineaIzq() {
Serial.print(" -Sensor Izquierda: ");
Serial.print(linea_izq);
Serial.println(' ');
}
void print_LineaDer() {
Serial.print(" -Sensor Derecha: ");
Serial.print(linea_der);
Serial.println(' ');
}
void print_LineaAtr() {
Serial.print(" -Sensor Atrás: ");
Serial.print(linea_atr);
Serial.println(' ');
}