Vediamo in questo articolo la gestione di un led RGB WS2812B con un modulo ESP32 Devkit V1.
Questo LED ha un package 5050 al cui interno è inserito un chip di controllo.
Indice
Il led WS2812B
I led WS2812B sono l’evoluzione della precedente versione WS2812 che ha comportato la diminuzione dei pin del led.
- Sorgente luminosa: 5050 RGB SMD
- Materiale : substrato di alluminio
- Modelli IC: WS2811
- Livelli di colo: 256
- Angolo di luce: 180 °
- Tensione di funzionamento standard: DC 5 v
- Potenza: 0,3 W + / – 0,01%
- Le dimensioni della scheda FPCB: larghezza: 10 mm, spessore: 3 mm
Il protocollo di trasferimento dati per la gestione dei led utilizza una modalità di comunicazione NZR singola. I vari led possono essere messi in cascata attraverso la porta DO.
Questi tipo di led sono anche chiamati NeoPixel e possono trovarsi sia in forma di matrici che in forma di anelli.
Maggiori informazioni le trovate in questo articolo Led WS2812B RGB a controllo digitale
Componenti necessari
Per questo test sono necessari il led RGB W2812B, il modulo ESP32 Devkit V1 e i cavi di collegamento.
Modulo ESP32 Devkit V1 | Led RGB WS2812B |
Cavi di collegamento F/F |
Schema di collegamento
Il collegamento tra il Modulo ESP32 Devkit V1 e il Led RGB WS2812B, prevede solo tre collegamenti, i due di alimentazione : 3.3V, GND e quello dei dati D15.
Libreria di gestione
Per la gestione del led occorre istallare la libreria NeoPixel realizzata dalla ditta Adafruit .
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 “neopixel” quando apparirà basterà premere il tasto Installa,
Al momento della scrittura dell’articolo è disponibile la versione 1.8.0. La scritta “INSTALLED” segnalerà l’avvenuta installazione della libreria.
Per utilizzarla nei vostri Sketch, occorrerà utilizzare il comando #include <Adafruit_NeoPixel.h>
Sketch di prova
Sotto è riportato il semplice Sketch di prova che permetterà di accedere in sequenza i tre led primari presenti nel led.
In questo caso si è definito il pin 15 del Modulo ESP32 Devkit V1 per il collegamento della linea dati del led
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 | #include <Adafruit_NeoPixel.h> #define PIN 15 // Quando configuriamo la libreria NeoPixel, gli diciamo quanti pixel e quale pin usare per inviare segnali. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800); void setup() { pixels.begin(); // Si inizializza la libreria NeoPixel. } void loop() { pixels.setPixelColor(0, pixels.Color(255, 0, 0)); //Colore rosso pixels.show(); delay(1000); pixels.setPixelColor(0, pixels.Color(0, 255, 0)); //Colore verde pixels.show(); delay(1000); pixels.setPixelColor(0, pixels.Color(0, 0, 255)); //Colore blu pixels.show(); delay(1000); } |
Shield per ESP32 DevKIT V1
Il led led RGB WS2812B è anche montato sullo shield per ESP32 DevKIT V1, lo shied permette di testare vari dispositivi come: un led , un fotoresistore, un pulsante.
Sono presenti dei connettori a cui collegare: un display OLED, svariati sensori I2C, e altri a 3 PIN alimentati sia a 3,3 che 5V.
Altri articoli utili
- Modulo ESP32 DevKIT V1 con WiFi e Bluetooth BLE
- Modulo ESP32 DevKIT V1 – Installazione nell’IDE
- Display TFT 1.3″ 240×240 – ST7789
- Lettura Sensore BME680
- Shield per ESP32 DevKIT V1