#include <Wire.h>
#include <LiquidCrystal_I2C.h> // muss installiert werden
// I2C Adresse meist 0x27 oder 0x3F
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Verbindung:
// GND -> GND
// VCC -> 5V
// SDA -> A4
// SCL -> A5
// Button Pin 7 und Pin 8
// Button GND
const int buttonPin = 7; // Button input pin P1
const int buttonPin = 8; // Button input pin P2
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // internal pull-up resistor
lcd.init(); // initialize I2C display
lcd.backlight(); // turn on backlight
lcd.setCursor(0,0);
lcd.print("Reaction Timer!");
delay(2000);
lcd.clear();
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Get Ready...");
delay(random(3000,6000)); // random wait 3-6 s
lcd.clear();
lcd.setCursor(0,0);
lcd.print("NOW!");
long startTime = millis();
while (digitalRead(buttonPin) == HIGH) {
// wait for button press
}
long reactionTime = millis() - startTime;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Reaction time:");
lcd.setCursor(0,1);
lcd.print(reactionTime);
lcd.print(" ms");
delay(2000);
lcd.clear();
}