Съдържание:

Направи си сам RGB LED цвят чрез Bluetooth: 5 стъпки
Направи си сам RGB LED цвят чрез Bluetooth: 5 стъпки

Видео: Направи си сам RGB LED цвят чрез Bluetooth: 5 стъпки

Видео: Направи си сам RGB LED цвят чрез Bluetooth: 5 стъпки
Видео: Светодиодная лента RGB 5050 2835 с поддержкой Bluetooth и Wi-Fihttps://clck.ru/32q2wP #алиекспресс 2024, Ноември
Anonim
DIY Control RGB LED цвят Чрез Bluetooth
DIY Control RGB LED цвят Чрез Bluetooth

Напоследък популярността на интелигентните крушки нараства и непрекъснато се превръща в ключова част от инструментариума за интелигентен дом. Интелигентните крушки позволяват на потребителя да контролира светлината си чрез специално приложение на смартфона на потребителя; крушката може да се включва и изключва и цветът може да се променя от интерфейса на приложението. В този проект ние изградихме интелигентен контролер на крушка, който може да се управлява от ръчен бутон или мобилно приложение чрез Bluetooth. За да добавим усет към този проект, ние добавихме някои функции, които позволяват на потребителя да избере цвят на осветление от списъка с цветове, включени в интерфейса на приложението. Той може също да активира „автоматично смесване“, за да генерира цветови ефекти и да променя осветлението на всеки половин секунда. Потребителят може да създаде свой собствен цветен микс с помощта на PWM функция, която може да се използва и като димер за трите основни цвята (червен, зелен, син). Също така добавихме външни бутони към веригата, така че потребителят да може да превключи в ръчен режим и да промени цвета на светлината от външен бутон.

Тази инструкция се състои от две секции; дизайна на GreenPAK ™ и дизайна на приложения за Android. Дизайнът GreenPAK се основава на използване на UART интерфейс за комуникация. UART е избран, защото се поддържа от повечето Bluetooth модули, както и от повечето други периферни устройства, като WIFI модули. Следователно дизайнът GreenPAK може да се използва в много видове връзки.

За да изградим този проект, ще използваме SLG46620 CMIC, Bluetooth модул и RGB LED. IC GreenPAK ще бъде контролното ядро на този проект; той получава данни от Bluetooth модул и/или външни бутони, след което започва необходимата процедура за показване на правилното осветление. Той също така генерира PWM сигнал и го извежда към светодиода. Фигура 1 по -долу показва блоковата диаграма.

Устройството GreenPAK, използвано в този проект, съдържа интерфейс за SPI връзка, PWM блокове, FSM и много други полезни допълнителни блокове в една IC. Характеризира се и с малките си размери и ниската консумация на енергия. Това ще позволи на производителите да изградят малка практична верига, използваща една интегрална схема, като по този начин производствените разходи ще бъдат сведени до минимум в сравнение с подобни системи.

В този проект ние контролираме един RGB LED. За да стане проектът жизнеспособен с търговска гледна точка, една система вероятно ще трябва да увеличи нивото на осветеност чрез свързване на много светодиоди паралелно и използване на подходящи транзистори; захранващата верига също трябва да бъде взета под внимание.

Можете да преминете през всички стъпки, за да разберете как чипът GreenPAK е програмиран да контролира RGB LED цвета чрез Bluetooth. Ако обаче просто искате лесно да програмирате интегралната схема, без да разбирате всички вътрешни схеми, изтеглете софтуера GreenPAK, за да видите вече завършения файл за проектиране GreenPAK. Включете GreenPAK Development Kit към компютъра си и натиснете програма, за да създадете персонализирана интегрална схема за управление на RGB LED цвят чрез Bluetooth.

Дизайнът GreenPAK се състои от UART приемник, ШИМ модул и контролен блок, описани в стъпките по -долу.

Стъпка 1: UART приемник

UART приемник
UART приемник

Първо, трябва да настроим Bluetooth модула. Повечето Bluetooth IC поддържат протокола UART за комуникация. UART означава универсален асинхронен приемник / предавател. UART може да конвертира данни напред и назад между паралелни и серийни формати. Той включва сериен към паралелен приемник и паралелен към сериен преобразувател, които се синхронизират отделно.

Данните, получени в Bluetooth модула, ще бъдат предадени на нашето GreenPAK устройство. Състоянието на празен ход за Pin10 е ВИСОКО. Всеки изпратен знак започва с логически LOW стартов бит, последван от конфигурируем брой битове данни и един или повече логически HIGH стопови бита.

Предавателят UART изпраща 1 START бит, 8 бита данни и един STOP бит. Обикновено скоростта на предаване по подразбиране за UART Bluetooth модул е 9600. Ще изпратим байта от данни от IC IC към SPI блока на GreenPAK ™ SLG46620.

Тъй като GreenPAK SPI блокът няма управление на битове START или STOP, вместо това ще използваме тези битове, за да активираме и деактивираме SPI часовника (SCLK). Когато Pin10 се понижи, ние знаем, че сме получили бит START, затова използваме PDLY детектора за падане на ръба, за да идентифицираме началото на комуникацията. Този детектор на падащи ръбове работи с тактови честоти DFF0, което позволява на сигнала SCLK да синхронизира SPI блока.

Нашата скорост на предаване е 9600 бита в секунда, така че нашият SCLK период трябва да бъде 1/9600 = 104 μs. Затова зададохме честотата на OSC на 2MHz и използвахме CNT0 като честотен делител.

2 MHz-1 = 0,5 μs

(104 μs / 0.5 μs) - 1 = 207

Затова искаме стойността на брояча на CNT0 да бъде 207. За да се уверим, че не пропускаме никакви данни, трябва да забавим SPI часовника с половин тактов цикъл, така че SPI блокът да се задейства в точното време. Постигнахме това, като използвахме CNT6, 2-битов LUT1 и външния часовник на блока OSC. Изходът на CNT6 не се повишава чак до 52 μs след отчитане на DFF0, което е половината от нашия 104 μs период на SCLK. Когато CNT6 е висок, 2-битовият LUT1 AND порта позволява на 2MHz OSC сигнала да премине в EXT. CLK0 вход, чийто изход е свързан към CNT0.

Стъпка 2: ШИМ устройство

ШИМ единица
ШИМ единица

ШИМ сигналът се генерира с помощта на PWM0 и свързан генератор на тактови импулси (CNT8/DLY8). Тъй като ширината на импулса е контролирана от потребителя, ние използваме FSM0 (който може да бъде свързан към PWM0) за преброяване на потребителски данни.

В SLG46620 8-битов FSM1 може да се използва с PWM1 и PWM2. Bluetooth модулът трябва да бъде свързан, което означава, че трябва да се използва SPI паралелен изход. Паралелните изходни битове на SPI от 0 до 7 се смесват с DCMP1, DMCP2 и OUT1 и OUT0 на LF OSC CLK. PWM0 получава изхода си от 16-битовия FSM0. Ако остане непроменено, това причинява претоварване на ширината на импулса. За да се ограничи стойността на брояча на 8 бита, се добавя друг FSM; FSM1 се използва като указател, за да се знае кога броячът достига 0 или 255. FSM0 се използва за генериране на PWM импулс. FSM0 и FSM1 трябва да бъдат синхронизирани. Тъй като и двата FSM имат предварително зададени опции за часовник, CNT1 и CNT3 се използват като посредници за предаване на CLK към двата FSM. Двата брояча са настроени на една и съща стойност, която е 25 за тази инструкция. Можем да променим скоростта на промяна на стойността на PWM, като променим тези стойности на брояча.

Стойността на FSM се увеличава и намалява от сигналите „+“и „-“, които произхождат от SPI паралелния изход.

Стъпка 3: Контролен блок

Блок за управление
Блок за управление

В рамките на контролния блок полученият байт се пренася от Bluetooth модула към SPI паралелен изход и след това се предава на свързаните функции. Първоначално изходите PWM CS1 и PWM CS2 ще бъдат проверени, за да се види дали PWM моделът е активиран или не. Ако е активиран, той ще определи кой канал ще извежда ШИМ през LUT4, LUT6 и LUT7.

LUT9, LUT11 и LUT14 са отговорни за проверката на състоянието на другите два светодиода. LUT10, LUT12 и LUT13 проверяват дали бутонът Manual е активиран или не. Ако е активен ръчен режим, RGB изходите работят в съответствие с изходните състояния D0, D1, D2, които се променят при всяко натискане на бутона за цвят. Той се променя с нарастващия ръб, идващ от CNT9, който се използва като изгарящ ръб.

