Tutorial ESP32 12/55 - Progetto WS2812 RGB Strip 4 con il kit di apprendimento IoT ESP32 di SunFounder
In questo tutorial, esploreremo come controllare una striscia LED WS2812 utilizzando il microcontrollore ESP32. Questo progetto ti consente di creare una varietà di colori e controllare ogni LED individualmente, offrendo un modo divertente e visivamente attraente per apprendere la programmazione e l'elettronica. Alla fine di questo tutorial, avrai un setup completamente funzionante in grado di cambiare colori e schemi in modo dinamico.
Utilizzando il microcontrollore ESP32 di SunFounder, che dispone di Wi-Fi e Bluetooth integrati, possiamo facilmente connettere e controllare la striscia LED RGB WS2812. La flessibilità di questa striscia LED consente applicazioni creative, sia per l'illuminazione decorativa che per progetti educativi. Per una migliore comprensione dei passaggi coinvolti, puoi fare riferimento al video (nel video alle 00:00).
Hardware Spiegato
I componenti principali di questo progetto includono il microcontrollore ESP32 e la striscia LED WS2812. L'ESP32 è un microcontrollore potente in grado di eseguire compiti simili a quelli di un Arduino, ma con opzioni di connettività aggiuntive. Ha un'ampia gamma di funzionalità che gli consentono di connettersi al cloud, permettendo il controllo remoto e la registrazione dei dati.
La striscia LED WS2812 è composta da LED RGB indirizzabili individualmente, il che significa che ogni LED può essere controllato per visualizzare colori diversi. La striscia funziona su un protocollo a un solo filo, permettendo a più LED di essere collegati insieme senza perdere la qualità del segnale. Ogni LED contiene un driver integrato che riceve il segnale in ingresso e lo amplifica per il prossimo LED nella catena.
Dettagli della scheda tecnica
| Produttore | Worldsemi |
|---|---|
| Numero di parte | WS2812 |
| Tensione logica/IO | 3.5-5.3 V |
| Tensione di alimentazione | 5 V |
| Corrente di uscita (per canale) | 20 mA max |
| Corrente di picco (per canale) | 60 mA max |
| Indicazioni sulla frequenza PWM | 400 Hz |
| soglie logiche di ingresso | 0,3 x VDDa 0,7 x VDD |
| Caduta di tensione / RDS(on)/ saturazione | 0,5 V max |
| Limiti termici | -25 a 80 °C |
| Pacchetto | 5050 |
| Note / varianti | Può essere collegato per strisce più lunghe. |
- Assicurati di fornire un'alimentazione adeguata (5 V) per evitare danni agli LED.
- Utilizza un condensatore (100 µF) tra i terminali dell'alimentazione per smorzare i picchi di tensione.
- Mantieni i cavi dei dati corti per ridurre il degrado del segnale.
- Fai attenzione alla temperatura del LED; assicurati di avere una corretta dissipazione del calore.
- Osserva la corretta polarità quando colleghi l'alimentazione e la massa.
- Utilizzare una resistenza di pull-up sulla linea dei dati se si utilizzano strisce lunghe.
Istruzioni di cablaggio

Per collegare il nastro LED WS2812 all'ESP32, inizia collegando l'alimentatore. Il filo +5V del nastro LED deve essere collegato al pin 5V sull'ESP32, e il filo di massa (GND) deve essere collegato a uno dei pin GND sull'ESP32.
Successivamente, collega il filo di ingresso dati dalla striscia LED al pin 14 dell'ESP32. Assicurati che le connessioni siano sicure per garantire una corretta trasmissione dei dati. Se stai utilizzando più strisce o distanze maggiori, prendi in considerazione l'uso di un level shifter per garantire l'integrità del segnale. Questa configurazione ti permetterà di controllare la striscia LED direttamente dall'ESP32.
Esempi di codice e guida passo passo
Il codice utilizza la libreria Adafruit NeoPixel per controllare la striscia LED WS2812. Inizia inizializzando la striscia LED e impostando il colore iniziale su nero. I principali identificatori nel codice includonoLED_PIN, che definisce il pin collegato alla linea dati del nastro LED, eNUM_LEDS, che specifica il numero di LED nella striscia.
#include // Include the Adafruit NeoPixel library
#define LED_PIN 14 // NeoPixel LED strip
#define NUM_LEDS 8 // Number of LEDs
Nella funzione di setup, il nastro viene inizializzato usandostrip.begin(), e il colore iniziale è impostato su nero constrip.show()Questo prepara la striscia per i cambiamenti di colore quando il programma è in esecuzione.
void setup() {
strip.begin(); // Initialize the NeoPixel strip
strip.show(); // Set initial color to black
}
Il ciclo principale del programma consiste in due cicli for. Il primo ciclo accende ogni LED uno alla volta impostandone il colore e aggiornando la striscia. Il secondo ciclo spegne ogni LED nella stessa maniera. Questo crea un'animazione luminosa semplice ma efficace.
void loop() {
// Turn on LEDs one by one
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 100, 45, 0); // Set the color of the i-th LED to red
strip.show(); // Update the LED strip with the new colors
delay(100); // Wait for 100 milliseconds
}
// Turn off LEDs one by one
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 0, 0, 0); // Set the color of the i-th LED to black (turn it off)
strip.show(); // Update the LED strip with the new colors
delay(100); // Wait for 100 milliseconds
}
}
Guarda il codice completo che si carica sotto l'articolo per maggiori dettagli su come implementare diversi effetti di colore e animazioni.
Dimostrazione / Cosa Aspettarsi
Una volta completato il cablaggio e caricato il codice, dovresti vedere i LED sulla striscia accendersi uno dopo l'altro in un colore specificato, seguiti dal loro spegnimento nella stessa sequenza. Questo crea un effetto di "luce in corsa". Se i LED non si accendono come previsto, ricontrolla le tue connessioni di cablaggio e assicurati che l'alimentazione sia adeguata. Inoltre, verifica che il pin corretto sia definito nel codice (nel video alle 12:30).
Timestamp del video
- 00:00 Inizio
- 1:40 Introduzione ai LED WS2812
- 7:25 Pagina di documentazione del progetto
- 9:16 Colore RGB spiegato
- 13:16 Spiegazione del cablaggio
- 13:48 Spiegazione del codice Arduino-1
- 19:03 Selezione della scheda ESP32 e della porta nell'IDE di Arduino
- 20:45 Dimostrazione del Codice-1
- 22:00 Controllo del singolo LED
- 24:16 Luce LED per camminare
- 25:41 Luce avanti e indietro
Common Course Links
Common Course Files
Cose di cui potresti avere bisogno
-
Amazon
-
eBay
-
AliExpressAcquista striscia LED WS2812 da AliExpresss.click.aliexpress.com
-
AliExpressAcquista striscia LED WS2812 da AliExpress-2s.click.aliexpress.com
-
BanggoodAcquista striscia LED WS2812 da Banggoodbanggood.com
Risorse e riferimenti
Nessuna risorsa ancora.
File📁
Nessun file disponibile.