În acest tutorial vom învăța cum să controlăm LED-uri RGB adresabile individual sau o bandă LED WS2812B folosind Arduino. Puteți viziona următorul videoclip sau puteți citi tutorialul scris de mai jos pentru mai multe detalii.

Mai întâi vom explica principiul de lucru prin câteva exemple de bază și apoi vom arunca o privire la proiectul Arduino cu adevărat cool folosind aceste LED-uri, o masă de cafea interactivă DIY. Masa de cafea are LED-uri WS2812B, senzori de proximitate în infraroșu pentru detectarea obiectelor și un modul Bluetooth HC-05 pentru controlul culorilor printr-o aplicație Android personalizată. Acest proiect este de fapt o colaborare între mine și Marija de la canalul YouTube Creativity Hero.

individual

Cum funcționează LED-urile WS2812B

Să începem prin a arunca o privire mai atentă pe banda LED. Este format din LED-uri RGB de tip 5050 în care este integrat IC-ul cu driver WS2812B foarte compact.

În funcție de intensitatea celor trei LED-uri roșii, verzi și albastre individuale, putem simula orice culoare dorim.

Ce este grozav la aceste LED-uri este că putem controla chiar și întreaga bandă LED cu doar un singur pin de pe placa noastră Arduino. Fiecare LED are trei conectori la fiecare capăt, doi pentru alimentare și unul pentru date. Săgeata indică direcția fluxului de date. Tamponul de ieșire de date al LED-ului anterior este conectat la pad-ul de intrare de date al următorului LED. Putem tăia banda la orice dimensiune dorim, precum și distanța LED-urilor folosind niște fire.

În ceea ce privește alimentarea, acestea funcționează pe 5V și fiecare LED roșu, verde și albastru atrage în jur de 20mA, adică un total de 60mA pentru fiecare LED la luminozitate maximă. Rețineți că, atunci când Arduino este alimentat prin USB, pinul de 5V poate gestiona doar aproximativ 400 mA, iar atunci când este alimentat utilizând conectorul de alimentare cu butoi, pinul de 5V poate gestiona aproximativ 900 mA. Deci, dacă utilizați mai multe LED-uri și cantitatea de curent pe care ar fi extrasă depășește limitele menționate mai sus, trebuie să utilizați o sursă de alimentare separată de 5V. Într-un astfel de caz, trebuie să conectați și cele două linii de masă. În plus, se recomandă utilizarea unui rezistor de aproximativ 330 Ohmi între Arduino și pinul de date cu bandă LED pentru a reduce zgomotul de pe acea linie, precum și un condensator de aproximativ 100uF pe 5V și la sol pentru a netezi sursa de alimentare.

Exemple de LED-uri Arduino și WS2812B

Exemplul 1

Acum, ca exemplu, voi folosi o bandă lungă de 20 de LED-uri, conectată la Arduino printr-un rezistor de 330 Ohmi și alimentată cu o sursă de alimentare separată de 5V, așa cum s-a explicat mai sus. Pentru programarea Arduino, vom folosi biblioteca FastLED. Aceasta este o bibliotecă excelentă și bine documentată, care permite controlul ușor al LED-urilor WS2812B.

Puteți obține componentele necesare pentru acest exemplu din linkurile de mai jos:

  • Benzi LED WS2812B. Amazon/Banggood
  • Placa Arduino …………………………… Amazon/Banggood
  • Sursă de alimentare 5V 6A DC Amazon/Banggood

Divulgare: Acestea sunt linkuri de afiliere. Ca asociat Amazon câștig din achiziții eligibile.

Iată codul sursă Arduino pentru primul exemplu:

Desctiption: Deci, mai întâi trebuie să includem biblioteca FastLED, să definim pinul la care sunt conectate datele benzii LED, să definim numărul de LED-uri, precum și să definim o matrice de tip CRGB. Acest tip conține LED-uri, cu trei membri de date pe un octet pentru fiecare dintre cele trei canale de culoare roșu, verde și albastru.

În secțiunea de configurare trebuie doar să inițializăm FastLED cu parametrii definiți mai sus. Acum este bucla principală pe care o putem controla LED-urile oricum dorim. Folosind funcția CRGB putem seta orice LED la orice culoare folosind trei parametri de culoare roșie, verde și albastră. Pentru a face schimbarea pe LED-uri, trebuie să apelăm funcția FastLED.show ().

Exemplul 2

