- Adafruit 5X8 NeoPixel Shield per Arduino
- Comprensione del processo di comunicazione tra l'app Blynk e Arduino
- Componenti richiesti
- Adafruit RGB LED Shield e Arduino - Connessione hardware
- Configurazione dell'applicazione Blynk
- Codice Arduino che controlla Adafruit WS2812B RGB LED Shield
- Caricamento del codice sulla scheda Arduino
Nel corso di alcuni anni, i LED RGB stanno diventando popolari giorno dopo giorno grazie ai loro splendidi colori, luminosità e allettanti effetti di luce. Ecco perché viene utilizzato in molti luoghi come elemento decorativo, un esempio può essere la casa o uno spazio per l'ufficio. Inoltre, possiamo utilizzare le luci RGB in cucina e anche in una console di gioco. Sono anche fantastici nella stanza dei giochi o nelle camere da letto di un bambino in termini di illuminazione d' atmosfera. In precedenza, abbiamo utilizzato i LED NeoPixel WS2812B e il microcontrollore ARM per creare un visualizzatore di spettro musicale, quindi controlla se è interessante per te.
Ecco perché in questo progetto utilizzeremo uno schermo a matrice LED RGB basato su Neopixel, Arduino e un'applicazione Blynk per produrre molti affascinanti effetti di animazione e colori che saremo in grado di controllare con l'app Blynk. Quindi iniziamo!!!
Adafruit 5X8 NeoPixel Shield per Arduino
Lo Shield NeoPixel compatibile con Arduino contiene quaranta LED RGB indirizzabili individualmente, ognuno dei quali ha il driver WS2812b integrato, che è disposto in una matrice 5 × 8 per formare questo NeoPixel Shield. È anche possibile collegare più schermi NeoPixel per formare uno schermo più grande se questo è un requisito. Per controllare i LED RGB è necessario un singolo pin Arduino, quindi in questo tutorial abbiamo deciso di utilizzare il pin 6 di Arduino per farlo.
Nel nostro caso, i LED sono alimentati dal pin 5V integrato di Arduino, che è sufficiente per alimentare circa "un terzo dei LED" a piena luminosità. Se è necessario alimentare più LED, è possibile tagliare la traccia incorporata e utilizzare un'alimentazione 5V esterna per alimentare lo scudo utilizzando il terminale 5V esterno.
Comprensione del processo di comunicazione tra l'app Blynk e Arduino
La matrice LED 8 * 5 RGB che viene utilizzata qui ha quaranta LED RGB indirizzabili individualmente basati sul driver WS2812B. Ha il controllo del colore a 24 bit e 16,8 milioni di colori per pixel. Può essere controllato con la metodologia "One wire control". Ciò significa che possiamo controllare l'intero pixel LED utilizzando un singolo pin di controllo. Mentre lavoro con i LED, ho esaminato la scheda tecnica di questi LED dove trovo che l'intervallo di tensione operativa dello scudo è da 4 V a 6 V e il consumo di corrente è di 50 mA per LED a 5 V con rosso, verde e blu a piena luminosità. Ha una protezione dalla tensione inversa sui pin di alimentazione esterni e un pulsante di ripristino sullo scudo per ripristinare Arduino. Ha anche un pin di ingresso di alimentazione esterna per i LED se una quantità sufficiente di alimentazione non è disponibile attraverso i circuiti interni.
Come mostrato nel diagramma schematico sopra, dobbiamo scaricare e installare l' applicazione Blynksul nostro smartphone dove è possibile controllare parametri come colore, luminosità. Dopo aver impostato i parametri, se vengono apportate modifiche all'app, è al cloud Blynk dove anche il nostro PC è connesso e pronto a ricevere i dati aggiornati. L'Arduino Uno è collegato al nostro PC tramite cavo USB con una porta di comunicazione aperta, con questa porta di comunicazione (porta COM), i dati possono essere scambiati tra il cloud Blynk e Arduino UNO. Il PC richiede dati dal cloud Blynk a intervalli di tempo costanti e quando vengono ricevuti dati aggiornati, li trasferisce ad Arduino e prende decisioni definite dall'utente come il controllo della luminosità e dei colori del LED RGB. Lo scudo LED RGB è posizionato sul LED Arduino e collegato tramite un unico pin dati per la comunicazione, di default è collegato tramite il pin D6 di Arduino.I dati seriali inviati da Arduino UNO vengono inviati al Neopixel shied che viene poi riflesso sulla matrice LED.
Componenti richiesti
- Arduino UNO
- Schermo a matrice di LED RGB 8 * 5
- Cavo USB A / B per Arduino UNO
- Laptop / PC
Adafruit RGB LED Shield e Arduino - Connessione hardware
I LED Neopixel WS2812B hanno tre pin, uno per i dati e altri due per l'alimentazione, ma questo specifico shield Arduino rende la connessione hardware molto semplice, tutto quello che dobbiamo fare è posizionare la matrice LED Neopixel sulla parte superiore di Arduino UNO. Nel nostro caso, il LED è alimentato dal binario 5V Arduino predefinito. Dopo aver posizionato lo scudo Neopixel, la configurazione appare come di seguito:
Configurazione dell'applicazione Blynk
Blynk è un'applicazione che può essere eseguita su dispositivi Android e IOS per controllare qualsiasi dispositivo e dispositivo IoT utilizzando i nostri smartphone. Prima di tutto, è necessario creare un'interfaccia utente grafica (GUI) per controllare la matrice LED RGB. L'applicazione invierà tutti i parametri selezionati dalla GUI a Blynk Cloud. Nella sezione ricevitore, abbiamo Arduino collegato al PC tramite un cavo di comunicazione seriale. Quindi, il PC richiede i dati dal cloud Blynk e questi dati vengono inviati ad Arduino per l'elaborazione necessaria. Quindi, iniziamo con l'installazione dell'applicazione Blynk.
Prima della configurazione, scarica l'applicazione Blynk da Google Play Store (gli utenti IOS possono scaricare da App Store). Dopo l'installazione, registrati utilizzando il tuo ID e-mail e la password.
Creazione di un nuovo progetto:
Dopo l'installazione con successo, apri l'applicazione e lì avremo una schermata con un'opzione " Nuovo progetto ". Fare clic su di esso e verrà visualizzata una nuova schermata, in cui è necessario impostare i parametri come il nome del progetto, la scheda e il tipo di connessione. Nel nostro progetto, seleziona il dispositivo come " Arduino UNO " e il tipo di connessione come " USB " e fai clic su " Crea".
Dopo la corretta creazione del progetto, riceveremo un ID di autenticazione nella nostra posta raccomandata. Salva l'ID di autenticazione per riferimento futuro.
Creazione dell'interfaccia utente grafica (GUI):
Apri il progetto in Blynk, fai clic sul segno "+" dove otterremo i widget che possiamo utilizzare nel nostro progetto. Nel nostro caso, abbiamo bisogno di un selettore di colori RGB che è elencato come "zeRGBa" come mostrato di seguito.
Impostazione dei widget:
Dopo aver trascinato i widget nel nostro progetto, ora dobbiamo impostare i suoi parametri che vengono utilizzati per inviare i valori RGB del colore ad Arduino UNO.
Fare clic su ZeRGBa, quindi avremo una schermata denominata Impostazioni ZeRGBa. Quindi impostare l'opzione Output su " Unisci " e impostare il pin su "V2", come mostrato nell'immagine sottostante.
Codice Arduino che controlla Adafruit WS2812B RGB LED Shield
Dopo il completamento della connessione hardware, il codice deve essere caricato su Arduino. Di seguito è illustrata la spiegazione passo passo del codice.
Innanzitutto, includi tutte le librerie richieste. Apri l'IDE di Arduino, quindi vai alla scheda Schizzo e fai clic sull'opzione Includi libreria-> Gestisci librerie . Quindi cerca Blynk nella casella di ricerca, quindi scarica e installa il pacchetto Blynk per Arduino UNO.
Qui la libreria " Adafruit_NeoPixel.h " viene utilizzata per controllare la matrice LED RGB. Per includerlo, puoi scaricare la libreria Adafruit_NeoPixel dal link fornito. Una volta ottenuto, puoi includerlo con l'opzione Includi libreria ZIP.
#define BLYNK_PRINT DebugSerial #include #include
Quindi definiamo il numero di LED, che è richiesto per la nostra matrice di LED, definiamo anche il numero di pin che viene utilizzato per controllare i parametri del LED.
#define PIN 6 #define NUM_PIXELS 40
Quindi, dobbiamo mettere il nostro ID di autenticazione blink in un array di autenticazione , che abbiamo salvato in precedenza.
char auth = "HoLYSq-SGJAafQUQXXXXXXXX";
Qui i pin seriali del software vengono utilizzati come console di debug. Quindi, i pin di Arduino sono definiti come seriale di debug di seguito.
#includere
All'interno della configurazione, la comunicazione seriale viene inizializzata utilizzando la funzione Serial.begin , blynk viene connesso utilizzando Blynk.begin e utilizzando pixels.begin (), la matrice LED viene inizializzata.
void setup () { DebugSerial.begin (9600); pixels.begin (); Serial.begin (9600); Blynk.begin (seriale, autenticazione); }
All'interno di loop () , abbiamo utilizzato Blynk.run () , che controlla i comandi in arrivo dalla GUI di blynk ed esegue le operazioni di conseguenza.
void loop () { Blynk.run (); }
Nella fase finale, i parametri che sono stati inviati dall'applicazione Blynk devono essere ricevuti ed elaborati. In questo caso, i parametri sono stati assegnati a un pin virtuale "V2" come discusso in precedenza nella sezione di configurazione. La funzione BLYNK_WRITE è una funzione incorporata che viene chiamata ogni volta che lo stato / valore del pin virtuale associato cambia. possiamo eseguire il codice all'interno di questa funzione proprio come qualsiasi altra funzione di Arduino.
Qui la funzione BLYNK_WRITE viene scritta per controllare i dati in arrivo sul pin virtuale V2. Come mostrato nella sezione Configurazione Blink, i dati dei pixel colorati sono stati uniti e assegnati al pin V2. Quindi dobbiamo anche separare di nuovo dopo la decodifica. Perché per controllare la matrice di pixel LED, abbiamo bisogno di tutti e 3 i dati dei singoli pixel di colore come rosso, verde e blu. Come mostrato nel codice seguente, tre indici della matrice sono stati letti come param.asInt () per ottenere il valore del colore rosso. Allo stesso modo, tutti gli altri due valori sono stati ricevuti e memorizzati in 3 variabili individuali. Quindi questi valori vengono assegnati alla matrice Pixel utilizzando la funzione pixels.setPixelColor come mostrato nel codice sottostante.
Qui, la funzione pixels.setBrightness () viene utilizzata per controllare la luminosità e la funzione pixels.show () viene utilizzata per visualizzare il colore impostato in Matrix.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixel.clear (); pixels.setBrightness (20); for (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } pixels.show (); }
Caricamento del codice sulla scheda Arduino
Per prima cosa, dobbiamo selezionare la PORTA di Arduino all'interno dell'IDE di Arduino, quindi dobbiamo caricare il codice in Arduino UNO. Dopo un caricamento riuscito, annotare il numero di porta che verrà utilizzato per la configurazione della nostra comunicazione seriale.
Successivamente, trova la cartella degli script della libreria Blynk sul tuo PC. Viene installato quando installi la libreria, la mia era dentro, "C: \ Users \ PC_Name \ Documents \ Arduino \ libraries \ Blynk \ scripts"
Nella cartella script, dovrebbe esserci un file denominato "blynk-ser.bat" che è un file batch utilizzato per la comunicazione seriale che dobbiamo modificare con il blocco note. Apri il file con il blocco note e modifica il numero di porta con il numero di porta Arduino che hai annotato nell'ultimo passaggio.
Dopo la modifica, salva il file ed esegui il file batch facendo doppio clic su di esso. Quindi, devi vedere una finestra come quella mostrata di seguito:
Nota: se non riesci a vedere questa finestra mostrata sopra e ti viene chiesto di riconnetterti, potrebbe essere dovuto all'errore nella connessione del PC con lo shield Arduino. In tal caso, controlla la tua connessione Arduino con il PC. Successivamente, controlla se il numero di porta COM è visualizzato nell'IDE di Arduino o meno. Se mostra la porta COM valida, è pronto per procedere. È necessario eseguire nuovamente il file batch.
Dimostrazione finale:
Ora è il momento di testare il circuito e la sua funzionalità. Apri l'applicazione Blynk e apri la GUI e fai clic sul pulsante Riproduci. Successivamente, è possibile selezionare uno qualsiasi dei colori desiderati da riflettere sulla matrice LED. Come mostrato di seguito, nel mio caso ho selezionato il colore rosso e blu, viene visualizzato su Matrix.
Allo stesso modo, puoi anche provare a creare diverse animazioni utilizzando queste matrici LED personalizzando un po 'la codifica.