#include <Servo.h>
Servo servo;
const unsigned int piezo = A0;
const unsigned int buttonServo = 7;
const unsigned int greenLed = 8;
const unsigned int redLed = 10;
const unsigned int angleDown = 95;
const unsigned int angleTop = 0;
unsigned long timeToCheck;
unsigned int minToc = 100;
unsigned int toc;
boolean hit = 0;
void setup()
{
servo.attach(9);
pinMode(buttonServo, INPUT);
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
Serial.begin(9600); //debug
}
void loop()
{
timeToCheck = millis();
toc = analogRead(piezo);
if (toc > minToc)
{
check();
while (millis() - timeToCheck < 1000);
if (hit == 0)
{
fail();
}
}
}
void check()
{
if (digitalRead(buttonServo) == HIGH)
{
but();
}
}
void but()
{
hit = 1;
digitalWrite(greenLed, HIGH);
Serial.println("BING!");
servo.write(angleTop);
delay(200);
servo.write(angleDown);
delay(1500); //random?
digitalWrite(greenLed, LOW);
hit = 0;
}
void fail()
{
Serial.println("FAIL :(");
digitalWrite(redLed, HIGH);
delay(1700);
digitalWrite(redLed, LOW);
}