diff --git a/reaktionsspiel/spiel/spiel.ino b/reaktionsspiel/spiel/spiel.ino new file mode 100644 index 0000000..a5f1066 --- /dev/null +++ b/reaktionsspiel/spiel/spiel.ino @@ -0,0 +1,97 @@ + + +#define KNOPFA 2 +#define KNOPFB 3 + +#define LEDA 8 +#define LEDB 9 + +#define MAXWAIT 100 +#define MUL 100 + +void setup() { + pinMode(KNOPFA, OUTPUT); + pinMode(KNOPFB, OUTPUT); + + pinMode(LEDA, INPUT); + pinMode(LEDB, INPUT); + + Serial.begin(9600); + Serial.println("Setupdone"); +} + +void check_end(int stat) { + Serial.println("check_end()"); + if(stat == 1) { // 1 - A Verloren -> LEDB an + digitalWrite(LEDB, HIGH); + digitalWrite(LEDA, LOW); + } else if(stat == 2) { // 1 - B Verloren -> LEDA an + digitalWrite(LEDA, HIGH); + digitalWrite(LEDB, LOW); + } +} + +void loop() { + Serial.println("Start"); + //lampen an + digitalWrite(LEDA, HIGH); + digitalWrite(LEDB, HIGH); + + delay(5000); //5s warten + + //lampen aus + digitalWrite(LEDA, LOW); + digitalWrite(LEDB, LOW); + + delay(200); + + int wait = (analogRead(0) + analogRead(1)) % MAXWAIT; + if(wait < 1) wait = analogRead(2) % MAXWAIT; + wait++; + + Serial.print("wait: "); + Serial.println(wait, DEC); + int state = 0; // 0 - running, 1 - A Verloren, 2 - B Verloren + + //prüfen, das keiner zu früh drückt. + for(int i = 0; i < wait; i++) { + delay(MUL); + if(digitalRead(KNOPFA) == 1) { + //A Verloren + state = 1; + break; + } + if(analogRead(KNOPFB) == 1) { + //B Verloren + state = 2; + break; + } + } + check_end(state); + if(state > 0) { + delay(5000); + return; + } + + //lampen an + Serial.println("GOOO"); + digitalWrite(LEDA, HIGH); + digitalWrite(LEDB, HIGH); + + //prüfen wer als erstes drückt + while(true) { + if(digitalRead(KNOPFA) == 1) { + //B Verloren + check_end(2); + break; + } + if(digitalRead(KNOPFB) == 1) { + //A Verloren + check_end(1); + break; + } + } + + Serial.println("Ende"); + delay(5000); //5 sec nichts machen +} diff --git a/reaktionsspiel/test/test.ino b/reaktionsspiel/test/test.ino new file mode 100644 index 0000000..c45a681 --- /dev/null +++ b/reaktionsspiel/test/test.ino @@ -0,0 +1,32 @@ +#define KNOPFA 2 +#define KNOPFB 3 + +#define LEDA 8 +#define LEDB 9 + +void setup() { + pinMode(KNOPFA, OUTPUT); + pinMode(KNOPFB, OUTPUT); + pinMode(13, OUTPUT); + + pinMode(LEDA, INPUT); + pinMode(LEDB, INPUT); + + Serial.begin(9600); + Serial.println("Setupdone"); +} + +char a = 0; +void loop() { + + digitalWrite(LEDA, digitalRead(KNOPFA)); + digitalWrite(LEDB, digitalRead(KNOPFB)); + + Serial.print(digitalRead(KNOPFA), DEC); + Serial.print(" "); + Serial.println(digitalRead(KNOPFB), DEC); + + delay(1); + digitalWrite(13, (a++) & 1); + +}