Nota
Ciao, benvenuto nella Community di appassionati di Raspberry Pi, Arduino e ESP32 di SunFounder su Facebook! Approfondisci il tuo viaggio con Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime.
Sconti speciali: Godi di sconti esclusivi sui nostri prodotti più recenti.
Promozioni e concorsi festivi: Partecipa a concorsi e promozioni durante le festività.
👉 Pronto a esplorare e creare con noi? Clicca su [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
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
OGGETTI IN QUESTO KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
Schema elettrico
Dopo aver collegato i pin di R, G e B a una resistenza di limitazione della corrente, collegali rispettivamente a GPIO17, GPIO18 e GPIO27. Il pin più lungo (GND) del LED si collega al GND del Raspberry Pi. Quando i tre pin ricevono valori PWM diversi, il LED RGB visualizzerà colori differenti.
Procedure sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Vai alla cartella del codice.
cd ~/raphael-kit/nodejs/
Passo 3: Esegui il codice.
sudo node rgb_led.js
Dopo l’esecuzione del codice, vedrai che il LED RGB visualizza rosso, verde, blu, giallo, rosa e ciano.
Codice
const Gpio = require('pigpio').Gpio;
const ledred = new Gpio(17, { mode: Gpio.OUTPUT });
const ledgreen = new Gpio(18, { mode: Gpio.OUTPUT });
const ledblue = new Gpio(27, { mode: Gpio.OUTPUT });
function colorset(r, g, b) {
ledred.pwmWrite(r);
ledgreen.pwmWrite(g);
ledblue.pwmWrite(b);
}
var color_index = -1;
setInterval(() => {
color_index += 1;
switch (color_index) {
case 0:
colorset(0xff, 0x00, 0xFF);
break;
case 1:
colorset(0x00, 0xff, 0x00);
break;
case 2:
colorset(0x00, 0x00, 0xff);
break;
case 3:
colorset(0xff, 0xff, 0x00);
break;
case 4:
colorset(0xff, 0x00, 0xff);
break;
case 5:
colorset(0xc0, 0xff, 0x3e);
break;
default:
color_index=-1;
}
}, 500);
Spiegazione del codice
const ledred = new Gpio(17,{mode: Gpio.OUTPUT});
const ledgreen = new Gpio(18,{mode: Gpio.OUTPUT});
const ledblue = new Gpio(27,{mode: Gpio.OUTPUT});
Inizializza i pin 17, 18 e 27 in modalità output, e assegnali rispettivamente alle costanti ledred, ledgreen e ledblue.
function colorset(r,g,b){
ledred.pwmWrite(r);
ledgreen.pwmWrite(g);
ledblue.pwmWrite(b);
}
Implementa una funzione colorset(r,g,b), utilizzata per scrivere valori di impulso sui pin 17, 18, 27. La libreria Gpio incapsula la funzione pwmWrite() per scrivere valori di impulso sui pin, con valori compresi tra 0x00 e 0xff. Puoi quindi scrivere valori RGB sul LED RGB tramite la funzione colorset(r,g,b), in modo da farlo visualizzare vari colori.
Nota
Per domande sull’RGB, fai riferimento al sito web: https://www.rapidtables.com/web/color/RGB_Color.html
var color_index = -1;
setInterval(() => {
color_index += 1;
switch (color_index) {
case 0:
colorset(0xff, 0x00, 0xFF);
break;
case 1:
colorset(0x00, 0xff, 0x00);
break;
case 2:
colorset(0x00, 0x00, 0xff);
break;
case 3:
colorset(0xff, 0xff, 0x00);
break;
case 4:
colorset(0xff, 0x00, 0xff);
break;
case 5:
colorset(0xc0, 0xff, 0x3e);
break;
default:
color_index=-1;
}
}, 500);
Il LED RGB è controllato da colorset() che viene eseguito ogni 500ms.
Un’istruzione switch case viene utilizzata qui per selezionare il colore emesso dai
LED RGB. Poiché color_index viene incrementato di uno a ogni ciclo, il colore di
questo LED RGB cambierà in sequenza.
Immagine del fenomeno