// Máquina de coletar prêmios de shopping. Existe um nome pra essa coisa?
// Única coisa que eu pensei na hora. Mente tá acabada por conta do Challenge.. decidi
// fazer isso, porque a única coisa que me interessou, e dava tempo, era algo com joystick.

// define as variáveis
#define eixo_y A0
#define eixo_x A1
#define botao  2
#define led1_x 3
#define led2_y 4
#define led3_prem 13
#define buzzer1 10
#define buzzer2 9
#define buzzer3 8



void setup() {
Serial.begin(9600);

pinMode(led1_x, OUTPUT); // led de funcionamento do eixo horizontal da garra.
pinMode(led2_y, OUTPUT); // led de funcionamento do eixo vertical da garra.
pinMode(led3_prem, OUTPUT); // led de funcionamento da descida da garra, para apanhar o prêmio.
  
pinMode(eixo_y, INPUT); 
pinMode(eixo_x, INPUT);
pinMode(botao, INPUT_PULLUP);   // input do joystick, de 0 a 1023. Defini entre 510 e 513 o centro, com
                                // certa tolerância.
}

void loop() {
int y = analogRead(eixo_y);
int x = analogRead(eixo_x);

bool botao_press = digitalRead(botao);

if (x < 510 || x > 513){
  tone(10, 400, 400);
  digitalWrite(3, 1);
  delay(400);
  digitalWrite(3, 0);
  delay(400);
}

if (y < 510 || y > 513){
  tone(9, 150, 600);
  digitalWrite(4, 1);
  delay(600);
  digitalWrite(4, 0);
  delay(600);
}

if (digitalRead(botao) == LOW) {
    tone(8, 262, 200);
    digitalWrite(3, 1);
    digitalWrite(4, 1);
    digitalWrite(13, 1);
    delay(200);
    digitalWrite(3, 0);
    digitalWrite(4, 0);
    digitalWrite(13, 0);
    delay(200);
}

}