Arduino - Keypad
De keypad wordt veel gebruikt in verschillende apparaten zoals deursloten, pinautomaten, rekenmachines...
In deze handleiding leert u:
- Hoe u een keypad 3x4 en keypad 4x4 gebruikt met Arduino.
- Hoe u waarden leest van keypad 3x4 en keypad 4x4 met Arduino.
- Hoe u het wachtwoord controleert dat is ingevoerd via het keypad.
Hardware benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de Keypad

De keypad is een set knoppen die zijn gerangschikt in rijen en kolommen (ook wel matrix genoemd). Elke knop wordt een key genoemd.
Er bestaan verschillende types keypad. Twee populaire types voor doe-het-zelf projecten zijn keypad 3x4 (12 toetsen) en keypad 4x4 (16 toetsen).
Pinout
De pins van het keypad zijn verdeeld in twee groepen: rij (row) en kolom (column).
Een keypad 3x4 heeft 7 pins: 4 rij-pins (R1, R2, R3, R4) en 3 kolom-pins (C1, C2, C3).
Een keypad 4x4 heeft 8 pins: 4 rij-pins (R1, R2, R3, R4) en 4 kolom-pins (C1, C2, C3, C4).

Hoe het werkt
Het detecteren van een druk op een toets heet het scannen van het keypad.
Het wordt “scannen” genoemd omdat het toets voor toets controleert.
De rij-pins zijn verbonden met de output-pinnen van de Arduino.
De kolom-pins zijn verbonden met de input-pinnen van de Arduino (INPUT_PULLUP; in deze toestand is de waarde van de input-pin HIGH als er geen toets wordt ingedrukt).
Voor elke rij:
- Worden alle rij-pins op HIGH gezet.
- Wordt alleen de huidige rij-pin op LOW gezet.
- Wordt de status van elke kolom gelezen.
- Als een kolom-pin HIGH is ⇒ toets bij (rij, kolom) is NIET ingedrukt.
- Als een kolom-pin LOW is ⇒ toets bij (rij, kolom) is ingedrukt.
- Wordt het bovenstaande proces herhaald voor de volgende rij-pins.
※ Notiz:
Bovenstaande is één van de methodes om het keypad te scannen. We kunnen alle HIGH en LOW ook omkeren om het keypad te scannen.
⇒ Zoals bekend heeft iedere onafhankelijke knop één Arduino-pin en GND nodig. Laten we keypad 4x4 als voorbeeld nemen. Als we elke toets als een afzonderlijke knop zouden gebruiken, zijn daarvoor 16 Arduino-pinnen nodig plus GND. Door toetsen in een matrix te rangschikken, gebruiken we slechts 8 Arduino-pinnen, waardoor we Arduino-pinnen besparen. Kortom, het antwoord is: om Arduino-pinnen te besparen.
Aansluitschema

This image is created using Fritzing. Click to enlarge image
Hoe programmeer je voor keypad
Dankzij de Keypad library is het gebruik van een keypad met Arduino zeer eenvoudig, ongeacht of u begrijpt hoe het keypad werkt of niet.
Arduino Code
Keypad 3x4
Keypad 4x4
Snel aan de slag
- Navigeer naar het Libraries icoon in de linker zijbalk van de Arduino IDE.
- Zoek naar “keypad” en vind de keypad library van Mark Stanley en Alexander Brevig.
- Klik op de Install knop om de keypad library te installeren.

- Kopieer bovenstaande code en open deze met de Arduino IDE.
- Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te uploaden.
- Open de Seriële Monitor.
- Druk op enkele toetsen van het keypad.
- Bekijk het resultaat in de Seriële Monitor.
Keypad en Wachtwoord
Een populaire toepassing van een keypad is het invoeren van een wachtwoord. In deze toepassing specificeren we twee speciale toetsen:
- Een toets om het invoeren van het wachtwoord te starten / opnieuw te starten. Bijvoorbeeld de toets "*".
- Een toets om het invoeren van het wachtwoord te beëindigen. Bijvoorbeeld de toets "#".
Het wachtwoord is een tekenreeks met de overige toetsen, behalve de twee geselecteerde speciale toetsen.
Wanneer een toets wordt ingedrukt:
- Als de toets NIET "*" of "#" is, wordt de toets toegevoegd aan de door de gebruiker ingevoerde wachtwoordtekenreeks.
- Als de toets "#" is, wordt de door de gebruiker ingevoerde tekenreeks vergeleken met het wachtwoord om te bepalen of het wachtwoord correct is, en wordt daarna de ingevoerde wachtwoordtekenreeks gewist.
- Als de toets "*" is, wordt de door de gebruiker ingevoerde wachtwoordtekenreeks gewist.
Keypad - Wachtwoord Code
- Voer bovenstaande code uit.
- Open de Seriële Monitor.
- Druk op de toetsen "123456" en vervolgens op "#".
- Druk op de toetsen "1234" en vervolgens op "#".
- Bekijk het resultaat in de Seriële Monitor.
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.
Aanvullende kennis
Daag uzelf uit
- Toon de ingedrukte toets van het keypad op een LCD. Tip: Zie Arduino - LCD
- Maak een deurslot met wachtwoordbeveiliging met behulp van het keypad.