#define vertical 4
#define horizontal 2
#define pinUp 25
#define pinLeft 33
#define pinRight 26
#define pinDown 17
void setup() {
Serial.begin(115200);
pinMode(vertical, INPUT);
pinMode(horizontal, INPUT);
pinMode(pinUp, OUTPUT);
pinMode(pinLeft, OUTPUT);
pinMode(pinRight, OUTPUT);
pinMode(pinDown, OUTPUT);
}
void loop() {
int lecturaVertical=analogRead(vertical);
int lecturaHorizontal=analogRead(horizontal);
if( lecturaVertical> 2048 && lecturaHorizontal==2048){
Serial.println("arriba");
digitalWrite(pinUp, HIGH);
digitalWrite(pinDown, LOW );
digitalWrite(pinLeft, LOW );
digitalWrite(pinRight, LOW );
}
else if(lecturaVertical<2048 && lecturaHorizontal==2048){
Serial.println("abajo");
digitalWrite(pinDown, HIGH);
digitalWrite(pinUp, LOW );
digitalWrite(pinLeft, LOW );
digitalWrite(pinRight, LOW );
}
else if(lecturaHorizontal>2048 && lecturaVertical==2048){
Serial.println("izquierda");
digitalWrite(pinLeft, HIGH);
digitalWrite(pinDown, LOW );
digitalWrite(pinUp, LOW );
digitalWrite(pinRight, LOW );
}
else if(lecturaHorizontal<2048 && lecturaVertical==2048){
Serial.println("derecha");
digitalWrite(pinRight, HIGH);
digitalWrite(pinDown, LOW );
digitalWrite(pinLeft, LOW );
digitalWrite(pinUp, LOW );
}
//Lecturas a los lados
else if(lecturaHorizontal<2048 && lecturaVertical>2048){
Serial.println("arriba-derecha");
digitalWrite(pinUp, HIGH);
digitalWrite(pinRight, HIGH);
}
else if(lecturaHorizontal>2048 && lecturaVertical>2048){
Serial.println("arriba-izquierda");
digitalWrite(pinUp, HIGH);
digitalWrite(pinLeft, HIGH);
}
else if(lecturaHorizontal<2048 && lecturaVertical<2048){
Serial.println("abajo-derecha");
digitalWrite(pinDown, HIGH);
digitalWrite(pinRight, HIGH);
}
else if(lecturaHorizontal>2048 && lecturaVertical<2048){
Serial.println("abajo-izquierda");
digitalWrite(pinDown, HIGH);
digitalWrite(pinLeft, HIGH);
}
else {
digitalWrite(pinDown, LOW);
digitalWrite(pinUp,LOW);
digitalWrite(pinLeft,LOW);
digitalWrite(pinRight,LOW);
}
delay(100);
}
/*
1.- Crear variables de lectura de los datos de la palanca
2.- Identificar los datos de salida de la palanca
3.- Inicializar los leds adecuadamente.
4.- Con lógica, establecer una dirección de lectura, ej- arriba, e imprimirla
5.- Establecer las demás posiciones, considerando las limitantes fisicas de la palanca
6.- Establecer mensajes en el monitor serial de acuerdo a las posiciones de la palanca
7.- Las posiciones deben ser excluyentes entre sí
8.- Prender los leds acorde a las restricciones excluyentes mencionadas anteriormente
*/