Nota
Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto tecnico esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e giveaway: Partecipa a giveaway e promozioni durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
1.1.2 LED RGB
Introduzione
In questo progetto, controlleremo un LED RGB per farlo lampeggiare in vari colori.
Componenti Necessari
Per questo progetto, avremo bisogno dei seguenti componenti.
È decisamente conveniente acquistare un kit completo, ecco il link:
Nome |
COMPONENTI NEL KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK D’ACQUISTO |
|---|---|
Schema Elettrico
Dopo aver collegato i pin di R, G e B a una resistenza limitatrice di corrente, collegali rispettivamente a GPIO17, GPIO18 e GPIO27. Il pin più lungo (GND) del LED si collega al GND del Raspberry Pi. Quando ai tre pin vengono assegnati diversi valori PWM, il LED RGB visualizzerà colori diversi.
T-Board Name |
physical |
BCM |
GPIO17 |
Pin 11 |
17 |
GPIO18 |
Pin 12 |
18 |
GPIO27 |
Pin 13 |
27 |
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Apri il file di codice.
cd ~/raphael-kit/python-pi5
Passo 3: Esegui.
sudo python3 1.1.2_rgbLed_zero.py
Dopo l’esecuzione del codice, vedrai che il LED RGB visualizza rosso, verde, blu, giallo, rosa e ciano.
Avvertimento
Se viene visualizzato l’errore RuntimeError: Cannot determine SOC peripheral base address, fare riferimento a If gpiozero doesn’t work..
Code
Nota
Puoi Modificare/Reset/Copy/Esegui/Ferma il codice qui sotto. Ma prima, devi andare nella directory del codice come raphael-kit/python-pi5. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.
#!/usr/bin/env python3
from gpiozero import RGBLED
from time import sleep
# Definisci un elenco di colori per il LED RGB in formato RGB (Rosso, Verde, Blu).
# Ogni componente del colore varia da 0 (spento) a 1 (massima intensità).
COLORS = [(1, 0, 0), (0, 1, 0), (0, 0, 1), (1, 1, 0), (1, 0, 1), (0, 1, 1)]
# Inizializza un LED RGB. Collega il componente rosso a GPIO 17, il verde a GPIO 18 e il blu a GPIO 27.
rgb_led = RGBLED(red=17, green=18, blue=27)
try:
# Cicla continuamente attraverso i colori definiti.
while True:
for color in COLORS:
# Imposta il LED RGB sul colore corrente.
rgb_led.color = color
# Visualizza il colore corrente sulla console.
print(f"Color set to: {color}")
# Attendi 1 secondo prima di passare al colore successivo.
sleep(1)
except KeyboardInterrupt:
# Gestisci un'interruzione da tastiera (Ctrl+C) per uscire dal ciclo in modo sicuro.
# La pulizia dei GPIO verrà gestita automaticamente da GPIO Zero alla fine dello script.
pass
Spiegazione del Codice
Questo importa la classe
RGBLEDdalla libreriagpiozeroper controllare un LED RGB, e la libreriatimeper implementare dei ritardi nel codice.#!/usr/bin/env python3 from gpiozero import RGBLED from time import sleep # Definisci un elenco di colori per il LED RGB in formato RGB (Rosso, Verde, Blu). # Ogni componente del colore varia da 0 (spento) a 1 (massima intensità).
L’elenco
COLORScontiene tuple che rappresentano diversi colori in formato RGB. Assegnando diversi valori di Pulse Width Modulation (PWM) ai pin R, G e B attraverso l’attributorgb_led.color, il LED può produrre una varietà di colori. I valori PWM vanno da 0 a 1, dove 0 rappresenta nessuna intensità (spento) e 1 rappresenta la massima intensità per ciascun componente del colore.Ad esempio, impostare
rgb_led.color = (1, 0, 0)accende il LED in rosso, poiché imposta la massima intensità per il componente rosso mantenendo spenti verde e blu. Allo stesso modo, variando le combinazioni di questi valori si ottengono diversi colori. Questa tecnica di miscelazione dei colori attraverso PWM permette la creazione di una vasta gamma di colori sul LED RGB.COLORS = [(1, 0, 0), (0, 1, 0), (0, 0, 1), (1, 1, 0), (1, 0, 1), (0, 1, 1)]
Un LED RGB è inizializzato con i suoi componenti rosso, verde e blu collegati rispettivamente ai pin GPIO 17, 18 e 27.
# Inizializza un LED RGB. Collega il componente rosso a GPIO 17, il verde a GPIO 18 e il blu a GPIO 27. rgb_led = RGBLED(red=17, green=18, blue=27)
Il ciclo
while True:cicla continuamente attraverso i colori definiti inCOLORS. Per ogni colore,rgb_led.color = colorimposta il LED su quel colore, esleep(1)si interrompe per 1 secondo.try: # Cicla continuamente attraverso i colori definiti. while True: for color in COLORS: # Imposta il LED RGB sul colore corrente. rgb_led.color = color # Visualizza il colore corrente sulla console. print(f"Color set to: {color}") # Attendi 1 secondo prima di passare al colore successivo. sleep(1)
Questa sezione gestisce in modo sicuro una
interruzione da tastiera(come premere Ctrl+C). Il comandopassviene utilizzato come segnaposto per indicare che non è intrapresa alcuna azione specifica in caso di interruzione, poiché GPIO Zero gestisce automaticamente la pulizia dei GPIO.except KeyboardInterrupt: # Gestisci un'interruzione da tastiera (Ctrl+C) per uscire dal ciclo in modo sicuro. # La pulizia dei GPIO verrà gestita automaticamente da GPIO Zero alla fine dello script. pass