- Adafruit 5X8 NeoPixel Shield pentru Arduino
- Înțelegerea procesului de comunicare între aplicația Blynk și Arduino
- Componente necesare
- Adafruit RGB LED Shield și Arduino - Conexiune hardware
- Configurarea aplicației Blynk
- Arduino Code Controlling Adafruit WS2812B RGB LED Shield
- Încărcarea codului pe placa Arduino
De-a lungul câtorva ani, LED-urile RGB devin populare zi de zi datorită culorii sale frumoase, luminozității și efectelor de iluminare atrăgătoare. De aceea este folosit în multe locuri ca obiect decorativ, un exemplu poate fi casa sau un spațiu de birou. De asemenea, putem folosi luminile RGB în bucătărie și, de asemenea, într-o consolă de jocuri. De asemenea, sunt minunate în camera de joacă a unui copil sau dormitoare în ceea ce privește iluminarea stării de spirit. Anterior, am folosit LED-urile NeoPixel WS2812B și microcontrolerul ARM pentru a construi un Music Spectrum Visualizer, deci verificați dacă este interesant pentru dvs.
De aceea, în acest proiect vom folosi un ecran matricial LED RGB pe bază de Neopixel, aplicația Arduino și Blynk pentru a produce multe efecte de animație fascinante și culori pe care le vom putea controla cu aplicația Blynk. Deci sa începem!!!
Adafruit 5X8 NeoPixel Shield pentru Arduino
Ecranul NeoPixel Shield compatibil Arduino conține patruzeci de LED-uri RGB adresabile individual, fiecare cu driverul WS2812b încorporat, care este aranjat într-o matrice 5 × 8 pentru a forma acest NeoPixel Shield. Mai multe scuturi NeoPixel pot fi, de asemenea, conectate pentru a forma un scut mai mare, dacă aceasta este o cerință. Pentru a controla LED-urile RGB, este necesar un singur pin Arduino, deci în acest tutorial am decis să folosim pinul 6 al Arduino pentru a face acest lucru.
În cazul nostru, LED-urile sunt alimentate de la pinul încorporat de 5 V al Arduino, care este suficient pentru alimentarea a aproximativ „o treime din LED-uri” la luminozitate maximă. Dacă trebuie să alimentați mai multe LED-uri, atunci puteți tăia urmele încorporate și puteți utiliza o sursă externă de 5v pentru a alimenta scutul folosind terminalul extern de 5V.
Înțelegerea procesului de comunicare între aplicația Blynk și Arduino
Matricea LED 8 * 5 RGB utilizată aici are 40 de LED-uri RGB adresabile individual, bazate pe driverul WS2812B. Are control de culoare pe 24 de biți și 16,8 milioane de culori pe pixel. Poate fi controlat cu metodologia „One wire control”. Asta înseamnă că putem controla întregul pixel LED folosind un singur pin de control. În timp ce lucram cu LED-urile, am parcurs fișa tehnică a acestor LED-uri, unde găsesc că tensiunea de funcționare a ecranului este de 4 V la 6 V, iar consumul de curent se află la 50 mA pe LED la 5 V cu roșu, verde și albastru la luminozitate maximă. Are protecție împotriva voltajului invers pe pinii de alimentare externi și un buton Reset pe Shield pentru a reseta Arduino. Are, de asemenea, un pin de intrare externă pentru LED-uri dacă o cantitate suficientă de energie nu este disponibilă prin circuitele interne.
După cum se arată în schema de mai sus, trebuie să descărcăm și să instalăm aplicația Blynkpe smartphone-ul nostru unde pot fi controlați parametrii precum culoarea, luminozitatea. După configurarea parametrilor, dacă se întâmplă modificări aplicației, este în cloud-ul Blynk, unde computerul nostru este, de asemenea, conectat și gata să primească datele actualizate. Arduino Uno este conectat la computerul nostru prin cablu USB cu un port de comunicație deschis, cu acest port de comunicație (port COM), datele pot fi schimbate între cloud-ul Blynk și Arduino UNO. PC-ul solicită date din cloud-ul Blynk la intervale de timp constante și când se primesc date actualizate, le transferă către Arduino și ia decizii definite de utilizator, cum ar fi controlul luminozității și culorilor LED-ului RGB. Scutul LED RGB este plasat pe LED-ul Arduino și conectat printr-un singur pin de date pentru comunicare, în mod implicit este conectat prin pinul D6 al Arduino.Datele seriale trimise de la Arduino UNO sunt trimise către Neopixel shied care se reflectă apoi pe matricea LED.
Componente necesare
- Arduino UNO
- 8 * 5 RGB Matrix scut LED
- Cablu USB A / B pentru Arduino UNO
- Laptop / PC
Adafruit RGB LED Shield și Arduino - Conexiune hardware
LED - urile WS2812B Neopixel au trei pini, unul este pentru date și altele două sunt utilizate pentru alimentare, dar acest ecran specific Arduino face conexiunea hardware foarte simplă, tot ce trebuie să facem este să plasăm matricea LED Neopixel în partea de sus a Arduino UNO. În cazul nostru, LED-ul este alimentat de la șina implicită Arduino 5V. După plasarea ecranului Neopixel, configurarea arată ca mai jos:
Configurarea aplicației Blynk
Blynk este o aplicație care poate rula pe dispozitive Android și IOS pentru a controla orice dispozitiv IoT și aparate folosind smartphone-urile noastre. În primul rând, trebuie creată o interfață grafică de utilizator (GUI) pentru a controla matricea LED RGB. Aplicația va trimite toți parametrii selectați din GUI către Blynk Cloud. În secțiunea receptorului, avem Arduino conectat la computer printr-un cablu de comunicație serial. Prin urmare, PC-ul solicită date din cloud-ul Blynk, iar aceste date sunt trimise către Arduino pentru procesarea necesară. Deci, să începem cu configurarea aplicației Blynk.
Înainte de configurare, descărcați aplicația Blynk din magazinul Google Play (utilizatorii IOS pot descărca din App Store). După instalare, înscrieți-vă folosind ID-ul de e-mail și parola.
Crearea unui nou proiect:
După instalarea cu succes, deschideți aplicația și acolo vom primi un ecran cu opțiunea „ Proiect nou ”. Faceți clic pe el și va apărea un nou ecran, unde trebuie să setăm parametrii precum numele proiectului, placa și tipul de conexiune. În proiectul nostru, selectați dispozitivul ca „ Arduino UNO ” și tipul de conexiune ca „ USB ” și faceți clic pe „ Creați”.
După crearea cu succes a proiectului, vom primi un ID de autentificare în poșta noastră recomandată. Salvați ID-ul de autentificare pentru referințe viitoare.
Crearea interfeței grafice de utilizator (GUI):
Deschideți proiectul în Blynk, faceți clic pe semnul „+” de unde vom obține widgeturile pe care le putem folosi în proiectul nostru. În cazul nostru, avem nevoie de un selector de culori RGB care este listat ca „zeRGBa” așa cum se arată mai jos.
Setarea widgeturilor:
După ce trageți widgeturile către proiectul nostru, acum trebuie să-i setăm parametrii care sunt utilizați pentru a trimite valorile RGB de culoare către Arduino UNO.
Faceți clic pe ZeRGBa, apoi vom primi un ecran numit setare ZeRGBa. Apoi setați opțiunea Output la „ Merge ” și setați pinul la „V2”, care este afișat în imaginea de mai jos.
Arduino Code Controlling Adafruit WS2812B RGB LED Shield
După finalizarea conexiunii hardware, codul trebuie încărcat pe Arduino. Explicația pas cu pas a codului este prezentată mai jos.
În primul rând, includeți toate bibliotecile necesare. Deschideți Arduino IDE, apoi accesați fila Schiță și faceți clic pe opțiunea Includeți bibliotecă-> Gestionați bibliotecile . Apoi căutați Blynk în caseta de căutare și apoi descărcați și instalați pachetul Blynk pentru Arduino UNO.
Aici biblioteca „ Adafruit_NeoPixel.h ” este utilizată pentru a controla RGB LED Matrix. Pentru ao include, puteți descărca biblioteca Adafruit_NeoPixel de pe linkul dat. Odată ce ați obținut acest lucru, îl puteți include cu opțiunea Includeți biblioteca ZIP.
#define BLYNK_PRINT DebugSerial #include #include
Apoi definim numărul de LED-uri, care este necesar pentru matricea noastră de LED-uri, de asemenea, definim numărul pinului care este utilizat pentru a controla parametrii LED-urilor.
#define PIN 6 #define NUM_PIXELS 40
Apoi, trebuie să punem ID-ul nostru de autentificare clipire într-o matrice de autentificare , pe care am salvat-o mai devreme.
char auth = "HoLYSq-SGJAafQUQXXXXXXXXX";
Aici pinii seriali ai software-ului sunt folosiți ca consolă de depanare. Deci, pinii Arduino sunt definiți ca serie de depanare mai jos.
#include
În interiorul configurării, comunicarea serială este inițializată utilizând funcția Serial.begin , blynk este conectată utilizând Blynk.begin și utilizând pixels.begin (), LED-ul Matrix este inițializat.
void setup () { DebugSerial.begin (9600); pixeli.begin (); Serial.begin (9600); Blynk.begin (Serial, auth); }
În interiorul buclei () , am folosit Blynk.run () , care verifică comenzile primite din blynk GUI și execută operațiunile în consecință.
bucla void () { Blynk.run (); }
În etapa finală, parametrii care au fost trimiși din aplicația Blynk trebuie primiți și procesați. În acest caz, parametrii au fost alocați unui pin virtual „V2” așa cum sa discutat mai devreme în secțiunea de configurare. Funcția BLYNK_WRITE este o funcție încorporată care este apelată ori de câte ori se schimbă starea / valoarea pinului virtual asociat. putem rula cod în interiorul acestei funcții la fel ca orice altă funcție Arduino.
Aici funcția BLYNK_WRITE este scrisă pentru a verifica datele primite la pinul virtual V2. Așa cum se arată în secțiunea de configurare Blink, datele pixelilor de culoare au fost îmbinate și atribuite pinului V2. Deci, de asemenea, trebuie să ne dezbinăm din nou după decodare. Deoarece pentru a controla matricea de pixeli LED, avem nevoie de toate cele 3 date individuale ale pixelilor de culoare, cum ar fi roșu, verde și albastru. Așa cum se arată în codul de mai jos, trei indexuri ale matricei au fost citite ca param.asInt () pentru a obține valoarea de culoare roșie. În mod similar, toate celelalte două valori au fost recepționate și stocate în 3 variabile individuale. Apoi, aceste valori sunt atribuite matricei Pixel utilizând funcția pixels.setPixelColor așa cum se arată în codul de mai jos.
Aici, funcția pixels.setBrightness () este utilizată pentru a controla luminozitatea, iar funcția pixels.show () este utilizată pentru a afișa culoarea setată în Matrix.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixeli.clear (); pixeli.setBrightness (20); for (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } pixels.show (); }
Încărcarea codului pe placa Arduino
În primul rând, trebuie să selectăm PORTUL Arduino din interiorul IDE Arduino, apoi trebuie să încărcăm codul în Arduino UNO. După o încărcare reușită, notați numărul de port care va fi utilizat pentru configurarea comunicării seriale.
După aceasta, găsiți folderul script al bibliotecii Blynk de pe computer. Se instalează când instalați biblioteca, a mea era în, „C: \ Users \ PC_Name \ Documents \ Arduino \ libraries \ Blynk \ scripts”
În folderul script, ar trebui să existe un fișier numit „blynk-ser.bat”, care este un fișier batch utilizat pentru comunicarea în serie pe care trebuie să-l edităm cu notepad. Deschideți fișierul cu notepad și schimbați numărul portului cu numărul de port Arduino pe care l-ați notat în ultimul pas.
După editare, salvați fișierul și rulați fișierul batch făcând dublu clic pe el. Apoi, trebuie să vedeți o fereastră așa cum se arată mai jos:
Notă: Dacă nu puteți vedea această fereastră prezentată mai sus și vi se solicită să vă reconectați, atunci s-ar putea datora erorii de conectare a computerului cu ecranul Arduino. În acest caz, verificați conexiunea Arduino cu computerul. După aceea, verificați dacă numărul portului COM apare sau nu în IDE-ul Arduino. Dacă afișează portul COM valid, atunci este gata să continue. Ar trebui să rulați din nou fișierul batch.
Demonstrație finală:
Acum, este timpul să testăm circuitul și funcționalitatea acestuia. Deschideți aplicația Blynk și deschideți interfața grafică și faceți clic pe butonul Redare. După aceea, puteți selecta oricare dintre culorile dorite pentru a fi reflectate pe LED Matrix. După cum se arată mai jos, în cazul meu am selectat culoarea roșie și albastră, aceasta fiind afișată pe Matrix.
În mod similar, puteți încerca, de asemenea, să realizați diferite animații folosind aceste matrice LED, personalizând puțin codarea.