- Adafruit 5X8 NeoPixel Shield per Arduino
- Comprensió del procés de comunicació entre l'aplicació Blynk i Arduino
- Components necessaris
- Adafruit RGB LED Shield i Arduino: connexió de maquinari
- Configuració de l'aplicació Blynk
- Escut LED Adafruit WS2812B RGB que controla el codi Arduino
- Carregant el codi a la placa Arduino
Al llarg d’uns anys, els LED RGB s’estan popularitzant dia a dia pel seu bonic color, brillantor i atractius efectes d’il·luminació. És per això que s’utilitza en molts llocs com a objecte de decoració, un exemple pot ser la llar o l’oficina. A més, podem utilitzar els llums RGB a la cuina i també en una consola de jocs. També són fantàstics a la sala de jocs o als dormitoris dels nens pel que fa a la il·luminació de l’ estat d’ ànim. Anteriorment, hem utilitzat els LEDs NeoPixel WS2812B i el microcontrolador ARM per crear un visualitzador de espectre musical, així que comproveu-ho si us interessa.
És per això que en aquest projecte utilitzarem un escut de matriu LED RGB basat en Neopixel, una aplicació Arduino i Blynk per produir molts efectes i colors fascinants d’animació que podrem controlar amb l’aplicació Blynk. Comencem doncs !!!
Adafruit 5X8 NeoPixel Shield per Arduino
El NeoPixel Shield compatible amb Arduino conté quaranta LED RGB adreçables individualment, cadascun amb el controlador WS2812b incorporat, que es disposa en una matriu de 5 × 8 per formar aquest NeoPixel Shield. També es poden connectar diversos escuts de NeoPixel per formar un escut més gran si és necessari. Per controlar els LED RGB, cal un sol pin Arduino, de manera que en aquest tutorial hem decidit utilitzar el pin 6 de l’Arduino per fer-ho.
En el nostre cas, els LED s’alimenten del pin incorporat de 5 V de l’Arduino, que és suficient per alimentar aproximadament “un terç dels LED” a plena brillantor. Si necessiteu alimentar més LEDs, podeu tallar el traç incorporat i utilitzar un subministrament extern de 5v per alimentar el blindatge mitjançant el terminal extern de 5V.
Comprensió del procés de comunicació entre l'aplicació Blynk i Arduino
La matriu LED 8 * 5 RGB que s’utilitza aquí té quaranta LED RGB adreçables individualment basats en el controlador WS2812B. Té un control de color de 24 bits i 16,8 milions de colors per píxel. Es pot controlar amb la metodologia "One wire control". Això significa que podem controlar tot el píxel LED mitjançant un sol pin de control. Mentre treballava amb els LED, he revisat la fitxa tècnica d’aquests LED, on trobo que el rang de tensió de funcionament de l’escut és de 4 V a 6 V i el consum actual es troba a 50 mA per LED a 5 V amb vermell, verd, i blau a plena brillantor. Compta amb una protecció contra tensió inversa als pins d’alimentació externs i un botó Restableix a l’escut per restablir l’Arduino. També té un pin d’entrada d’alimentació extern per a LEDs si no es disposa d’una quantitat suficient d’alimentació mitjançant circuits interns.

Com es mostra al diagrama esquemàtic anterior, hem de descarregar i instal·lar l’ aplicació Blynkal nostre telèfon intel·ligent on es poden controlar paràmetres com el color, la brillantor. Després de configurar els paràmetres, si es produeixen canvis a l'aplicació, és al núvol de Blynk, on el nostre PC també està connectat i està preparat per rebre les dades actualitzades. L'Arduino Uno està connectat al nostre PC mitjançant un cable USB amb un port de comunicació obert, amb aquest port de comunicació (port COM), es poden intercanviar dades entre el núvol Blynk i Arduino UNO. El PC sol·licita dades del núvol de Blynk a intervals de temps constants i, quan es reben dades actualitzades, les transfereixen a Arduino i pren decisions definides per l'usuari com controlar la brillantor i els colors del LED RGB. El blindatge LED RGB es col·loca al LED Arduino i es connecta mitjançant un sol pin de dades per a la comunicació; per defecte, es connecta mitjançant el pin D6 d’Arduino.Les dades en sèrie enviades des d’Arduino UNO s’envien al Neopixel que es reflecteix a la matriu LED.
Components necessaris
- Arduino UNO
- Escut LED Matrix 8 * 5 RGB
- Cable USB A / B per Arduino UNO
- Ordinador portàtil / PC
Adafruit RGB LED Shield i Arduino: connexió de maquinari
Els LED Neopixel WS2812B tenen tres pins, un per a dades i un altre per a alimentació, però aquest blindatge específic d’Arduino fa que la connexió de maquinari sigui molt senzilla, tot el que hem de fer és col·locar la matriu LED de Neopixel a la part superior d’Arduino UNO. En el nostre cas, el LED s’alimenta des del rail Arduino 5V per defecte. Després de col·locar el Neopixel Shield, la configuració és la següent:

