added reaktionsspiel

This commit is contained in:
MrBesen 2020-01-16 13:10:16 +01:00
parent f4f1b9c300
commit 101fa87103
Signed by: MrBesen
GPG Key ID: 596B2350DCD67504
2 changed files with 129 additions and 0 deletions

View File

@ -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
}

View File

@ -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);
}