Како повезати адресабилну ЛЕД траку ВС2812Б на Ардуино
Развој технологије осветљења засноване на ЛЕД диодама се убрзано наставља. Још јуче су РГБ траке које контролише контролер, чија се осветљеност и боја могу подесити помоћу даљинског управљача, деловале као чудо. Данас су се на тржишту појавиле лампе са још више карактеристика.
ЛЕД трака заснована на ВС2812Б
Разлика између адресабилне ЛЕД траке и стандардне РГБ ствар је у томе осветљеност и однос боја сваког елемента се подешавају посебно. Ово вам омогућава да добијете светлосне ефекте који су у основи недоступни другим врстама светлосних уређаја. Сјај адресабилне ЛЕД траке се контролише на познат начин – помоћу пулсно-ширинске модулације. Карактеристика система је опремање сваке ЛЕД диоде сопственим ПВМ контролером. ВС2812Б чип је тробојна светлећа диода и контролно коло комбиновано у једном пакету.

Елементи се комбинују у напојну траку паралелно, а контролишу се преко серијске магистрале – излаз првог елемента је повезан са контролним улазом другог итд. У већини случајева, серијске магистрале су изграђене на две линије, од којих једна преноси стробе (импулсе сата), а друга - податке.

Контролна магистрала ВС2812Б чипа састоји се од једне линије - подаци се преносе преко ње. Подаци су кодирани као импулси константне фреквенције, али са различитим радним циклусима. Један пулс - један бит. Трајање сваког бита је 1,25 µс, нулти бит се састоји од високог нивоа са трајањем од 0,4 µс и ниског нивоа од 0,85 µс. Јединица изгледа као високи ниво за 0,8 µс и низак ниво за 0,45 µс. 24-битни (3-бајтни) раф се шаље свакој ЛЕД диоди, након чега следи пауза ниског нивоа од 50 µс. То значи да ће подаци бити пренети за следећу ЛЕД диоду, и тако даље за све елементе ланца. Пренос података се завршава паузом од 100 µс. Ово указује да је циклус програмирања траке завршен и да се може послати следећи сет пакета података.

Такав протокол омогућава да се прође са једном линијом за пренос података, али захтева прецизност у одржавању временских интервала. Неслагање је дозвољено не више од 150 нс. Поред тога, отпорност на буку таквог аутобуса је веома ниска. Било које сметње довољне амплитуде контролер може схватити као податак. Ово намеће ограничења на дужину проводника из контролног кола. С друге стране, ово омогућава провера здравља траке без додатних уређаја.Ако укључите лампу и додирнете контактну таблу контролне магистрале прстом, неке ЛЕД диоде могу насумично упалити и угасити се.
Спецификације елемената ВС2812Б
Да бисте креирали системе осветљења на основу адресне траке, морате знати важне параметре елемената који емитују светлост.
| ЛЕД димензије | 5к5мм |
| Фреквенција ПВМ модулације | 400 Хз |
| Потрошња струје при максималној осветљености | 60 мА по ћелији |
| Напон | 5 волти |
Ардуино и ВС2812Б
Ардуино платформа, популарна у свету, омогућава вам да креирате скице (програме) за управљање адресним тракама. Могућности система су довољно широке, али ако више нису довољне на неком нивоу, стечене вештине ће бити довољне да се безболно пређе на Ц ++ или чак на асемблер. Иако је почетно знање лакше добити на Ардуину.
Повезивање траке ВС2812Б са Ардуино Уно (Нано)
У првој фази, довољне су једноставне Ардуино Уно или Ардуино Нано плоче. У будућности, сложеније плоче се могу користити за изградњу сложенијих система. Приликом физичког повезивања адресабилне ЛЕД траке на Ардуино плочу, мора се поштовати неколико услова:
- због ниске отпорности на буку, прикључни проводници линије података треба да буду што краћи (треба покушати да их направите унутар 10 цм);
- потребно је да повежете проводник података са слободним дигиталним излазом Ардуино плоче - он ће тада бити програмски специфициран;
- због велике потрошње енергије, није потребно напајати траку са плоче - за ову сврху су обезбеђена одвојена напајања.
Заједничка жица за напајање лампе и Ардуина мора бити повезана.

