From 2bb60138a9d04684b3dca9e5cc0c3d69af4969c3 Mon Sep 17 00:00:00 2001 From: JUFS Date: Mon, 23 Feb 2026 10:08:56 +0100 Subject: [PATCH] Dateien nach "/" hochladen --- reaktionstesterbase.ino | 83 ++++++++++++++++++++++++++++++++++++++++ reaktionstesterclean.ino | 80 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 reaktionstesterbase.ino create mode 100644 reaktionstesterclean.ino diff --git a/reaktionstesterbase.ino b/reaktionstesterbase.ino new file mode 100644 index 0000000..a4af494 --- /dev/null +++ b/reaktionstesterbase.ino @@ -0,0 +1,83 @@ +// Copyright Justus Wolff™℗®© +// Schnell zusammengekleistert vom eigentlichem code den ich (Justus) und Santosh verwenden würden, +// auf Wunsch von Frau Bürgel dass wir einen Grundcode anfertigen sollen. +// Also einfach der Code mit den zeilen für die Highscore funktion auskommentiert. + +#include +#include + +int led = 7; // pin Nummern für jwl. Komponente +int bt = 8; +// long highscore = 999999; // speichert highscore in einer Variable +LiquidCrystal_I2C lcd(0x27,16,2); // LCD deklarieren + +void setup() { + // put your setup code here, to run once: + pinMode(led, OUTPUT); + pinMode(bt, INPUT_PULLUP); // pinmodes setzen (selbsterklärend) + + randomSeed(analogRead(A1)); // Zufallsgenerator initialisieren + Serial.begin(9600); + Serial.println("Santhosh Justus Reaktionstester debug Information"); + lcd.init(); // LCD initialisieren + lcd.clear(); + lcd.backlight(); // backlight an machen +} + +void loop() { + lcd.setCursor(0, 0); + lcd.print("klicke sobald"); + lcd.setCursor(0, 1); + lcd.print("Die LED leuchtet"); // gebrauchsanleitung für tester + + int del = random(300, 3000); // Wartezeit für das Leuchten der LED + + Serial.println("--------------------------------------"); // extra Informationen im seriellen Monitor + Serial.print("Wartezeit:"); // debug + Serial.println(del); // debug + delay(del); // warten + + while (digitalRead(bt)==0) { // warten bis nicht mehr gedrückt + Serial.println("Versuch zu schummeln."); // debug + delay(random(300, 3000)); // zufällige Zeit warten bis zur nächsten Überprüfung + } + long t1 = millis(); + + digitalWrite(led, HIGH); + + while (digitalRead(bt)==1) {} // warten bis gedrückt + + t1 = millis()-t1; // berechnen der reaktionszeit + + digitalWrite(led, LOW); + + Serial.print("Ergebnis: "); // debug + Serial.println(t1); // debug + + lcd.clear(); // anzeigen der reaktionszeit + lcd.setCursor(0, 1); + lcd.print(t1); + lcd.print("ms"); + lcd.setCursor(0, 0); + lcd.print("Reaktionszeit:"); + + delay(100); + while (digitalRead(bt)==0) {} // warten bis nicht gedrückt + while (digitalRead(bt)==1) {} // warten bis gedrückt + delay(100); + + /*if (t1 < highscore) { // highscore logik, zeigt "highscore" falls Reaktionszeit am niedrigsten ist bzw. < highscore + highscore = t1; + Serial.println("Highscore"); + lcd.clear(); + lcd.setCursor(0,0); + lcd.print("--HIGHSCORE!!!--"); + lcd.setCursor(0,1); + lcd.print("Zeit:"); + lcd.print(t1); + Serial.println("wartet bis drücken"); + while (digitalRead(bt)==1) {} // warten bis gedrückt + }*/ + lcd.clear(); // cleanup + delay(1000); +} diff --git a/reaktionstesterclean.ino b/reaktionstesterclean.ino new file mode 100644 index 0000000..7d2c147 --- /dev/null +++ b/reaktionstesterclean.ino @@ -0,0 +1,80 @@ +// Copyright Santhosh Venugopal™℗®© & Justus Wolff™℗®© + +#include +#include + +int led = 7; // pin Nummern für jwl. Komponente +int bt = 8; +long highscore = 999999; // speichert highscore in einer Variable +LiquidCrystal_I2C lcd(0x27,16,2); // LCD deklarieren + +void setup() { + // put your setup code here, to run once: + pinMode(led, OUTPUT); + pinMode(bt, INPUT_PULLUP); // pinmodes setzen (selbsterklärend) + + randomSeed(analogRead(A1)); // Zufallsgenerator initialisieren + Serial.begin(9600); + Serial.println("Santhosh Justus Reaktionstester debug Information"); + lcd.init(); // LCD initialisieren + lcd.clear(); + lcd.backlight(); // backlight an machen +} + +void loop() { + lcd.setCursor(0, 0); + lcd.print("klicke sobald"); + lcd.setCursor(0, 1); + lcd.print("Die LED leuchtet"); // gebrauchsanleitung für tester + + int del = random(300, 3000); // Wartezeit für das Leuchten der LED + + Serial.println("--------------------------------------"); // extra Informationen im seriellen Monitor + Serial.print("Wartezeit:"); // debug + Serial.println(del); // debug + delay(del); // warten + + while (digitalRead(bt)==0) { // warten bis nicht mehr gedrückt + Serial.println("Versuch zu schummeln."); // debug + delay(random(300, 3000)); // zufällige Zeit warten bis zur nächsten Überprüfung + } + long t1 = millis(); + + digitalWrite(led, HIGH); + + while (digitalRead(bt)==1) {} // warten bis gedrückt + + t1 = millis()-t1; // berechnen der reaktionszeit + + digitalWrite(led, LOW); + + Serial.print("Ergebnis: "); // debug + Serial.println(t1); // debug + + lcd.clear(); // anzeigen der reaktionszeit + lcd.setCursor(0, 1); + lcd.print(t1); + lcd.print("ms"); + lcd.setCursor(0, 0); + lcd.print("Reaktionszeit:"); + + delay(100); + while (digitalRead(bt)==0) {} // warten bis nicht gedrückt + while (digitalRead(bt)==1) {} // warten bis gedrückt + delay(100); + + if (t1 < highscore) { // highscore logik, zeigt "highscore" falls Reaktionszeit am niedrigsten ist bzw. < highscore + highscore = t1; + Serial.println("Highscore"); + lcd.clear(); + lcd.setCursor(0,0); + lcd.print("--HIGHSCORE!!!--"); + lcd.setCursor(0,1); + lcd.print("Zeit:"); + lcd.print(t1); + Serial.println("wartet bis drücken"); + while (digitalRead(bt)==1) {} // warten bis gedrückt + } + lcd.clear(); // cleanup + delay(1000); +}