Folosind câteva bucle „pentru” putem realiza cu ușurință unele animații.

Iată codul sursă Arduino pentru al doilea exemplu:

Aici, prima buclă „for” aprinde toate cele 20 de LED-uri în albastru, de la primul până la ultimul LED cu o întârziere de 40 de milisecunde. Următoarea buclă „pentru” aprinde din nou toate cele 20 de LED-uri, dar de această dată în culoare roșie și în ordine inversă, de la ultimul la primul LED.

Biblioteca FastLED oferă multe alte funcții care pot fi folosite pentru realizarea de animații și spectacole de lumini cu adevărat interesante, așa că depinde doar de imaginația ta de a face viitorul tău proiect LED să strălucească.

Masă de cafea interactivă cu LED-uri folosind LED-urile WS2812B

Acum, să aruncăm o privire la proiectul de măsuță de cafea interactivă cu bricolaj pe care l-am menționat la început. Deci, acesta a fost un proiect de colaborare între mine și Marija de la Creativity Hero.

Puteți consulta articolul site-ului ei web, unde explică întregul proces de realizare a mesei, începând de la tăierea și asamblarea construcției din lemn, până la lipirea și conectarea tuturor pieselor electronice împreună. Aici voi explica cum funcționează partea electronică, cum să construiți aplicația Android personalizată și să programați placa Arduino.

Iată circuitul schematic complet al acestui proiect.

Așadar, tabelul este format din 45 de LED-uri adresabile, 45 de senzori de proximitate în infraroșu și un modul Bluetooth HC-05, toate conectate la o placă Arduino Mega. Circuitul este alimentat cu o sursă de alimentare de 5V 6A.

Puteți obține componentele necesare pentru acest exemplu din linkurile de mai jos:

  • Benzi LED WS2812B. Amazon/Banggood
  • Senzor de proximitate IR Amazon/Banggood
  • Modulul HC-05 Bluetooth ……. …… Amazon/Banggood
  • Placa Arduino …………………………… Amazon/Banggood
  • Sursă de alimentare 5V 6A DC Amazon/Banggood

Divulgare: Acestea sunt linkuri de afiliere. Ca asociat Amazon câștig din achiziții eligibile.

Coduri sursă

Iată codul Arduino pentru acest proiect și dacă excludem funcția de control al culorii Bluetooth, putem observa că codul este de fapt foarte simplu.

Desctiopion: Mai întâi trebuie să definim parametrii de bază așa cum am explicat mai devreme și să setăm cei 45 de pini ai senzorilor de proximitate ca intrări.

În bucla principală folosind o singură buclă „pentru”, setăm toate LED-urile la o anumită culoare și verificăm, de asemenea, dacă senzorul de proximitate a detectat un obiect. Dacă acest lucru este adevărat sau o stare logică LOW în acest caz, culoarea reactivă particulară va fi setată la LED-ul respectiv. La final folosind funcția FastLED.show () actualizăm culorile LED-urilor.

Pentru a include funcția de control al culorii Bluetooth, trebuie să adăugăm câteva linii de cod și să creăm aplicația pentru Android. Am deja tutoriale separate despre cum să utilizați modulul Bluetooth HC-05 cu Arduino și cum să creați propria aplicație Android utilizând aplicația online MIT App Inventor, astfel încât să le puteți verifica oricând pentru mai multe detalii.

Iată cum funcționează aplicația Android. Se compune dintr-o imagine a paletei de culori de unde putem prelua culori, două butoane de verificare de unde putem selecta dacă culoarea aleasă va fi aplicată la LED-urile reactive sau de fundal și un glisor pentru ajustarea luminozității.

Dacă aruncăm o privire asupra blocurilor aplicației, putem vedea ce se întâmplă atunci când atingem pânza unde este plasată imaginea paletei de culori. Folosind blocurile .GetPixelColor obținem valorile roșu, verde și albastru pentru culoarea preluată și folosind blocul Bluetooth SendText trimitem aceste informații către Arduino într-o formă de text.

În funcție de caseta de selectare selectată, trimitem un prim caracter sau un marker diferit care ajută la primirea textului la Arduino. La fel se întâmplă atunci când schimbăm poziția glisorului, o valoare de la 10 la 100 este trimisă către Arduino într-o formă de text, cu marcatorul „3” în față.

Puteți descărca mai jos aplicația Android, precum și fișierul proiectului MIT App Inventor: