Raspberry Pi - Knop - Debounce
Wanneer een knop wordt ingedrukt of losgelaten, of wanneer een schakelaar wordt omgezet, denken beginners vaak dat de status simpelweg verandert van LOW naar HIGH of van HIGH naar LOW. In werkelijkheid is dit niet het geval. Door mechanische en fysieke eigenschappen kan de status van de knop (of schakelaar) meerdere keren snel wisselen tussen LOW en HIGH. Dit fenomeen staat bekend als chattering. Chattering kan ertoe leiden dat één keer drukken wordt gelezen als meerdere drukken, wat in bepaalde toepassingen problemen kan veroorzaken.

De methode om dit probleem te voorkomen wordt debounce of debouncing genoemd. In deze tutorial leert u hoe u dit toepast bij het gebruik van een knop met de Raspberry Pi. We doorlopen de volgende stappen:
- Raspberry Pi code zonder debounce van een knop.
- Raspberry Pi code met debounce van een knop.
- Raspberry Pi code met debounce voor meerdere knoppen.
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de Knop
Als u niet bekend bent met knoppen, inclusief hun pinout, werking en programmering, kunnen de volgende tutorials u meer informatie bieden:
Aansluitschema

This image is created using Fritzing. Click to enlarge image
Laten we de verschillen bekijken tussen Raspberry Pi code MET en ZONDER debounce, en hun respectievelijke gedragingen.
Knop uitlezen zonder Debounce
Voordat u debouncing begrijpt, bekijkt u eerst de code zonder debounce en observeert u het gedrag.
Snel Starten
- Zorg dat u Raspbian of een ander Raspberry Pi compatibel besturingssysteem op uw Pi hebt geïnstalleerd.
- Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
- Zorg dat uw Raspberry Pi met internet is verbonden als u libraries moet installeren.
- Bent u nieuw met Raspberry Pi? Bekijk dan hoe u de Raspberry Pi installeert.
- Verbind uw pc via SSH met de Raspberry Pi, gebruikmakend van de ingebouwde SSH client op Linux of macOS, of PuTTY op Windows. Zie hoe u pc met Raspberry Pi verbindt via SSH.
- Controleer of de RPi.GPIO bibliotheek geïnstalleerd is. Zo niet, installeer deze met het volgende commando:
- Maak een Python scriptbestand aan met de naam button_without_debounce.py en voeg de volgende code toe:
- Sla het bestand op en voer het script uit met het volgende commando in de terminal:
Het script draait in een oneindige lus totdat u in de terminal Ctrl + C indrukt.
- Druk de knop in en houd deze enkele seconden ingedrukt, laat daarna los.
- Bekijk de uitvoering in de terminal.
Soms heeft u de knop maar één keer ingedrukt en losgelaten, maar registreert de Raspberry Pi dit als meerdere drukken en loslatingen. Dit is het hierboven beschreven chattering fenomeen. Laten we zien hoe we dit oplossen in het volgende deel.
Knop uitlezen met Debounce
Snel Starten
- Maak een Python scriptbestand aan met de naam button_debounce.py en voeg de volgende code toe:
- Sla het bestand op en voer het script uit met het volgende commando in de terminal:
- Druk de knop in en houd deze een paar seconden ingedrukt en laat los.
- Bekijk het resultaat in de terminal.
Zoals u ziet, heeft u de knop slechts één keer ingedrukt en losgelaten. De Raspberry Pi registreert dit als een enkele druk en loslating, waardoor onnodige ruis wordt geëlimineerd.
Raspberry Pi Knop Debounce voor Meerdere Knoppen
Het volgende schema toont de bedrading voor de genoemde code:

This image is created using Fritzing. Click to enlarge image
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.
Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap het debounce principe te begrijpen en toe te passen met de Raspberry Pi.