ВС2812Б Основе контроле програма
Већ је поменуто да је за контролу микрокола ВС2812Б потребно генерисати импулсе одређене дужине, одржавајући високу тачност. Постоје команде на језику Ардуино за формирање кратких импулса делаиМицросецондс и микрос. Проблем је што је резолуција ових команди 4 микросекунде. То јест, неће радити формирати временска кашњења са датом тачношћу. Неопходно је прећи на Ц ++ или Асемблер алате. И можете организовати контролу адресабилне ЛЕД траке кроз Ардуино користећи библиотеке посебно креиране за ово. Можете започети своје упознавање са програмом Блинк, који чини да елементи који емитују светлост трепере.
брзо водио
Ова библиотека је универзална. Поред траке за адресу, подржава разне уређаје, укључујући траке које контролише СПИ интерфејс. Има широке могућности.
Прво, библиотека мора бити укључена. Ово се ради пре блока подешавања, а линија изгледа овако:
#инцлуде <ФастЛЕД.х>
Следећи корак је креирање низа за чување боја сваке светлеће диоде. Имаће траку имена и димензију 15 - по броју елемената (боље је доделити константу овом параметру).
ЦРГБ трака[15]
У блоку за подешавање морате да наведете са којом траком ће скица радити:
воид сетуп() {
ФастЛЕД.аддЛедс< ВС2812Б, 7, РГБ>(трака, 15);
интг;
}
Параметар РГБ поставља редослед редоследа боја, 15 значи број ЛЕД диода, 7 је број излаза који је додељен за контролу (такође је боље доделити константу последњем параметру).
Блок петље почиње петљом која секвенцијално уписује у сваки део низа Ред (црвени сјај):
за (г=0; г< 15; г++)
{стрип[г]=ЦРГБ::Ред;}
Затим се формирани низ шаље у лампу:
ФастЛЕД.схов();
Кашњење 1000 милисекунди (секунди):
кашњење(1000);
Тада можете искључити све елементе на исти начин тако што ћете у њих уписати црно.
за (инт г=0; г< 15; г++)
{стрип[г]=ЦРГБ::Црна;}
ФастЛЕД.схов();
кашњење(1000);

Након састављања и учитавања скице, трака ће трептати са периодом од 2 секунде. Ако треба да управљате сваком компонентом боје посебно, онда уместо линије {стрип[г]=ЦРГБ::Ред;} користи се неколико линија:
{
стрип[г].р=100;// подесите ниво сјаја црвеног елемента
стрип[г].г=11;// исто за зелено
стрип[г].б=250;// исто за плаво
}
НеоПикел
Ова библиотека ради само са НеоПикел Ринг ЛЕД прстеновима, али је мање интензивна и садржи само најважније. На језику Ардуино, програм изгледа овако:
#инцлуде <Адафруит_НеоПикел.х>
Као иу претходном случају, библиотека је повезана, а објекат лента је декларисан:
Адафруит_НеоПикел лента=Адафруит_НеоПикел(15, 6);// где је 15 број елемената, а 6 додељени излаз
У блоку за подешавање, трака се иницијализује:
воид сетуп() {
лента.бегин()
}
У блоку петље, сви елементи су означени црвеном бојом, променљива се прослеђује у фид и ствара се кашњење од 1 секунде:
за (инт и=0; и<15; и++)// 15 - број елемената у лампи
{лента.сетПикелЦолор(и, лента.Цолор(255,0,0))};
тапе.схов();
кашњење(1000);
Сјај престаје са црним записом:
за (инт и=0; и< 15; и++)
{ лента.сетПикелЦолор(и, лента.Цолор(0,0,0))};
тапе.схов();
кашњење(1000);

Видео туторијал: Примери визуелних ефеката који користе адресне траке.
Када научите како да упалите ЛЕД диоде, можете наставити да учите како да креирате ефекте боја, укључујући популарне Раинбов и Аурора Бореалис са глатким прелазима. Адресабилне ЛЕД диоде ВС2812Б и Ардуино пружају готово неограничене могућности за ово.
