Cum se controlează LED-urile adresabile individual WS2812B folosind Arduino
Î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.

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.