Come si fa a far lampeggiare un LED su Raspberry Pi?
A differenza di Arduino, su Raspberry Pi non hai accesso ai LED integrati. Questi indicano solo l'alimentazione e l'accesso alla scheda µSD.
Per far lampeggiare un LED, è necessario un LED esterno con una resistenza in serie adeguata e dei cavi di collegamento. Il modo più sensato per realizzare il circuito è su una breadboard con un T-cobbler. Questo tipo di configurazione facilita anche gli esperimenti successivi con diversi LED, pulsanti e sensori. La programmazione avviene con il linguaggio di programmazione Python.
Lo schema del circuito (LED lampeggiante su Raspberry Pi)
Che cos'è un LED?
LED è l'acronimo di Light Emitting Diode (diodo a emissione luminosa). L'ultima parola indica le proprietà elettroniche. Un diodo è un semiconduttore che lascia passare la corrente solo in una direzione e la blocca nell'altra. Le due "gambe" sono chiamate anodo e catodo. Se guardi da vicino, puoi notare che le gambe sono di lunghezza diversa. La tensione positiva viene applicata alla gamba più lunga, l'anodo; la gamba più corta, il catodo, è collegata a terra tramite un resistore. Il resistore è necessario a causa di un'altra proprietà dei diodi. Innanzitutto, è necessaria una tensione minima affinché possa scorrere una corrente: Questa si chiama tensione di andata. A tensioni più elevate, il diodo diventa completamente conduttivo. Per questo motivo è necessario un resistore in serie per limitare la corrente, perché i pin del microcontrollore e anche del Raspberry Pi devono essere caricati con un massimo di 15-20 mA. Utilizziamo resistenze in serie con valori compresi tra 100 e 330 Ω (Ohm).
Il linguaggio di programmazione Python può essere esteso con moduli di programma, in modo simile al C/C++ con le librerie. Per il nostro LED lampeggiante, abbiamo bisogno di due di questi moduli: il primo, "time", per definire la durata del lampeggio. In secondo luogo, un modulo per accedere ai GPIO (General Purpose Input/Output).
Come si controlla un LED con un Raspberry Pi?
L'importazione dei moduli avviene all'inizio del programma Python; hai diverse opzioni per farlo. Esempi:
La riga seguente importa il modulo time:
import time
Quando si chiama il metodo sleep , il nome del modulo time deve essere preceduto da un punto:
time.sleep(1)
A differenza di delay(), dove l'intervallo di tempo è indicato come argomento in millisecondi, con time.sleep() i valori sono indicati in secondi, se necessario con un punto decimale.
importa RPi.GPIO come GPIO
Questo semplifica le chiamate ai metodi del programma, ad esempio
GPIO.setmode(GPIO.BCM)
Terzo esempio per un altro modulo per l'accesso a GPIO:
da gpiozero importa LED
Solo la classe LED viene importata dal modulo gpiozero. Con questo metodo di importazione, il nome del modulo non ha più il prefisso quando viene chiamato il metodo/funzione.
Programmi di esempio per controllare un LED con un microcontrollore Raspberry Pi
Primo esempio con il modulo RPi.GPIO:
importa RPi.GPIO come GPIO
importare tempo
GPIO.setmode(GPIO.BCM)# Nome del pin per il processore Broadcomm
GPIO.setup(26,GPIO.OUT) # GPIO26 (=pin 37) diventa un'uscita
while True:# Ciclo infinito, annulla con Ctrl-C
GPIO.output(26,1)# GPIO 26 viene portato in ALTO
time.sleep(1)
GPIO.output(26,0) # Il GPIO 26 viene commutato a BASSO
time.sleep(1)
Secondo esempio con il modulo gpiozero. Vengono importati solo LED e sleep.
da gpiozero importa LED
da time import sleep
redLED = LED(26)# redLED è istanziato sul GPIO 26
mentre True:
redLED.on() # redLED è acceso
sleep(1)
redLED.off() # redLED è spento
dormi(1)
Sfida: Estendi il circuito e il programma per un ciclo semaforico, ad esempio rosso(3s), rosso/giallo(1s), verde(3s), giallo(1s), riavvia con il rosso.
Soluzione suggerita vedi n. 02 L'indicatore alternato