#define BUTTON 12 // an Schaltung anpassen
#define LED 3 // an Schaltung anpassen
bool entprellen = false;
bool zustandTaster = HIGH; // aktueller Status des Tasters
bool zustandTasterAlt = HIGH; // letzter Status des Tasters
bool zustandLed = LOW; // Status der LED (an oder aus)
unsigned long entprellZeit = 30; // in ms
unsigned long startEntprellen; // Zeitpunkt, wenn das Enprellen beginnt
void setup() {
Serial.begin(115200);
pinMode(BUTTON, INPUT_PULLUP); // interner Pull-Up-Widerstand
pinMode(LED, OUTPUT);
}
void loop() {
zustandTaster = digitalRead(BUTTON);
// Wurde der Taster gedrückt?
if ((zustandTaster == 0) && (zustandTasterAlt == 1)) {
startEntprellen = millis(); // Zeitstempel für das Entprellen
entprellen = true; // Entprellen soll gestartet werden
}
// Die Zustandsänderung des Tasters wurde bereits erkannt, jetzt muss entprellt werden:
if (entprellen)
{
/* PSEUDOCODE zum Entprellen
-------------------------------------------------------- */
if ((millis()- startEntprellen) > entprellZeit);
{
if (zustandTaster == 0);
{
zustandLed = !zustandLed;
Serial.print("hallo");
entprellen = false;
}
}
/* --------------------------------------------------------
*/
}
zustandTasterAlt = zustandTaster; // alten Tasterzustand speichern
digitalWrite(LED, zustandLed); // LED-Status aktualisieren
}