Тут, як і в пристрої змішування кольорів з попередньої глави (проект 3) також застосовується RGB-світлодіод. Проте мета описуваної лампи інша – створити світло будь-якого необхідного відтінку, щоб допомогти вам медитувати і розслабитися або просто вибрати освітлення під ваш настрій. У проекті змішування кольорів використовувався один RGB-світлодіод, а інтенсивність випромінювання складових його світлодіодів налаштовувалася потенціометрами (щоб створити потрібний колір). Кожен потенціометр встановлював інтенсивність в значення між 0 і 100% (використовувалося 256 рівнів), так що можна було згенерувати 16 мільйонів квітів. У новому пристрої застосований вже не один RGB-світлодіод, а декілька, т. К. Наша мета – забезпечити висвітлення. Лампа не має керування інтенсивністю світіння кожного світлодіода; замість цього вона дозволяє вибрати колір з таблиці кольорів, записаної у внутрішній незалежній пам’яті. Кожен колір в цій таблиці представлений трьома значеннями інтенсивності (для червоних, зелених і синіх світлодіодів). Яскравість світіння світлодіода змінюється за допомогою широтно-імпульсної модуляції з розрядністю в п’ять бітів (т. е. діапазон зміни інтенсивності кожного кольору становить 32 рівня). Блок-схема лампи показана на рис. 3.18.

Напруга живлення світлодіодів має становити 12 В, чому саме так, ми пояснимо пізніше. У цьому пристрої використані наявні в продажі стрічки RGB-світлодіодів (див. Рис. 3.23), що складаються з каскадують блоків. У метрової стрічці світлодіодів таких блоків приблизно десять. До складу кожного блоку входять набори червоних, зелених і синіх світлодіодів. Кожен набір складається їх трьох послідовно з’єднаних світлодіодів і обмежувального резистора (рис. 3.19).

Рис. 3.19. Блок світлодіодів

Лампа працює в двох режимах: що змінюється або фіксованого кольору (вибирається перемикачем “Режим”). У режимі фіксованого кольору за допомогою перемикача “Вибір кольору” можна вибирати необхідний відтінок. Мікроконтролер живиться від стабілізатора напруги на 5 В, який підключений до джерела живлення. У пристрої використані готові стрічки світлодіодів, проте при необхідності можна застосувати окремі потужні світлодіоди з високою яскравістю. Зручною буде конфігурація з трьох червоних, трьох зелених і трьох синіх світлодіодів потужністю по 1 Вт кожен. У цьому випадку доведеться так підібрати токоограничивающие резистори, щоб струм не перевищував 300 мА.

Специфікація проекту

Мета даного проекту-розробити систему освітлення на основі RGB * світлодіодів, колір якої буде вибирати користувач. Сумарна потужність світлодіодів кожного кольору повинна становити приблизно 10 Вт Потрібно передбачити режим поступової зміни кольору і перебору всіх наявних кольорів. Пристрій повинен живитися від зовнішнього джерела постійної напруги 12 В. Конструкція повинна передбачати можливість установки наборів світлодіодів або окремих світлодіодів високої яскравості потужністю по 1 Вт

Опис пристрою

Принципова схема пристрою наведена на рис. 3.20. Знову використаний стабілізатор напруги LM2940 на 5 В. Вхідна напруга може варіюватися від приблизно 6 до 20 В. Діод D1 – це діод Шотткі (1N5819), що працює як захисний (як уже пояснювалося раніше). Ємності С5 і С7 фільтрують викиди і небажані перешкоди джерела живлення. С4 і С6 включені на виході LM2940. С1 і СЗ припаяні близько контактів харчування мікроконтролера для додаткової розв’язки схеми по харчуванню.

Рис. 3.20. Принципова схема пристрою

Світлодіод LED1 – це індикатор включення / виключення (червоного кольору). Мікроконтролер – ATtiny861. У нього три апаратних каналу широтно-імпульсної модуляції на таймері Timerl (необхідні для управління трьома транзисторами ΤΙ, Т2 і ТЗ). і-р-і-транзистори (2SD789) з максимально допустимим струмом колектора 2 А включені за схемою з відкритим колектором. Перемикач SW3 призначений для вибору одного з двох режимів: безперервного або переривчастого, а кнопка S1 – для зміни кольору в переривчастому режимі. Світлодіод LED (2) служить для індикації вибраного режиму. SL2- це 4-контакт роз’єм для блоку світлодіодів. Перший контакт використовується для підключення анодів світлодіодів, а інші три контакту – для управління катодами червоних, синіх і зелених світлодіодів. Обмежують струм резистори підключаються зовні. На світлодіоди напруга VRAW надходить безпосередньо від джерела цітанія, щоб отримати великий струм. В іншому випадку струм був би обмежений максимальним вихідним струмом стабілізатора напруги.

