Allereerst is het belangrijk om te weten dat python HOOFDLETTER gevoelig is. Dus als er een hoofdletter gebruikt moet worden, dan is dat een verschil met kleine letters.
Tweede belangrijke programmeerregel is dat python niet met {} werkt maar met TAB. Dus de aantal inspringtabs zijn de {} en bepaald de scope van je code (waar het bij hoort).
# 1. Dit is de startcode. Je geeft aan dat de GPIO-pennen gebruikt moeten worden.
# 2. Je importeert de optie tijd of wachten.
# 3. Dit is om het programma netjes af te sluiten. Dit is niet persé noodzakelijk. Denk aan
“tot ziens” in plaats van gewoon weglopen bij een gesprek .
import RPi.GPIO as GPIO
from time import sleep
import sys
# 4. Hier stel je in dat de Hat een Broadcast Board is. Als je een ander type Hat hebt, zou hier de fout kunnen ontstaan!!!!
Methode
Mode-opties
Opmerking
RPi.GPIO
GPIO.BCM, GPIO.BOARD
Oud, maar werkt op Pi 3/4/Zero
gpiozero
Alleen BCM
Simpelste keuze
lgpio
BCM
Nieuwe standaard voor Pi 5
libgpiod
BCM
Wordt standaard meegeleverd bij nieuwe OS
GPIO.setmode(GPIO.BCM)
#5. Hier geef je op dat op poort D5 een lamp aangesloten is.
#6. Nu geef je aan dat de parameter “teller” op nul gezet moet worden.
led=5
teller=0
#7. Hier geef je aan dat de pinnen op de Pi waar een led aan zitten, een uitput moeten geven. Dus stroom uit. Als dit een input moet zijn, verander je de setup met IN.
GPIO.setup(led, GPIO.OUT)
#8. Nu komen de commando’s. Let goed op de tabs, dit is erg belangrijk. Nu de onderstaande code in Mensentaal . Als dit waar is: de teller is kleiner dan 5. Laat de led 1 seconde branden, output(led,1). Wacht twee seconden. Zet de led uit output(led,0). Verhoog de teller met 1. Wacht 1 seconde.
Anders: Print de tekst “Ik heb 5x geknipperd. Wacht 3 seconden. Stop het programma.
while True:
if teller < 5:
GPIO.output(led,1)
sleep(2)
GPIO.output(led,0)
teller +=1
sleep(1)
else:
print("Ik heb 5x geknipperd")
sleep(3)
sys.exit()
Dit kan dus ook sneller geschreven worden door codes te combineren. Probeer dit te lezen:
while teller < 5:
GPIO.output(led,1)
sleep(2)
GPIO.output(led,0)
teller +=1
sleep(1):
print("Ik heb 5x geknipperd")
Sneller maar wat onduidelijker.
import RPi.GPIO as GPIO
from time import sleep
import sys
GPIO.setmode(GPIO.BCM)
led=5
teller=0
GPIO.setup(led, GPIO.OUT)
while True:
if teller < 5:
GPIO.output(led,1)
sleep(2)
GPIO.output(led,0)
teller +=1
sleep(1)
else:
print("Ik heb 5x geknipperd")
sleep(3)
sys.exit()
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
led=5
teller=0
GPIO.setup(led, GPIO.OUT)
while teller < 5:
GPIO.output(led,1)
sleep(2)
GPIO.output(led,0)
teller +=1
sleep(1):
print("Ik heb 5x geknipperd")