From 9ba7ba8826637b923b9d14e7f0b166a620103f85 Mon Sep 17 00:00:00 2001 From: Brandon Date: Tue, 21 Mar 2017 23:47:08 -0600 Subject: [PATCH 1/2] Corrigiendo Prueba1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Se corrigen algunos errores en el código que impedían ejecutar algunas acciones. Se anexaron variables constantes para la corrección del error Faltan más pruebas Falta re-acomodar el código --- prueba1.ino | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 prueba1.ino diff --git a/prueba1.ino b/prueba1.ino new file mode 100644 index 0000000..c3d14d8 --- /dev/null +++ b/prueba1.ino @@ -0,0 +1,172 @@ +// Sensores de línea +const int linea_izq = A0; // Sensor de línea izquierdo +const int linea_der = A1; // Sensor de línea derecho +const int linea_atr = A2; // Sensor de línea trasero + +//Sensores de proximidad +const int detector_izq = 4; // Detector de oponente izquierdo +const int detector_cen = 7; // Detector de oponente central +const 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 + +int velocidad = 64; +int umbral = 250; + +//Contenedores - Línea +int pinStateIzq = 0; +int pinStateDer = 0; +int pinStateAtr = 0; + +//Contenedores - Proximidad +int pinProxIzq = 0; +int pinProxDer = 0; +int pinProxFront = 0; + +// Inicialización +void setup() +{ + Serial.begin(9600); +// pinMode(LED, OUTPUT); + pinMode(Ai1, OUTPUT); + pinMode(Ai2, OUTPUT); + pinMode(Bi1, OUTPUT); + pinMode(Bi2, OUTPUT); +} + +void adelante(){ + analogWrite(Ai1, velocidad); + analogWrite(Ai2, 0); + analogWrite(Bi1, velocidad); + analogWrite(Bi2, 0); +} + +void detener(){ + analogWrite(Ai1, 0); + analogWrite(Ai2, 0); + analogWrite(Bi1, 0); + 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); +} + +void MtdProximidad(){ + pinProxIzq = digitalRead(detector_izq); + pinProxDer = digitalRead(detector_der); + pinProxFront = digitalRead(detector_cen); + //¡Detección de objeto por el lado izquierdo! + if (pinProxIzq == HIGH) { + izquierda(); + delay(1000); + adelante(); + } + + // ¡Detección de objeto por el lado derecho! + if (pinProxDer == HIGH) { + derecha(); + delay(1000); + adelante(); + } + + // ¡Detección de objeto por el frente! + if (pinProxFront == HIGH) { + adelante(); + } + + //Mandando a imprimir los valores: + Serial.print("sensorProxi izquierdo: "); + Serial.print(detector_izq); + Serial.print(' '); + Serial.print("sensorProxi derecho: "); + Serial.print(detector_der); + Serial.print(' '); + Serial.print("sensorProxi atrás: "); + Serial.print(detector_cen); + Serial.println(' '); +}//Fin MTDProximididad + +// Rutina +void loop() { + + adelante(); + MtdProximidad(); +// ¡Detección de línea por el lado izquierdo! + //linea_izq = analogRead(A0); // Lectura del sensor de línea izquierdo + pinStateIzq = analogRead(linea_izq); + pinStateDer = analogRead(linea_der); + pinStateAtr = analogRead(linea_atr); + if (pinStateIzq < 300) { + detener(); + delay(1000); + derecha(); + delay(800); + adelante(); + } + else { + // ¡Detección de línea por el lado derecho! + //linea_der = analogRead(A1); // Lectura del sensor de línea derecho + if (pinStateDer < 300) { + detener(); + delay(1000); + izquierda(); + delay(800); + adelante(); + } + else { + // ¡Detección de línea por atrás! + //linea_atr = analogRead(A2); // Lectura del sensor de línea atras + if (pinStateAtr < 400) { + detener(); + delay(1000); + } + + } +} + Serial.print("sensor izquierdo: "); + Serial.print(linea_izq); + Serial.print(' '); + Serial.print("sensor derecho: "); + Serial.print(linea_der); + Serial.print(' '); + Serial.print("sensor atrás: "); + Serial.print(linea_atr); + Serial.println(' '); + + // ¡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(); + }*/ +}//Fin Loop From f26d035009f47c739ed4a0faea6987dc209e6d85 Mon Sep 17 00:00:00 2001 From: Brandon Date: Wed, 22 Mar 2017 00:42:59 -0600 Subject: [PATCH 2/2] =?UTF-8?q?Limpiando=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Se borran algunas líneas (Comentarios //) para evitar basura y futuras confuciones --- prueba1.ino | 324 +++++++++++++++++++++++++--------------------------- 1 file changed, 153 insertions(+), 171 deletions(-) diff --git a/prueba1.ino b/prueba1.ino index c3d14d8..9af68f4 100644 --- a/prueba1.ino +++ b/prueba1.ino @@ -1,172 +1,154 @@ -// Sensores de línea -const int linea_izq = A0; // Sensor de línea izquierdo -const int linea_der = A1; // Sensor de línea derecho -const int linea_atr = A2; // Sensor de línea trasero - -//Sensores de proximidad -const int detector_izq = 4; // Detector de oponente izquierdo -const int detector_cen = 7; // Detector de oponente central -const 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 - -int velocidad = 64; -int umbral = 250; - -//Contenedores - Línea -int pinStateIzq = 0; -int pinStateDer = 0; -int pinStateAtr = 0; - -//Contenedores - Proximidad -int pinProxIzq = 0; -int pinProxDer = 0; -int pinProxFront = 0; - -// Inicialización -void setup() -{ - Serial.begin(9600); -// pinMode(LED, OUTPUT); - pinMode(Ai1, OUTPUT); - pinMode(Ai2, OUTPUT); - pinMode(Bi1, OUTPUT); - pinMode(Bi2, OUTPUT); -} - -void adelante(){ - analogWrite(Ai1, velocidad); - analogWrite(Ai2, 0); - analogWrite(Bi1, velocidad); - analogWrite(Bi2, 0); -} - -void detener(){ - analogWrite(Ai1, 0); - analogWrite(Ai2, 0); - analogWrite(Bi1, 0); - 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); -} - -void MtdProximidad(){ - pinProxIzq = digitalRead(detector_izq); - pinProxDer = digitalRead(detector_der); - pinProxFront = digitalRead(detector_cen); - //¡Detección de objeto por el lado izquierdo! - if (pinProxIzq == HIGH) { - izquierda(); - delay(1000); - adelante(); - } - - // ¡Detección de objeto por el lado derecho! - if (pinProxDer == HIGH) { - derecha(); - delay(1000); - adelante(); - } - - // ¡Detección de objeto por el frente! - if (pinProxFront == HIGH) { - adelante(); - } - - //Mandando a imprimir los valores: - Serial.print("sensorProxi izquierdo: "); - Serial.print(detector_izq); - Serial.print(' '); - Serial.print("sensorProxi derecho: "); - Serial.print(detector_der); - Serial.print(' '); - Serial.print("sensorProxi atrás: "); - Serial.print(detector_cen); - Serial.println(' '); -}//Fin MTDProximididad - -// Rutina -void loop() { - - adelante(); - MtdProximidad(); -// ¡Detección de línea por el lado izquierdo! - //linea_izq = analogRead(A0); // Lectura del sensor de línea izquierdo - pinStateIzq = analogRead(linea_izq); - pinStateDer = analogRead(linea_der); - pinStateAtr = analogRead(linea_atr); - if (pinStateIzq < 300) { - detener(); - delay(1000); - derecha(); - delay(800); - adelante(); - } - else { - // ¡Detección de línea por el lado derecho! - //linea_der = analogRead(A1); // Lectura del sensor de línea derecho - if (pinStateDer < 300) { - detener(); - delay(1000); - izquierda(); - delay(800); - adelante(); - } - else { - // ¡Detección de línea por atrás! - //linea_atr = analogRead(A2); // Lectura del sensor de línea atras - if (pinStateAtr < 400) { - detener(); - delay(1000); - } - - } -} - Serial.print("sensor izquierdo: "); - Serial.print(linea_izq); - Serial.print(' '); - Serial.print("sensor derecho: "); - Serial.print(linea_der); - Serial.print(' '); - Serial.print("sensor atrás: "); - Serial.print(linea_atr); - Serial.println(' '); - - // ¡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(); - }*/ +// Sensores de línea +const int linea_izq = A0; // Sensor de línea izquierdo +const int linea_der = A1; // Sensor de línea derecho +const int linea_atr = A2; // Sensor de línea trasero + +//Sensores de proximidad +const int detector_izq = 4; // Detector de oponente izquierdo +const int detector_cen = 7; // Detector de oponente central +const int detector_der = 8; // Detector de oponente derecho + +//Salidas al Motor Izquierda, Derecha +int Ai1 = 5; // Salida 1 motor izquierdo (cable gris) +int Ai2 = 6; // Salida 2 motor izquierdo (cable azul) +int Bi1 = 9; // Salida 1 motor derecho (cable azul) +int Bi2 = 10; // Salida 2 motor derecho (cable gris) + +//int LED = 13; // Led indicador ready + +int velocidad = 64; +int umbral = 250; + +//Contenedores - Línea +int pinStateIzq = 0; +int pinStateDer = 0; +int pinStateAtr = 0; + +//Contenedores - Proximidad +int pinProxIzq = 0; +int pinProxDer = 0; +int pinProxFront = 0; + +// Inicialización +void setup() +{ + Serial.begin(9600); +// pinMode(LED, OUTPUT); + pinMode(Ai1, OUTPUT); + pinMode(Ai2, OUTPUT); + pinMode(Bi1, OUTPUT); + pinMode(Bi2, OUTPUT); +} + +void adelante(){ + analogWrite(Ai1, velocidad); + analogWrite(Ai2, 0); + analogWrite(Bi1, velocidad); + analogWrite(Bi2, 0); +} + +void detener(){ + analogWrite(Ai1, 0); + analogWrite(Ai2, 0); + analogWrite(Bi1, 0); + 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); +} + +void MtdProximidad(){ + pinProxIzq = digitalRead(detector_izq); + pinProxDer = digitalRead(detector_der); + pinProxFront = digitalRead(detector_cen); + //¡Detección de objeto por el lado izquierdo! + if (pinProxIzq == HIGH) { + izquierda(); + delay(1000); + adelante(); + } + // ¡Detección de objeto por el lado derecho! + if (pinProxDer == HIGH) { + derecha(); + delay(1000); + adelante(); + } + // ¡Detección de objeto por el frente! + if (pinProxFront == HIGH) { + adelante(); + } + //Mandando a imprimir los valores: + Serial.print("sensorProxi izquierdo: "); + Serial.print(detector_izq); + Serial.print(' '); + Serial.print("sensorProxi derecho: "); + Serial.print(detector_der); + Serial.print(' '); + Serial.print("sensorProxi atrás: "); + Serial.print(detector_cen); + Serial.println(' '); +}//Fin MTDProximididad + +// Rutina +void loop() { + adelante(); + MtdProximidad(); +// ¡Detección de línea por el lado izquierdo! + //linea_izq = analogRead(A0); // Lectura del sensor de línea izquierdo + pinStateIzq = analogRead(linea_izq); + pinStateDer = analogRead(linea_der); + pinStateAtr = analogRead(linea_atr); + if (pinStateIzq < 300) { + detener(); + delay(1000); + derecha(); + delay(800); + adelante(); + } + else { + // ¡Detección de línea por el lado derecho! + //linea_der = analogRead(A1); // Lectura del sensor de línea derecho + if (pinStateDer < 300) { + detener(); + delay(1000); + izquierda(); + delay(800); + adelante(); + } + else { + // ¡Detección de línea por atrás! + //linea_atr = analogRead(A2); // Lectura del sensor de línea atras + if (pinStateAtr < 400) { + detener(); + delay(1000); + } + } +} + Serial.print("sensor izquierdo: "); + Serial.print(linea_izq); + Serial.print(' '); + Serial.print("sensor derecho: "); + Serial.print(linea_der); + Serial.print(' '); + Serial.print("sensor atrás: "); + Serial.print(linea_atr); + Serial.println(' '); }//Fin Loop