// Ein sehr einfaches Beispiel zum Entprellen eines Tasters und Umschalten einer LED.
// Dieses Beispiel blockiert den MC während des Entprellens.
#define BUTTON 12 // an Schaltung anpassen
#define LED 3 // an Schaltung anpassen
int zustandTaster = HIGH; // aktueller Status des Taster-PINs
int zustandTasterAlt = HIGH; // Status des Taster-PINs vor der letzten Überprüfung
int zustandLed = LOW; // Status der LED (an oder aus)
void umschaltenLED(int pPin) {
zustandLed = !zustandLed; // LED-Status umschalten
digitalWrite(pPin, zustandLed); // LED ein- oder ausschalten
}
void setup() {
pinMode(BUTTON, INPUT_PULLUP); // Tasterpin mit Pull-Up-Widerstand konfigurieren
pinMode(LED, OUTPUT);
}
void loop() {
zustandTaster = digitalRead(BUTTON); // aktuellen Zustand des Tasters bestimmen
// Wurde der Taster gerade gedrückt ( zustandTaster == 0 ) UND war er vorher nicht gedrückt (zustandTasterAlt == 1)
if ((zustandTaster == 0) && (zustandTasterAlt == 1))
{
delay(30); // 30 ms warten, um falsche Zustandsänderungen zu ignorieren
zustandTaster = digitalRead(BUTTON); // Zustand des Taster überprüfen
if (zustandTaster == 0) { // Ist der Taster immer noch gedrückt?
umschaltenLED(LED);
}
}
zustandTasterAlt = zustandTaster; // alten Wert des Tasters speichern
}