Een numeriek matrix keypad 3×4 aansluiten

Een keypad gebaseerd op cijfers kun je gebruiken om de Raspberry Pi verschillende acties uit te voeren. Je kunt bijvoorbeeld na het indrukken van de combinatie *99# een reboot forceren. In dit stappenplan sluiten we een numeriek keypad 3×4 aan op de Raspberry Pi en lezen we het indrukken van de toetsen uit met behulp van een Python script.

De methode die we hiervoor gebruiken is erg basic en we gebruiken per rij/kolom van het keypad één GPIO poort, wat natuurlijk niet erg efficient is. Een betere, maar zeker niet de eenvoudigste methode is gebruik te maken van een MCP23008 in combinatie met de I2C interface, waardoor er meer vrije GPIO’s beschikbaar blijven. Voor nu gaan we voor de eenvoudige methode en gebruiken we 7 GPIO’s.

Gebruikte componenten

3×4 Matrix 12 Key Membrane Switch Keypad
7x Dupont verbindingskabel (female/female)

Raspberry Pi 3
Raspbian Jessie (2016-05-27 kernel 4.4.13)

Aansluitschema

Het keypad kun je volgens onderstaand schema aansluiten op de GPIO interface van de Raspberry Pi. De pins van keypad zijn van links naar rechts met het keypad naar de voorzijde geplaatst.

Keypad pin RPI RPI pin
1 GPIO18 12
2 GPIO23 16
3 GPIO24 18
4 GPIO25 22
5 GPIO4 7
6 GPIO17 11
7 GPIO22 15

keypad 3x4 raspberry pi

Keypad 3×4 Python Script

Download met behulp van het wget commando het Python script om de toetsen op het keypad uit te kunnen lezen:

wget https://raspberrytips.nl/files/keypad.py

Start het Python script:

python keypad.py

Nadat het Python script is gestart kun je op de toetsen van het keypad drukken, in het scherm zal de bijbehorende waarde worden weergegeven.

De toets die op het keypad wordt ingedrukt wordt in het script opgeslagen in de variable digit na het uitvoeren van kp.getKey():

digit = kp.getKey()

Je kunt de variabele gebruiken om deze toe te voegen aan een nieuwe reeks en er daarna een controle op uitvoeren. In het voorbeeld script wordt alleen de waarde van de variabele digit via het print commando op het scherm weergegeven.

Plaats een reactie