#define pinoX A0 // pinagem para leitura do eixo X
#define pinoY A1 // pinagem para leitura do eixo Y
#define pinoBtn A2 // pinagem para leitura se pressionado
#define pinoLedL 4
#define pinoLedW 5
#define pinoLedS 6
#define pinoLedN 7
int valorX = 0;
int valorY = 0;
int valorBtn = 0;
void setup()
{
Serial.begin(9600);
pinMode(pinoLedN, OUTPUT);
pinMode(pinoLedS, OUTPUT);
pinMode(pinoLedL, OUTPUT);
pinMode(pinoLedW, OUTPUT);
}
void loop()
{
valorX = analogRead(pinoX);
valorY = analogRead(pinoY);
valorBtn = analogRead(pinoBtn);
// valorX e valorY retornarão 512 se esviverem centralizados
if(valorX > 514)
{
Serial.println("Cima");
digitalWrite(pinoLedN, HIGH);
digitalWrite(pinoLedS, LOW);
digitalWrite(pinoLedL, LOW);
digitalWrite(pinoLedW, LOW);
}
if(valorX < 510)
{
Serial.println("Baixo");
digitalWrite(pinoLedN, LOW);
digitalWrite(pinoLedS, HIGH);
digitalWrite(pinoLedL, LOW);
digitalWrite(pinoLedW, LOW);
}
if(valorY > 514)
{
Serial.println("Esquerda");
digitalWrite(pinoLedN, LOW);
digitalWrite(pinoLedS, LOW);
digitalWrite(pinoLedL, LOW);
digitalWrite(pinoLedW, HIGH);
}
if(valorY < 510)
{
Serial.println("Direita");
digitalWrite(pinoLedN, LOW);
digitalWrite(pinoLedS, LOW);
digitalWrite(pinoLedL, HIGH);
digitalWrite(pinoLedW, LOW);
}
if(valorY > 510 & valorY < 514 & valorX > 510 & valorX < 514)
{
Serial.println("Direita");
digitalWrite(pinoLedN, LOW);
digitalWrite(pinoLedS, LOW);
digitalWrite(pinoLedL, LOW);
digitalWrite(pinoLedW, LOW);
}
// valorBtn retornara valores aleatórios e 0 se pressionado
if(valorBtn == 0)
{
Serial.println("Pressionado");
digitalWrite(pinoLedN, HIGH);
digitalWrite(pinoLedS, HIGH);
digitalWrite(pinoLedL, HIGH);
digitalWrite(pinoLedW, HIGH);
}
Serial.print("ValorX: ");
Serial.print(valorX);
Serial.print("\t");
Serial.print("Valor Y: ");
Serial.print(valorY);
Serial.print("\t");
Serial.print("Valor Botão: ");
Serial.println(valorBtn);
delay(200);
}