#include <LiquidCrystal.h>
// Initialisiere das LCD-Display mit den entsprechenden Pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Initialisiere den Pin für den Knopf
const int buttonPin = 6;
// Variable zur Speicherung der Anzahl der Drücke
int count = 0;
void setup() {
// Initialisiere das LCD-Display mit 16 Spalten und 2 Zeilen
lcd.begin(16, 2);
// Setze den Pin für den Knopf als Eingang
pinMode(buttonPin, INPUT);
// Zeige die Startanzahl auf dem LCD an
lcd.print("BierCounter: ");
lcd.print(count);
}
void loop() {
// Lese den Status des Tastschalters ein
int buttonState = digitalRead(buttonPin);
// Überprüfe, ob der Tastschalter gedrückt wurde
if (buttonState == HIGH) {
// Warte, bis der Knopf losgelassen wird
while(digitalRead(buttonPin) == HIGH);
// Erhöhe die Zählerzahl um eins
count++;
// Überprüfe, ob der Zähler 100 erreicht hat
if (count >= 100) {
// Zähler zurücksetzen
count = 0;
lcd.clear();
lcd.print(" 100 Flaschen ");
lcd.setCursor(0, 1);
lcd.print(" Ausgesoffen!");
lcd.setCursor(0, 0);
delay(2000);
}
else {
// Lösche die vorherige Anzeige
lcd.clear();
// Aktualisiere die Anzeige des Zählers
lcd.print("BierCounter: ");
lcd.print(count);
// Berechne den Fortschritt in Prozent
float progress = (float)count / 100.0 * 100.0;
// Überprüfe, ob die Hälfte erreicht wurde
if (count == 50) {
lcd.setCursor(0, 1);
lcd.print("50Bier sind alle!");
}
else if (count % 10 == 0 && count != 0) {
lcd.setCursor(0, 1);
lcd.print("Fortschritt: ");
lcd.print(progress);
lcd.print("%");
}
}
}
}