From e337201f45fc8d7ede0b74c689c6b80fa57af1b2 Mon Sep 17 00:00:00 2001 From: Brandon Date: Wed, 29 Mar 2017 01:29:14 -0600 Subject: [PATCH] =?UTF-8?q?Funci=C3=B3n=20de=20sensores=20de=20l=C3=ADnea?= =?UTF-8?q?=20al=20100?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit En éste código ya se pueden ejecutar las funciones correctamente en cuenta a sensores de línea que son los que vana detectar los límites del espacio de combate. -Se asignó un par de umbrales para su correcta ejecución -Se limpia el código --- mi_prueba.ino | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 mi_prueba.ino diff --git a/mi_prueba.ino b/mi_prueba.ino new file mode 100644 index 0000000..6a721a2 --- /dev/null +++ b/mi_prueba.ino @@ -0,0 +1,111 @@ +// 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 + +//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 velocidad = 64; +int umbral1 = 350; +int umbral2 = 450; + +//Contenedores - Línea +int pinStateIzq = 0; +int pinStateDer = 0; +int pinStateAtr = 0; + +// Inicialización +void setup() +{ + Serial.begin(9600); + + pinMode(Ai1, OUTPUT); + pinMode(Ai2, OUTPUT); + pinMode(Bi1, OUTPUT); + pinMode(Bi2, OUTPUT); +} + +void detener(){ + digitalWrite(Ai1, LOW); + digitalWrite(Ai2, LOW); + digitalWrite(Bi1, LOW); + digitalWrite(Bi2, LOW); +} + +void adelante(){ + analogWrite(Ai1, velocidad); + digitalWrite(Ai2, LOW); + analogWrite(Bi1, velocidad); + digitalWrite(Bi2, LOW); +} + +void reversa(){ + digitalWrite(Ai1, LOW); + analogWrite(Ai2, velocidad); + digitalWrite(Bi1, LOW); + analogWrite(Bi2, velocidad); +} + +void izquierda(){ + digitalWrite(Ai1, LOW); + analogWrite(Ai2, velocidad); + analogWrite(Bi1, velocidad); + digitalWrite(Bi2, LOW); +} + +void derecha(){ + analogWrite(Ai1, velocidad); + digitalWrite(Ai2, LOW); + digitalWrite(Bi1, LOW); + analogWrite(Bi2, velocidad); +} + +// Rutina +void loop() { + + adelante(); + + pinStateIzq = analogRead(linea_izq); + pinStateDer = analogRead(linea_der); + pinStateAtr = analogRead(linea_atr); + + if (pinStateIzq < umbral1) { + detener(); + delay(1000); + derecha(); + delay(800); + adelante(); + } + else { + if (pinStateDer < umbral1) { + detener(); + delay(1000); + izquierda(); + delay(800); + adelante(); + } + else { + if (pinStateAtr < umbral2) { + detener(); + delay(1000); + adelante(); + delay(800); + } + } + } + Serial.print("sensor izquierdo: "); + Serial.print(pinStateIzq); + Serial.print(' '); + Serial.print("sensor derecho: "); + Serial.print(pinStateDer); + Serial.print(' '); + Serial.print("sensor atrás: "); + Serial.print(pinStateAtr); + Serial.println(' '); + delay(100); + +}//Fin Loop