GPIO-pinnen input gebruiken in Raspberry Pi projects in Python

Marco den Teuling
0

Je kunt de GPIO-pinnen input in Raspberry Pi projecten gebruiken als een digitale ingang (aan/uit). Zo gebruik je de pinnen bijvoorbeeld als input om de status van een knop of schakelaar uit te lezen.

Lees hoe je de GPIO-pinnen input gebruikt in je eigen projecten. Lees ook het voorbeeld van een drukknop en waarom dit bij specifieke pinnen anders werkt.

GPIO-pinnen input gebruiken

Alle GPIO-schakelpinnen kunnen ook als digi­tale ingangen worden gebruikt. Je kunt daarbij vaststellen of een pin op potentiaal high (3,3 volt) of potentiaal low (0 volt, massa) staat.

gpio-pinnen input in Python workshop

Voorbeeld GPIO-pin als input

Met de volgende regels initialiseer je pin 5 als ingang:

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(5, GPIO.IN)

Vervolgens kun je de spanning opvragen:

while True:

if GPIO.input(5):

print(“Pin 5: High”)

else:

print(“Pin 5: Low”)

break

Speciale functie van pin 5

Als je een drukknop verbindt met pin 5 en pin 6 (massa), dan is pin 5 normaal high. Hij wordt low als je de knop ingedrukt houdt – en daarmee de lus eindigt.

Toegegeven, die regels zijn een inbreuk op de eerder gemaakte afspraak om een pin van een bussysteem niet te verspillen aan eenvoudige schakeltaken.

Pin 5 hoort bij de tweede I2C-bus van de Pi. Maar hij heeft nog een speciale functie, een knop die daarop is aangesloten start de Pi opnieuw op als hij eerder uitgeschakeld is.

Om ervoor te zorgen dat dit ook werkt als de Raspberry Pi uitgeschakeld is, werd in de fabriek een zogenaamde pull-up-weerstand aangesloten op pin 5 en verbonden met VCC.

Die pull-up-weerstand zorgt ervoor dat pin 5 normaal een high-potentiaal heeft. Alleen wanneer je de pin met een knop kortsluit naar massa, detecteert de Pi low – die ingang werkt met de active-low-logica.

Een pull-up-weerstand van 1,8 kOhm op pinnen 3 en 5 voorkomt dat er te veel stroom loopt tijdens het kortsluiten en dat de Pi beschadigd raakt.

Dus als je één knop wilt hebben om je Pi mee op te starten en af te sluiten, dan is pin 5 de juiste, ondanks zijn speciale functie. Voor het afsluiten hoef je Python in plaats van break alleen het Linux-commando shutdown -h now te laten uitvoeren.

Andere GPIO-pinnen als input

Bij andere pinnen zijn er geen hard-­wired weerstanden, maar schakelbare. Daar kun je bij het initialiseren van de pin aan­geven of er een weerstand nodig is en of die moet worden geschakeld als pull-up-weerstand naar VCC of als pull-down-weerstand naar massa.

De volgende regel activeert pin 16 als ingang en schakelt een pull-up-weerstand naar VCC, net zoals die voor pin 5 gebruikt wordt:

GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)

In onderstaand schema zie je een overzicht van de GPIO-pinnen.

Meer doen met de Raspberry Pi GPIO-pinnen

De Raspberry Pi dankt zijn succes in de hobbywereld aan zijn GPIO-aansluitingen. Met de juiste Python-bibliotheek en onze instructies lukken zelfs complexe taken.

In de inleiding Raspberry Pi GPIO pinnen: een overzicht van de aansluitingen wordt de lay-out van de GPIO-pinnen beschreven.

In deze serie komen de volgende onderwerpen aan bod:

Meer projecten voor de Raspberry Pi vind je bij Raspberry Pi projects

(Deze informatie is afkomstig uit het artikel in c’t 4/2022, pagina 134, van Mirko Dölle en Marco den Teuling)

Meer praktische instructies voor Windows: c't 05/2024

Meer over

Zelfbouw

Deel dit artikel

Marco den Teuling
Marco den TeulingHad als eerste eigen computer ooit een 16-bit systeem, waar van de 48 kilobyte toch echt niet ‘genoeg voor iedereen’ was. Sleutelt graag aan pc’s, van de hardware tot het uitpluizen van de BIOS-instellingen. Vindt ‘Software as a Service’ een onbedoeld ironische naamgeving.

Lees ook

Windows Subsystem for Linux installeren met commandline

Tijdens de ontwikkeling varieerden de tips om Windows Subsystem for Linux (2) te installeren. Nu is de commandline de handigste manier. We beschrijven...

Windows Subsystem for Linux – een kijkje in de virtuele machine

De Linux-omgevingen in Windows Subsystem for Linux (WSL), zijn anders dan met een gewone distributie zoals die op pc of een virtuele machine. Met enke...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er