#define BUZZER A0
#define LED 7
#define PUSHBUTTON 4
#define TONE 0
#define LIGHT 1
enum Signal {
Light,
Tone
};
void setup() {
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
pinMode(PUSHBUTTON, INPUT);
Serial.begin(9600);
}
void signalWrite( Signal signal, int lowhigh ) {
if( lowhigh==HIGH ) {
switch (signal) {
case Tone:
tone(BUZZER,250);
break;
case Light:
digitalWrite(LED, HIGH);
break;
}
} else {
switch (signal) {
case TONE:
noTone(BUZZER);
break;
case LIGHT:
digitalWrite(LED, LOW);
break;
}
}
}
float measureReaction( Signal signal, uint16_t tests ) {
float measurement_acc = 0;
int end_time = 0;
int start_time = 0;
bool measurement = false;
int anzahl = 0;
while ( anzahl < tests ) {
if ( measurement ) {
if( digitalRead(PUSHBUTTON) == HIGH ) {
signalWrite(signal, LOW);
// zeit berechnen
end_time = millis();
measurement_acc += end_time - start_time;
measurement = false;
anzahl++;
}
} else {
delay(1000+random(2000));
if( digitalRead(PUSHBUTTON) == LOW ) {
start_time = millis();
signalWrite(signal,HIGH);
measurement = true;
}
}
}
return measurement_acc/tests;
}
void loop() {
float light_reaction = measureReaction(Light,2);
float tone_reaction = measureReaction(Tone,2);
Serial.println(light_reaction);
Serial.println(tone_reaction);
}