Configuració de l'aplicació Blynk
Blynk és una aplicació que pot funcionar a través de dispositius Android i IOS per controlar qualsevol dispositiu i aparells IoT mitjançant els nostres telèfons intel·ligents. En primer lloc, cal crear una interfície gràfica d’usuari (GUI) per controlar la matriu LED RGB. L'aplicació enviarà tots els paràmetres seleccionats des de la GUI al núvol de Blynk. A la secció del receptor, tenim Arduino connectat al PC mitjançant un cable de comunicació sèrie. Per tant, el PC sol·licita dades del núvol de Blynk i aquestes dades s’envien a Arduino per al processament necessari. Comencem, doncs, amb la configuració de l’aplicació Blynk.
Abans de la configuració, descarregueu l'aplicació Blynk des de la botiga Google Play (els usuaris de iOS poden descarregar-la des de l'App Store). Després de la instal·lació, registreu-vos amb el vostre identificador de correu electrònic i la vostra contrasenya.
Creació d'un nou projecte:
Després d’instal·lar-la amb èxit, obriu l’aplicació i allà obtindrem una pantalla amb l’opció “ Projecte nou ”. Feu-hi clic i apareixerà una nova pantalla, en la qual haurem d’establir paràmetres com el nom del projecte, el tauler i el tipus de connexió. Al nostre projecte, seleccioneu el dispositiu com a " Arduino UNO " i el tipus de connexió com a " USB " i feu clic a " Crea".
Després de la creació satisfactòria del projecte, obtindrem un identificador d’autenticació al nostre correu certificat. Deseu l'identificador d'autenticació per a futures referències.

Creació de la interfície gràfica d'usuari (GUI):
Obriu el projecte a Blynk, feu clic al signe “+” on obtindrem els ginys que podem utilitzar al nostre projecte. En el nostre cas, necessitem un selector de colors RGB que aparegui com a "zeRGBa", tal com es mostra a continuació.

Configuració dels ginys:
Després d’arrossegar els ginys al nostre projecte, ara hem d’establir els seus paràmetres que s’utilitzen per enviar els valors RGB de color a Arduino UNO.
Feu clic a ZeRGBa i, a continuació, obtindrem una pantalla anomenada ZeRGBa setting. A continuació, configureu l'opció de sortida a " Combina " i configureu el pin a "V2" que es mostra a la imatge següent.

