Licht aan – hoe schakel je led met GPIO-pinnen in Python

Marco den Teuling
0

Met de GPIO-pinnen bibliotheek en een paar regels Python-code wordt de Raspberry Pi een universele schakelcentrale – in dit deel: LICHT AAN.


licht gpio-pinnen


Licht aan met GPIO-pinnen

In principe kun je een led aansluiten op elk van de 28 schakelbare GPIO-pinnen, maar sommige hebben extra functies zoals een klokgenerator of modulator of maken deel uit van een bussysteem zoals SPI of I2C.

Bij ‘Raspberry Pi als schakelcentrale’ verderop hebben we die speciale functies aangegeven en de GPIO-pinnen met kleuren ­gemarkeerd, zodat je eventuele speciale functies makkelijk kunt herkennen.


Ontvang gratis meer workshops over Raspberry Pi en Python!

Schrijf je in voor de nieuwsbrief:

Ontvang elke week het laatste IT-nieuws, de handigste tips en speciale aanbiedingen.


Groene GPIO-pinnen gebruiken

Om te voorkomen dat je een schakeling later moet aanpassen omdat je ook een bepaald bussysteem nodig hebt, kun je het beste een van de groene GPIO-­pinnen zonder speciale extra functie gebruiken voor de eenvoudige schakeltaken zoals een led. In de volgende voorbeelden is dat pin 37.

De volgende beslissing die moet worden genomen is welke schakellogica je wilt gebruiken. Je kunt kiezen tussen active-­high en active-low. Bij active-high levert de GPIO-schakelpin de voeding voor de led. Led en voorschakelweerstand worden dan geschakeld tussen pin 37 en massa.

  • Als de pin op hoog niveau, oftewel 3,3 volt, wordt geschakeld, gaat de led branden.
  • Bij active-low daarentegen zijn de led en de voorschakelweerstand met pin 1 of 17 verbonden en worden via die pinnen van spanning voorzien

Om de led te laten branden, moet je pin 37 op potentiaal low oftewel massa zetten. In het volgende voorbeeld hebben we gekozen voor active-high, dus sluit je de led plus weerstand aan tussen de pinnen 37 en 39 van de GPIO-poort.

Aansturen in Python

Voor de aansturing in Python volstaan enkele commando’s, die je rechtstreeks in de Python-interpreter kunt invoeren.

Start die als gebruiker pi met het commando python3 en vervolgens krijg je de Python-prompt, bestaande uit drie groter-dan-tekens.

Bij de eerste stap moet je de GPIO-bibliotheek van de Rasbperry Pi in je code inte­greren:

import RPi.GPIO as GPIO

Zoals beschreven in het kader ‘Raspberry Pi als schakelcentrale’ kun je het beste naar de pinnen verwijzen met hun pinnummer op het Pi-board. Dat stel je met het volgende commando in:

GPIO.setmode(GPIO.BOARD)

Pin 37 oftewel GPIO26 is geschikt voor het aansturen van een led en is dan ook een uitgang. Aangezien we besloten hebben active high te gebruiken en de led normaal niet mag oplichten, initialiseer je de pin met potentiaal low:

GPIO.setup(37, GPIO.OUT,
initial=GPIO.LOW)

Om de led aan te zetten, hoef je de pin alleen maar op potentiaal high te zetten:

GPIO.output(37, GPIO.HIGH)

Om hem uit te zetten, zet je de uitgang weer op low:

GPIO.output(37, GPIO.LOW)

Voordat je de Python-interpreter afsluit met Ctrl+D, moet je met

GPIO.cleanup()

nog ‘opruimen’ en de GPIO-aansluiting weer in zijn basistoestand terugzetten.


Raspberri Pi als schakelcentrale

Dankzij uitge­breide aanvullende bibliotheken ben je niet beperkt tot bijvoorbeeld het alleen maar ­laten knipperen van een led, maar kun je zelfs schakel­taken op andere computers uit­voeren in programma’s van derden, zoals OBS Studio. Dat verandert de Raspberry Pi in een universele netwerkafstandsbediening die je voor de perfecte presentatie individueel kunt aanpassen.

De Raspberry Pi dankt zijn succes in de hobbywereld aan zijn GPIO-aansluitingen. Je kunt er makkelijk een mini-lichtshow mee programmeren of een quiz organiseren en bij deelnemers een lichtje laten aangaan. Met de juiste Python-bibliotheek en onze instructies lukken zelfs complexe taken en bedient de Pi bij je volgende live-optreden de camera en microfoon.

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:

  • Licht aan (deze workshop)
  • Potentiaal van de pin
  • Toestand van een pin
  • Bouncetime
  • Event-lussen
  • Voetschakelaar
  • Asynchrone functies

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


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


 

Meer praktische instructies voor Raspberry Pi vind je in 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