// LCD1602 to Arduino Uno connection example
#include <LiquidCrystal.h>
#include <Wire.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
//LiquidCrystal lcd(7, 8, 9, 10, 11, 12); originalBelegung
// Taster-Pin
const byte buttonPin = 2;
// Konstanten die direkt so heissen dass sie sich selbst erklären
const byte losgelassen = HIGH;
const byte gedrueckt = LOW;
// Variablen zur Zustandssteuerung
bool isOccupied = false; // Zustand: Besetzt oder Frei
bool lastButtonState = LOW; // Letzter Zustand des Tasters
void setup() {
// LCD initialisieren
lcd.begin(16, 2); // 16 Zeichen, 2 Zeilen
lcd.print("Status: Frei");
// Taster-Pin initialisieren
//pinMode(buttonPin, INPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
// Tasterstatus lesen
bool currentButtonState = digitalRead(buttonPin);
// Wenn der Taster gedrückt wurde (flankengesteuert)
if (currentButtonState == gedrueckt && lastButtonState == losgelassen) {
delay(400); // Entprellen
isOccupied = !isOccupied; // Zustand wechseln
// LCD entsprechend aktualisieren
lcd.clear();
if (isOccupied) {
lcd.print("Status: Besetzt");
} else {
lcd.print("Status: Frei");
}
}
// Tasterzustand speichern
lastButtonState = currentButtonState;
}