Il led tipo WS2812B è un led RGB a controllo digitale prodotto dalla WorldSemi; utilizza un RGB SMD 5050, al cui interno è stato installato un minuscolo chip.
In questo chip è presente un regolatore di luminosità a corrente costante che assicura un colore uniforme anche con differenti tensioni di alimentazione e un’interfaccia di comando seriale a una sola linea.
Indice
Descrizione del Led WS2812B
La presenza del chip interno, permette ai led di essere programmati per emettere diversi colori tramite un protocollo ad 1 bit. Per il pilotaggio sono utilizzati solo 3 pin, due per l’alimentazione (+5V e GND) e uno per la programmazione.
Con questi led è possibile accendere con differenti colori, delle strisce di led formate da uno sino a 500 led contemporaneamente (frequenza di trasmissione dei dati 400 kHz). L’unico limite sono le resistenze dei fili che portano l’alimentazione e la velocità con cui vogliamo cambiare i colori dei led.
I led WS2812B sono l’evoluzione della precedente versione WS2812 che ha comportato la diminuzione dei pin del led
- Sorgente luminosa: 5050 RGB SMD (datasheet)
- Materiale : substrato di alluminio
- Livelli di colore: 256
- Angolo di luce: 180 °
- Emissione di colori chiari: bianco, rosso, giallo, blu, verde, ecc.
- Tensione di funzionamento standard: DC 5 V
- Potenza: 0,3 W + / – 0,01%
Parametri caratteristici dell’IC RGB
Colore emesso | Lunghezza d'onda (nm) | Intensità luminosa(mcd) | Tensione (V) |
---|---|---|---|
Rosso | 620-625 | 390-420 | 2.0-2.2 |
Verde | 522-525 | 660-720 | 3.0-3.4 |
Blu | 465-467 | 180-200 | 3.0-3.4 |
Modulo commerciale
Per facilitare l’utilizzo del led WS2812B sono disponibili in commercio dei piccoli PCB su cui sono montati oltre al led un condensatore ceramico e una resistenza; i singoli moduli possono essere utilizzati singolarmente oppure in gruppi.
Per collegare un modulo singolo occorre un pinstrip maschio da 3 pin
Occorrerà ora eseguire la saldatura dei pin ai pad presenti sul PCB
Libreria di gestione tramite Arduino
Per la gestione del led sono disponibili due librerie, una è quella realizzata dalla Adafruit che è chiamata Adafruit_NeoPixel; la seconda scritta da Daniel Garcia dal nome FastLED.
Libreria FastLED
Questa libreria ha la capacità di pilotare, al momento, 24 tipi diversi di led RGB, sia del tipo pilotabile con una sola linea dati, come nel nostro caso, sia altri led pilotabili tramite protocollo a SPI con due line : data, clock.
Per poterla utilizzare si utilizzerà la funzione Gestione librerie dell’IDE , vedere anche articolo Arduino – Tutorial, come installare una libreria
A questo punto basterà inserire nel campo ricerca “fastled” quando apparirà basterà premere il tasto Installa,
Ora andando sotto la sezione Esempi, potrete trovare sotto la cartella “Esempi da librerie personalizzate” gli esempi inerenti la libreria FastLED
Libreria NeoPixel
Per istallare la libreria NeoPixel realizzata dalla ditta Adafruit.
si utilizza le stessa procedura vista nel precedente capitolo, inserendo nel campo ricerca “neopixel” , quando apparirà basterà premere il tasto Installa,
La scritta “INSTALLED” segnalerà l’avvenuta installazione della libreria.
Per utilizzarla nei vostri Sketch, occorrerà utilizzare il comando #include <Adafruit_NeoPixel.h>
Preparazione dei moduli per la prova
Per testare il la libreria si è utilizzata una serie di tre moduli led, questo per simulare un semaforo stradale.
Per la realizzazione sarà necessario una serie di 3 led WS2812B e un pinstrip s 3pin
Si eseguiranno poi le saldature per collegare i pin di alimentazione +5V e GND e collegando i pin Din con i pin Dout
Circuito di prova
Per il test il modulo realizzato è stato montato sul Multi test shield, compatibile con le schede Arduino; in questo caso sul connettore JP4 il cui pin centrale è collegato al pin D17 (pin A3).
Sotto è riportato lo schema equivalente.
Sketch utilizzato
Lo sketch simula mediante i tre moduli WS2812, un semaforo. Per il test si è utilizzato il Multi test shield, in questo caso si è utilizzato il connettore JP4 il cui pin centrale è
collegato al pin D17 (pin A3). Il pin potrà comunque essere modificato prima del caricamento del programma.
Per il corretto funzionamento del programma occorrerà caricare la libreria “FastLED”
La programmazione accenderà in sequenza il led più esterno di colore rosso, il centrale in giallo e in verde quello più in basso. Sotto è riportato lo sketch.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#include <FastLED.h> #define NUM_LEDS 3 #define DATA_PIN 17 // Definisce l'array di led CRGB leds[NUM_LEDS]; void setup() { FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS); } void loop() { //Semaforo verde leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Green; FastLED.show(); delay(2000); //Semaforo giallo leds[0] = CRGB::Black; leds[1] = CRGB::Yellow; leds[2] = CRGB::Black; FastLED.show(); delay(2000); //Semaforo Rosso leds[0] = CRGB::Red; leds[1] = CRGB::Black; leds[2] = CRGB::Black; FastLED.show(); delay(2000); } |
Filmato di esempio
Esempi di utilizzo
Controllo con ESP32 – Desvkit v1
Gestione led tramite Modulo ESP32 Desvkit V1, vedere articolo Modulo ESP32 Devkit V1 – Led RGB WS2812B
Scheda controllo Robot Tumbller
Scheda di controllo Robot in kit proposto da Elegoo denominato Tumbller è un kit per la costruzione di un robot autobilanciante di nuova concezione che ha molteplici affascinanti funzioni
Piccolo ed economico transceiver Wi-Fi chiamato “ESP Witty ” è la soluzione perfetta per applicazioni di automazione domestica e IoT. In questo caso è utilizzato ancora il modello WS2812.