Пин 20 е конфигуриран като вход и се използва за превключване между ръчно и Bluetooth управление.

Ако ръчният режим е деактивиран и режимът на автоматичен миксер е активиран, тогава цветът се променя на всеки 500 ms с нарастващ ръб, идващ от CNT7. 4-битов LUT1 се използва за предотвратяване на състояние '000' за D0 D1 D2, тъй като това състояние кара светлината да се изключва по време на режим на автоматичен миксер.

Ако ръчният режим, режимът PWM и режимът на автоматичен миксер не са активирани, тогава червените, зелените и сините SPI команди преминават към пинове 12, 13 и 14, които са конфигурирани като изходи и са свързани към външния RGB LED.

DFF1, DFF2 и DFF3 се използват за изграждане на 3-битов двоичен брояч. Стойността на брояча се увеличава с импулси CNT7, които преминават през P14 в режим на автоматичен миксер, или от сигнали, идващи от бутона за цвят (PIN3) в ръчен режим.

Стъпка 4: Приложение за Android

Приложение за Android
Приложение за Android
Приложение за Android
Приложение за Android
Приложение за Android
Приложение за Android
Приложение за Android
Приложение за Android

В този раздел ще създадем приложение за Android, което ще следи и показва избора на потребителски контрол. Интерфейсът се състои от две секции: първата секция съдържа набор от бутони, които имат предварително зададени цветове, така че при натискане на някой от тези бутони светва светодиод със същия цвят. Втората секция (квадрат MIX) създава смесен цвят за потребителя.

В първия раздел потребителят избира LED щифта, през който иска PWM сигнал да премине; ШИМ сигналът може да се предава само на един пин наведнъж. Долният списък контролира другите два цвята логически включване/изключване по време на PWM режим.

Бутонът за автоматичен миксер е отговорен за стартирането на модела за автоматична смяна на светлината, при който светлината ще се променя на всеки половин секунда. Разделът MIX съдържа два списъка с отметки, така че потребителят може да реши кои два цвята да смеси заедно.

Създадохме приложението, използвайки уебсайта на изобретателя на приложението MIT. Това е сайт, който позволява изграждането на приложения за Android без предишен софтуерен опит с помощта на графични софтуерни блокове.

Първоначално проектирахме графичен интерфейс чрез добавяне на набор от бутони, отговорни за показването на предварително зададените цветове, добавихме и два списъка с квадратчета за отметка, като всеки списък има 3 елемента; всеки елемент е очертан в отделната си кутия, както е показано на фигура 5.

Бутоните в потребителския интерфейс са свързани със софтуерни команди: всички команди, които приложението ще изпраща чрез Bluetooth, ще бъдат във байтов формат и всеки бит отговаря за определена функция. Таблица 1 показва формата на командните рамки, изпратени до GreenPAK.

Първите три бита, B0, B1 и B2, ще поддържат състоянието на RGB светодиодите в режим на директно управление чрез бутоните на предварително зададените цветове. По този начин, когато щракнете върху някой от тях, съответната стойност на бутона ще бъде изпратена, както е показано в таблица 2.

Битовете B3 и B4 съдържат командите „+“и „-“, които са отговорни за увеличаване и намаляване на ширината на импулса. Когато бутонът е натиснат, стойността на бита ще бъде 1, а когато бутонът бъде освободен, стойността на бита ще бъде 0.

Битовете B5 и B6 са отговорни за избора на щифта (цвета), през който PWM сигналът ще премине: цветовите обозначения на тези битове са показани в таблица 3. Последният бит, B7, е отговорен за активирането на автоматичния миксер.

Фигура 6 и фигура 7 демонстрират процеса на свързване на бутони с програмни блокове, които отговарят за изпращането на предишните стойности.

За да видите пълния дизайн на приложението, можете да изтеглите прикачения файл „.aia“с файловете на проекта и да го отворите в основния сайт.

Фигура 8 по -долу показва схемата на най -високо ниво.

Стъпка 5: Резултати

Контролерът е тестван успешно и смесването на цветовете, заедно с други функции, е показано, че работи по подходящ начин.

Заключение

В тази инструкция е изградена интелигентна верига с крушка, която да се управлява безжично от приложение за Android. GreenPAK CMIC, използван в този проект, също спомогна за съкращаване и вграждане на няколко основни компонента за контрол на светлината в една малка интегрална схема.

Препоръчано: