Come si fa a far lampeggiare alternativamente due LED su Raspberry Pi?
Puoi collegare i componenti elettronici sulla breadboard anche senza T-cobbler. In questo caso, però, hai bisogno di un cavallotto del tipo femmina-maschio per il collegamento alla striscia di connettori J6 del Raspberry Pi, cioè presa per il Raspberry Pi e spina per la breadboard.
Il codice del programma (LED lampeggiante in alternanza sul Raspberry Pi)
# Da qui il codice può essere copiato direttamente nel software Python.
# Nero, colorato = codice e grigio = spiegazioni
#Iniziamo con l'importare i moduli del programma
importa RPI.GPIO come GPIO
importare tempo
GPIO.setmode(GPIO.BCM) #Imposteremo la modalità su BCM
GPIO.setup(23,GPIO.OUT) #Il pin 23 è un'uscita.
GPIO.setup(24,GPIO.OUT) #Il pin 24 è un'uscita.
# Il ciclo inizia qui
try:
while True: #Ciclo While in modo che il programma venga eseguito continuamente
GPIO.output(23,GPIO.HIGH) # Accende il LED sul pin 23.
GPIO.output(24,GPIO.LOW) # Spegne il LED sul pin 24.
time.sleep(1) # Aspetta 1 secondo
GPIO.output(23,GPIO.LOW) # Spegne il LED sul pin 23.
GPIO.output(24,GPIO.HIGH) # Accende il LED sul pin 24.
time.sleep(1)
# Alla fine il programma salta all'inizio del ciclo. Quindi..
# ... accende il LED al pin 23.
# ... ecc... ecc... ecc..
except KeyboardInterrupt: # Con CTRL+C interrompiamo il programma
print ("Finito") # Scriviamo "Finito" nella finestra della shell
GPIO.cleanup() # Termina il programma
Nell'esempio n. 01 LED lampeggiante abbiamo realizzato il ciclo infinito con il while True e l'indentazione delle righe di codice successive. Se hai annullato questo ciclo infinito con la combinazione di tasti Ctrl-C, avrai notato che in primo luogo viene visualizzato un messaggio di errore e in secondo luogo il LED potrebbe continuare ad accendersi. Per evitare questi due effetti indesiderati, in questo esempio sono state aggiunte alcune righe di codice. La riga try: è stata inserita prima del ciclo while true. I due punti indicano l'indentazione dell'intero ciclo. Se si verifica un errore in questo ciclo durante l'esecuzione del programma, non viene visualizzato alcun messaggio di errore, ma il programma continua a eccezione di KeyboardInterrupt:. Con il comando print, la fine del programma viene stampata nella shell Python (finestra inferiore di Thonny), mentre con GPIO.cleanup(), i GPIO (cioè i nostri LED) vengono spenti e liberati per altri scopi.
Esempio: ciclo di semafori su Raspberry Pi
Ecco una soluzione proposta per un ciclo di semafori utilizzando il modulo gpiozero: