Dateien nach "/" hochladen
This commit is contained in:
81
reaktionstester.ino
Normal file
81
reaktionstester.ino
Normal file
@@ -0,0 +1,81 @@
|
||||
// Copyright Santhosh Venugopal™℗®© & Justus Wolff™℗®©
|
||||
// "Es war ein vergnügen die Kommentare zu schreiben" - Justus Wolff
|
||||
// "..." - Santosh (14 Jahre alt, ist still)
|
||||
#include <LiquidCrystal_I2C.h>
|
||||
#include <Wire.h>
|
||||
|
||||
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 (damit man auch was sieht)
|
||||
}
|
||||
|
||||
void loop() {
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.print("klick! sobald");
|
||||
lcd.setCursor(0, 1);
|
||||
lcd.print("LED leuchtet"); // gebrauchsanleitung für tester (sagt nur dass man taster klicken soll sobald LED leuchet (Meiner meinung nach zu viel information innerhalb eines kommentars jajaja...))
|
||||
|
||||
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(); // leider kann dies maximal bis 24,8 tage (gerundet) zählen bevor ein bit overflow passiert wodurch die reaktionszeit minus werden würde... :(
|
||||
|
||||
digitalWrite(led, HIGH); // selbsterklärend (Bringt die LED zum leuchten gemäß des standards bzw. des weges angegeben vom lernbaustein auf seite 8, ungefähr 1/2 der seite der y achse, bitte verklagt mich nicht für diesen kriminell langen kommentar, danke, amen) ich verklag dich, justus!!
|
||||
|
||||
while (digitalRead(bt)==1) {} // warten bis gedrückt
|
||||
|
||||
t1 = millis()-t1; // berechnen der reaktionszeit
|
||||
|
||||
digitalWrite(led, LOW); // hier keinen so laaaaaaaaaaaaaaaaaaaaaaangen kommentar wie oooooooooooooben
|
||||
|
||||
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 bzw. im guten altem deutsch, A U F R Ä U M E N
|
||||
delay(1000);
|
||||
}
|
||||
Reference in New Issue
Block a user