Om een LED te laten knipperen, hebben we wél programmacode nodig. Net zoals bij de Arduino, zullen we een pin moeten kiezen die we kunnen aansturen: wel of geen spanning op zetten, zodat onze LED kan knipperen.
Kies dus een een input-/outputpin (bv. pin 7) om de LED op aan te sluiten en een ground-pin (bv. pin 6).
Om een LED te laten knipperen zal je 2 libraries moeten importeren:
RPi.GPIO om pinnen als input of output te definiëren;
time om even te kunnen pauzeren in de code.
Een voorbeeldoplossing wordt hieronder gegeven.
import RPi.GPIO as GPIO #library nodig om pinnen in te stellen
import time #library nodig om even te wachten
LEDPIN = 7 #pin 26 gebruiken om LED op aan te sluiten
GPIO.setmode(GPIO.BCM) #nodig om nummering van de pinnen te gebruiken
GPIO.setup(LEDPIN, GPIO.OUT) #ledpin als output instellen
while True: #blijven herhalen
GPIO.output(LEDPIN, GPIO.HIGH) #LED aan
time.sleep(5) #5 seconden wachten
GPIO.output(LEDPIN, GPIO.LOW) #LED uit
Om een knop te gebruiken om een LED al dan niet te laten branden, moeten we op een drukknop voorzien van een constante spanning, waarbij we de output van de knop zullen gebruiken om een LED al dan niet te laten branden.
Knop
We moeten de knop voorzien van een constante spanning, dus sluiten we deze aan op een 3.3V pin.
De andere kant van de knop moeten we op een input pin aansluiten.
LED
De LED moeten we kunnen aansturen, namelijk voorzien van spanning of niet, afhankelijk van de status van de knop. We sluiten de LED dus aan op een output pin en via een weerstand naar de ground.
Hieronder een voorbeeld oplossing.
import RPi.GPIO as GPIO #library nodig om pinnen in te stellen
import time #library nodig om even te wachten
GPIO.setmode(GPIO.BCM) #nummering van pinnen te gebruiken
BUTTON_PIN = 17 #pin 17 gebruiken om knop aan te sluiten
LED_PIN = 7 #pin 18 gebruiken om LED op aan te sluiten
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) #button pin als input, pull down
GPIO.setup(LED_PIN, GPIO.OUT) #led pin als output
while True: #Blijven herhalen
statusKnop = GPIO.input(BUTTON_PIN) #status opslaan van knop
if statusKnop == GPIO.HIGH: #als knop ingedrukt, LED aan
print("Knop ingedrukt.") #toon op het scherm dat het ingedrukt is
GPIO.output(LED_PIN, GPIO.HIGH) #LED aan
elif statusKnop == GPIO.LOW: #als knop niet ingedrukt, LED uit
print("Knop niet ingedrukt.") #toon op het scherm dat niet ingedrukt is
GPIO.output(LED_PIN, GPIO.LOW) #LED uit
time.sleep(2) #even wachten