Hoe laat je twee LED's op de Raspberry Pi afwisselend knipperen?
Je kunt de elektronische componenten ook zonder T-cobbler op het breadboard aansluiten. In dit geval heb je echter een verbindingsdraad nodig van het type female - male voor de verbinding met de J6 connectorstrip van de Raspberry Pi, d.w.z. een bus voor de Raspberry Pi en een stekker voor het breadboard.
De programmacode (afwisselend knipperende LED op de Raspberry Pi)
# Vanaf hier kan de code direct in de Python software worden gekopieerd.
# Zwart, gekleurd = code en grijs = uitleg
#We beginnen met het importeren van de programmamodules
importeer RPI.GPIO als GPIO
importeer tijd
GPIO.setmode(GPIO.BCM) #We stellen de modus in op BCM
GPIO.setup(23,GPIO.OUT) #Pin 23 is een uitgang.
GPIO.setup(24,GPIO.OUT) #Pin 24 is een uitgang.
# De lus begint hier
proberen:
while True: #While loop zodat het programma continu draait
GPIO.output(23,GPIO.HIGH) #Start de LED op pin 23.
GPIO.output(24,GPIO.LOW) # Schakelt de LED op pin 24 uit.
time.sleep(1) # Wacht 1 seconde
GPIO.output(23,GPIO.LOW) # Schakelt de LED op pin 23 uit.
GPIO.output(24,GPIO.HIGH) # Schakelt de LED op pin 24 in.
time.sleep(1)
# Hier springt het programma aan het einde naar het begin van de lus. Dus..
# ...zet de LED aan op pin 23.
# ... enz... enz... enz..
except KeyboardInterrupt: # Met CTRL+C onderbreken we het programma
print ("Finished") # Schrijf "Finished" in het commandoregelvenster
GPIO.cleanup() # Beëindig het programma
In voorbeeld nr. 01 Knipperende LED hadden we de oneindige lus gerealiseerd met while True en inspringing van de volgende coderegels. Als je deze oneindige lus hebt afgebroken met de toetscombinatie Ctrl-C, zul je gemerkt hebben dat je ten eerste een foutmelding krijgt en ten tweede de LED kan blijven branden. Om deze twee ongewenste effecten te voorkomen, zijn er een paar regels code toegevoegd aan dit voorbeeld. De regel try: is ingevoegd vóór de while true-lus. De dubbele punt leidt tot het inspringen van de hele lus. Als er een fout optreedt in deze lus terwijl het programma draait, is er geen foutmelding, maar wordt het programma voortgezet bij except KeyboardInterrupt:. Met het print-commando wordt het einde van het programma afgedrukt in de Python-shell (onderste venster bij Thonny), met GPIO.cleanup() worden de GPIO's (dus onze LED's) uitgeschakeld en vrijgegeven voor andere doeleinden.
Voorbeeld: Verkeerslichtcyclus op de Raspberry Pi
Hier is een voorgestelde oplossing voor een verkeerslichtcyclus met behulp van de module gpiozero: