Проект tinyAVR 6. Лампа для создания настроения

November 12, 2014 by admin Комментировать »

Здесь, как и в устройстве смешивания цветов из предыдущей главы (проект 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 с.: ил. — (Электроника)

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты