Controllare un LED RGB con un microcontrollore Raspberry Pi
Che cos'è un LED RGB?
Un LED RGB è la combinazione di tre LED di colori diversi in un unico alloggiamento. Il termine RGB si riferisce ai colori "rosso", "verde" e "blu". I rispettivi LED possono essere controllati con la modulazione di larghezza degli impulsi (PWM). Questo rende possibile una moltitudine di combinazioni di colori.
Un LED RGB ha quattro gambe, una per ogni colore e una comune per tutti e tre i colori. A seconda della versione, la più lunga delle quattro gambe è l'anodo comune (+) o il catodo (-). La singola gamba accanto a quella più lunga è il collegamento per il componente rosso. I componenti verde e blu sono controllati tramite le gambe sull'altro lato.
Il tipo di LED RGB, anodo comune o catodo comune, non è visibile dall'esterno. Fortunatamente, non è possibile danneggiare nulla a causa di tentativi ed errori. Il LED RGB non si illumina nella direzione di blocco. Importante: i tre LED implementati necessitano anche di resistenze in serie. Se vuoi fare un lavoro accademico, puoi calcolare le diverse resistenze in serie a partire dalle rispettive tensioni di flusso. Per semplicità, puoi anche utilizzare le stesse resistenze tra 100 e 330 Ω (Ohm).
Versione a: "Catodo comune" - La gamba più lunga del LED è "-" e le tre gambe più corte sono controllate dai GPIO con "+" (tensione).
Versione b) "Anodo comune": il LED più lungo è "+" e i tre più corti sono controllati con "-" (GND) sui GPIO.
Mescolando i colori è possibile creare molti altri colori. Ad esempio, controllando i colori "blu" e "verde" si ottiene il colore "turchese", il rosso e il verde producono il giallo, il rosso e il blu producono il magenta e tutti e tre i colori con quantità uguali producono il bianco.
Lo schema del circuito: LED RGB su Raspberry Pi
Il codice del programma: LED RGB su Raspberry Pi
Esempio di programma per un LED RGB con catodo comune:
da gpiozero importa RGBLED
da time import sleep
led = RGBLED(rosso=14, verde=15, blu=18)
durata = 2
# Aumenta lentamente l'intensità di tutti i colori (5sec)
per n in range(100):
led.blue = n/100
led.rosso = n/100
led.verde = n/100
sleep(0.05)
led.color =(0, 0, 0) # spento
sleep(durata)
led.red = 1 # rosso pieno
sleep(duration)
led.red = 0.5 # mezzo rosso
sleep(duration)
led.color =(1, 1, 0) # giallo
sleep(duration)
led.color =(0, 1, 0) # verde pieno
sleep(duration)
led.color =(0, 1, 1) # ciano
sleep(duration)
led.color =(0, 0, 1) # blu pieno
sleep(duration)
led.color =(1, 0, 1) # magenta
sleep(duration)
led.color =(1, 1, 1) # bianco
sleep(duration)
led.color =(0, 0, 0) # spento
sleep(duration)
Più avanti vedremo come utilizzare tre potenziometri per impostare i componenti del colore. Tuttavia, per questo abbiamo bisogno di un convertitore analogico-digitale esterno, perché il Raspberry Pi conosce solo i segnali digitali - HIGH o LOW.