Escut LED Adafruit WS2812B RGB que controla el codi Arduino
Després de completar la connexió de maquinari, cal carregar el codi a Arduino. A continuació es mostra l’explicació pas a pas del codi.
Primer, incloeu totes les biblioteques necessàries. Obriu Arduino IDE i aneu a la pestanya Esbós i feu clic a l'opció Inclou biblioteca-> Gestiona biblioteques . A continuació, cerqueu Blynk al quadre de cerca i, a continuació, descarregueu i instal·leu el paquet Blynk per a Arduino UNO.
Aquí s’utilitza la biblioteca “ Adafruit_NeoPixel.h ” per controlar la matriu LED RGB. Per incloure-la, podeu descarregar la biblioteca Adafruit_NeoPixel des de l'enllaç indicat. Un cop ho hàgiu aconseguit, podeu incloure-ho a l'opció Inclou biblioteca ZIP.
#defineix BLYNK_PRINT DebugSerial #include #include
A continuació, definim el nombre de LEDs que és necessari per a la nostra matriu de LEDs, també definim el número de pin que s’utilitza per controlar els paràmetres del LED.
#define PIN 6 #define NUM_PIXELS 40
A continuació, hem de posar el nostre identificador d’autenticació parpellejant en una matriu d’ autorització , que hem desat anteriorment.
char auth = "HoLYSq-SGJAafQUQXXXXXXXXX";
Aquí s'utilitzen pins de sèrie com a consola de depuració. Per tant, els pins Arduino es defineixen com a sèrie de depuració a continuació.
#incloure
Dins de la configuració, la comunicació serial s’inicialitza mitjançant la funció Serial.begin , blynk es connecta mitjançant Blynk.begin i mitjançant pixels.begin (), s’inicialitza la matriu LED.
void setup () { DebugSerial.begin (9600); pixels.begin (); Serial.begin (9600); Blynk.begin (sèrie, autenticació); }
Dins del bucle () , hem utilitzat Blynk.run () , que comprova si hi ha ordres entrants des de la GUI de blynk i executa les operacions en conseqüència.
bucle buit () { Blynk.run (); }
En la fase final, els paràmetres que s’han enviat des de l’aplicació Blynk han de ser rebuts i processats. En aquest cas, els paràmetres es van assignar a un pin virtual "V2" tal com s'ha comentat anteriorment a la secció de configuració. La funció BLYNK_WRITE és una funció incorporada que es crida cada vegada que canvia l'estat / valor del pin virtual associat. podem executar codi dins d'aquesta funció igual que qualsevol altra funció Arduino.
Aquí s’escriu la funció BLYNK_WRITE per comprovar si hi ha dades entrants al pin V2 virtual. Com es mostra a la secció de configuració de parpelleig, les dades de píxels de color es van combinar i es van assignar al pin V2. Per tant, també hem de tornar a fusionar-nos després de la descodificació. Com que per controlar la matriu de píxels LED, necessitem les 3 dades de píxels de color individuals, com ara el vermell, el verd i el blau. Com es mostra al codi següent, es van llegir tres índexs de la matriu com a param.asInt () per obtenir el valor del color vermell. De la mateixa manera, tots els altres dos valors es van rebre i emmagatzemar en 3 variables individuals. A continuació, aquests valors s’assignen a la matriu Pixel mitjançant la funció pixels.setPixelColor tal com es mostra al codi següent.
Aquí, la funció pixels.setBrightness () s’utilitza per controlar la brillantor i la funció pixels.show () s’utilitza per mostrar el color definit a la matriu.
BLYNK_WRITE (V2) { int r = param.asInt (); int g = param.asInt (); int b = param.asInt (); pixels.clear (); pixels.setBrightness (20); for (int i = 0; i <= NUM_PIXELS; i ++) { pixels.setPixelColor (i, pixels.Color (r, g, b)); } pixels.show (); }
Carregant el codi a la placa Arduino
Primer, hem de seleccionar el PORT de l’Arduino dins de l’IDE Arduino, després hem de carregar el codi a Arduino UNO. Després de carregar amb èxit, anoteu el número de port que s'utilitzarà per a la configuració de la comunicació en sèrie.
Després d'això, cerqueu la carpeta de scripts de la biblioteca Blynk al vostre PC. S’instal·la quan instal·leu la biblioteca, la meva estava dins, "C: \ Users \ PC_Name \ Documents \ Arduino \ libraries \ Blynk \ scripts"
A la carpeta de scripts, hi hauria d’haver un fitxer anomenat “blynk-ser.bat”, que és un fitxer per lots que s’utilitza per a la comunicació en sèrie que hem d’editar amb el bloc de notes. Obriu el fitxer amb el bloc de notes i canvieu el número de port al número de port Arduino que heu assenyalat al darrer pas.
Després d’editar-lo, deseu el fitxer i executeu el fitxer per lots fent doble clic a sobre. Aleshores, heu de veure una finestra com es mostra a continuació:

Nota: Si no podeu veure aquesta finestra que es mostra més amunt i se us demana que us torneu a connectar, és possible que sigui a causa de l'error de connexió del PC amb l'escut Arduino. En aquest cas, comproveu la vostra connexió Arduino amb el PC. Després d'això, comproveu si el número de port COM es mostra a l'IDE d'Arduino o no. Si mostra el port COM vàlid, estarà a punt per continuar. Heu d'executar el fitxer per lots de nou.
Demostració final:
Ara és el moment de provar el circuit i la seva funcionalitat. Obriu l'aplicació Blynk i obriu la GUI i feu clic al botó Reprodueix. Després, podeu seleccionar qualsevol dels colors que vulgueu reflectir a la matriu LED. Com es mostra a continuació, en el meu cas he seleccionat el color vermell i blau, es mostrarà a la matriu.

De la mateixa manera, també podeu provar de fer diferents animacions mitjançant aquestes matrius LED personalitzant una mica la codificació.
