Tag: debounce

Sygnalizator revisited czyli przyciski i debouncing

Dawno temu pisałem o tym jak można korzystać z przycisków (tactile switch, pushbutton) na przykładzie kartonowego sygnalizatora. Wróćmy do tematu, tym razem na poważniej zajmując się przyciskami. Jeśli spojrzycie na kod tamtego sygnalizatora, możecie dostrzec następującą pętlę loop: void loop() {   val = digitalRead(buttonPin);   if (val == HIGH && prev == LOW) {     next_status();   }   prev = val;   display_status();   delay(50); } Wykrywanie naciśnięcia odbywa się przez porównanie bieżącej wartości wejścia cyfrowego z poprzednią. Jeżeli aktualna wartość to HIGH a poprzednia to LOW, to wykonujemy akcję next_status(), która zmienia stan sygnalizatora. I wszystko działa. Ale nie ma problemów, tylko dzięki ostatniej linii kodu w loop:

Czytaj dalej...