Arduino
Beim Arduino (oder anderen Mikrocontrollern) kann man den Taster auch softwareseitig entprellen. Ein mechanischer Taster kann dazu neigen, mehrere schnelle Schaltvorgänge zu erzeugen, wenn er betätigt wird. Dies wird als "Prellen" bezeichnet. Software-Entprellung bezieht sich auf den Prozess, durch den diese unerwünschten Schaltvorgänge durch Programmlogik herausgefiltert werden.
Es gibt verschiedene Ansätze zur softwareseitigen Entprellung eines Tasters. Hier ist ein einfaches Beispiel in Arduino-Code, um dies zu verdeutlichen:
const int buttonPin = 2; // Der Pin, an dem der Taster angeschlossen istint lastButtonState = LOW; // Der vorherige Zustand des Tastersint buttonState; // Der aktuelle Zustand des Tastersunsigned long lastDebounceTime = 0; // Zeitpunkt des letzten Zustandswechselsunsigned long debounceDelay = 50; // Zeit in Millisekunden für die Entprellungvoid setup() {pinMode(buttonPin, INPUT);Serial.begin(9600);}void loop() {buttonState = digitalRead(buttonPin);if (buttonState != lastButtonState) {lastDebounceTime = millis();}if ((millis() - lastDebounceTime) > debounceDelay) {if (buttonState != lastButtonState) {lastButtonState = buttonState;if (buttonState == HIGH) {Serial.println("Taster gedrückt.");// Füge hier deine gewünschte Aktion hinzu}}}}
In diesem Beispiel wird der Tasterzustand regelmäßig überprüft. Wenn sich der Tasterzustand ändert, wird die aktuelle Zeit gespeichert. Wenn seit der letzten Zustandsänderung mehr Zeit vergangen ist als die definierte Entprellzeit (debounceDelay
), wird überprüft, ob der Tasterzustand stabil ist (nicht im Prellen-Zustand). Wenn ja, wird die gewünschte Aktion ausgeführt.Du kannst die Entprellzeit (debounceDelay
) an deine Anforderungen anpassen. Dies ist nur ein grundlegendes Beispiel, und es gibt auch fortgeschrittenere Entprelltechniken, die je nach Anwendung verwendet werden können.