// Pin-Definitionen
#define BUTTON1 2
#define BUTTON2 3
// LEDs in einem Array zusammengefasst (Pins 4 bis 9)
const int LED_PINS[6] = { 4, 5, 6, 7, 8, 9 };
void setup() {
// Taster als Input mit internem Pull-Up
pinMode(BUTTON1, INPUT_PULLUP);
pinMode(BUTTON2, INPUT_PULLUP);
// LEDs per Schleife als Output konfigurieren
for (int i = 0; i < 6; i++) {
pinMode(LED_PINS[i], OUTPUT);
}
Serial.begin(9600); // Serielle Schnittstelle für Debug-Ausgaben
}
// Gibt die 6 niederwertigsten Bits von 'Anzahl' auf den LEDs aus
void dualzahl(int Anzahl) {
for (int i = 0; i < 6; i++) {
// Liest Bit i aus und schreibt es auf LED_PINS[i]
digitalWrite(LED_PINS[i], (Anzahl >> i) & 1);
}
}
void loop() {
// Aktuellen Tasterzustand einlesen
bool tasterStatus1 = digitalRead(BUTTON1);
static bool lastTasterStatus1 = HIGH; // Zustand der Voriteration
bool tasterStatus2 = digitalRead(BUTTON2);
static bool lastTasterStatus2 = HIGH;
static unsigned int Zaehler = 0; // Zähler für Druckvorgänge
// Flankenerkennung Taster1: LOW→HIGH (Loslassen)
if (tasterStatus1 == HIGH && lastTasterStatus1 == LOW) {
delay(150); // Entprellen
Zaehler++; // Zähler erhöhen
Serial.println(Zaehler);
}
lastTasterStatus1 = tasterStatus1; // Zustand merken
// Flankenerkennung Taster2: LOW→HIGH (Loslassen) → Reset
if (tasterStatus2 == HIGH && lastTasterStatus2 == LOW) {
delay(150); // Entprellen
Zaehler = 0; // Zähler zurücksetzen
Serial.println(Zaehler);
}
lastTasterStatus2 = tasterStatus2; // Zustand merken
// Ausgabe des aktuellen Zählerstandes als Binärzahl auf den LEDs
dualzahl(Zaehler);
}