При виконанні програми відбувається опитування стану перемикачів і якщо режим безперервний, то виконується постійна зміна скважности на трьох каналах апаратної ШІМ. У переривчастому режимі програма чекає натискання і відпускання кнопки S1 для оновлення значень шпаруватості ШІМ. Розрядність кожного каналу ШІМ – п’ять бітів.

Конструкція

Компонування плати в програмі EAGLE і принципову схему можна завантажити за посиланням: www.ayrgemus.com/tinyavrl.

Друкована плата однобічна (на стороні компонентів є всього декілька перемичок). Розпаяна плата показана на рис. 3.21 і 3.22.

Нам знадобилося 16 футів (близько 5 м) стрічки зі світлодіодами, накрутивши її на скляну трубку, ми отримали лампу для створення настрою (рис. 3.23). На рис. 3.24 показаний працюючий світлодіодний випромінювач, підключений до плати і відображає одну з комбінацій кольорів.

Рис. 3.21. Друкована плата (сторона компонентів)

Рис. 3.22. Друкована плата (сторона друкованих провідників)

Рис. 3.23. Конструкція світлодіодного випромінювача

Рис. 3.24. Зовнішній вигляд працюючої лампи

Програмування

Відкомпільований вихідний код (разом з файлом MAKEFILE) можна завантажити за посиланням: www.avrgenius.com/tinyavrl.

Тактова частота дорівнює 8 МГц. Контролер запрограмований за допомогою STK500 в режимі програмування ISP. Розглянемо найважливіші фрагменти коду.

while(1)

{

for(i=0;i<32;i++)

{

0CR1A = i;

for (j=0;j<32;j++)

{

0CR1B = j;

for(k=0;k<32;k++)

{

OCRID = k;

if(mode==CONTINUOUS)

_delay_ms(5 0 0);

else if(mode==DISCRETE)

{

whilet (PINA& (1«5) ) && (mode==DISCRETE) ) ;

// Чекати натискання кнопки _delay_ms (3 0);

while ( ( ! (PINA& (1«5) ) ) && (mode==DISCRETE) ) ;

// Чекати відпускання кнопки _delay_ms (3 0);

}

}

}

}

}

Лістинг 3.1-це головний нескінченний цикл програми. Він має три вкладених циклу for, які змінюють сигнали всіх апаратних каналів ШИМ (за допомогою регістрів OCRIA, ocrib і ocrid). Режим (mode) може бути або DISCRETE (переривчастий), або continuous (безперервний); він змінюється за допомогою переривання станом підключеного до перемикача контакту. Якщо режим переривчастий, то програма чекає натискання і відпускання перемикача на п’ятому контакті PORTA (це робиться в двох циклах while). Як тільки режим змінюється з переривчастого на безперервний, програма виходить з циклів while.

i…………………………………………………………………………………………………………………………………………..

ISR (PC INT_vec t)

{

_delay_ms (3 0); // усунення брязкоту GIFR = 1 «PCIF;

// Скидання встановленого через брязкоту перемикача прапора mode =

mode==CONTINUOUS ?DISCRETE:CONTINUOUS; if (mode==CONTINUOUS)

PORTA & = ~ (1 «7); / / Вимкнути світлодіод else

PORTA I = (1 «7); / / Включити світлодіод

}

Лістинг 3.2– процедура обробки переривання по зміні стану контакту, яка викликається при кожній зміні стану перемикача. Вона змінює режим і нескінченний цикл (який ми вже обговорювали) переривається. continuous і discrete – це макроси, які оголошені на початку програми. Залежно від режиму змінюється і стан світлодіода.

Крім цього, в решті частини коду є ініціалізація таймера Timerl і його апаратних каналів ШІМ.

Робота пристрою

За замовчуванням заданий безперервний режим роботи лампи: вона поступово змінює кольори підключених світлодіодів. Якщо яскравість світлодіодів досить велика, то ви побачите, як незвично поміняється освітлення навколо вас. У переривчастому режимі потрібний відтінок кольору вибирають за допомогою кнопки.

Джерело: Гадре, Д., Цікаві проекти на базі мікроконтролерів tinyAVR / Дхананья Гадре, Нігула Мелхотра: Пер. з англ. – СПб .: БХВ-Петербург, 2012. – 352 с .: іл. – (Електроніка)