Предлагаемое устройство прежде всего ориентировано на украшение новогодней ёлки, но может быть использовано также для оформления праздничных иллюминаций. Праздничный антураж создают световая иллюминация и вращение ёлки с изменением направления. Устройство выполнено на микроконтроллерах АTtiny2313. Его функциональная схема приведена на рисунке 1.

Составные части устройства: плата клавиатуры, контроллеры световых эффектов № 1 и № 2 (далее – КСЭ № 1 и КСЭ № 2), реле времени № 1 и № 2 (далее – РВ № 1 и РВ № 2), блок управления вращением ёлки (далее – БУВ). Временна¢я диаграмма работы устройства приведена на рисунке 2.

РВ № 1 задаёт интервалы работы Т1 и Т2 КСЭ № 1 и КСЭ № 2. Т1 – интервал, в течение которого функционируют гирлянды КСЭ № 1. В течение данного интервала КСЭ № 1 реализует световой эффект, который задан заранее. Т2 – интервал, в течение которого функционируют гирлянды КСЭ № 2. В течение данного интервала КСЭ № 2 реализует световой эффект, который задан заранее.
Световые эффекты, реализуемые в КСЭ № 1 и КСЭ № 2, будут приведены ниже. РВ № 2 задаёт интервал вращения ёлки по часовой стрелке Т3 и интервал вращения ёлки против часовой стрелки Т4. Интервал Т1 равен интервалу Т2. Соответственно, Т3 равен Т4.

Принципиальная схема КСЭ № 1 приведена на рисунке 3. КСЭ № 1 и КСЭ № 2 совершенно идентичны. Принципиальная схема РВ № 1 приведена на рисунке 4. Принципиальная схема платы клавиатуры приведена на рисунке 5.


Соединители Х2, Х4 платы клавиатуры подключаются соответственно к соединителям Х1 КСЭ № 1 и КСЭ № 2. Соединители Х3, Х5 платы клавиатуры подключаются соответственно к соединителям Х2 РВ № 1 и РВ № 2. Галетный переключатель SA1 платы клавиатуры имеет четыре положения: «1», «2», «3», «4». Если SA1 установлен в положение «1», то клавиатура (кнопки S1…S5) подключена к КСЭ № 1 (кнопки S6…S8 при этом не задействованы). Если SA1 установлен в положение «2», то клавиатура (кнопки S1…S8) подключена к реле времени № 1. Если SA1 установлен в положение «3», то клавиатура (кнопки S1…S5) подключена к КСЭ № 2 (кнопки S6…S8 при этом не задействованы). Если же SA1 установлен в положение «4», то клавиатура (кнопки S1…S8) подключена к РВ № 2.
Пусть галетный переключатель SA1 платы клавиатуры установлен в положение «1».
Для описания световых эффектов, реализуемых в КСЭ № 1, введём следующие условные обозначения: индикатор HL1 – индикатор № 1, индикатор HL2 – индикатор № 2, индикатор HL64 – индикатор № 64. Конструктивно индикаторы № 1…№ 8 образуют собой гирлянду (далее – гирлянда № 1), соответственно, индикаторы № 9…№ 16 образуют гирлянду № 2 и т.д. Индикаторы № 57…№ 64 – гирлянда № 8. Считаем также, что конструктивно все индикаторы в гирлянде расположены в один ряд. Что касается ёлки, то на левой её стороне целесообразно разместить гирлянды с нечётными номерами, на правой – с чётными.
В интерфейс управления КСЭ № 1 входят: клавиатура (кнопки S1…S5 на плате клавиатуры), дисплей из двух цифровых индикаторов HG1, HG2. Число, индицируемое на индикаторе HG1, определяет номер светового эффекта, исполняемого в устройстве. Число, индицируемое на индикаторе HG2, определяет относительную скорость переключения индикаторов в выбранном световом эффекте. Данное число может изменяться в пределах от 1 до 9 с шагом 1.
Кнопки клавиатуры имеют следующее назначение:
- S1 (Δ) – инкремент числа, индицируемого на индикаторе HG1 (выбор номера выполняемого светового эффекта); инкремент числа, индицируемого на индикаторе HG2 (увеличение скорости);
- S2 (∇) – декремент числа, индицируемого на индикаторе HG1 (выбор номера выполняемого светового эффекта); декремент числа, индицируемого на индикаторе HG2 (уменьшение скорости);
- S3 (С) – старт/стоп (после нажатия на данную кнопку устройство реализует световой эффект, индицируемый на индикаторе HG1, со скоростью переключения, индицируемой на индикаторе HG2);
- S4 (В) – включить/выключить все индикаторы HL1…HL64 (после нажатия на данную кнопку включаются/выключаются все индикаторы HL1…HL64. Данная опция необходима для проверки работоспособности всех индикаторов в устройстве);
- S5 (Р) – кнопка выбора режима работы кнопок S1, S2 – задание светового эффекта или задание скорости (при выборе режима задания скорости у индикатора HG2 включается точка h).
Номера световых эффектов задаются кнопками S1, S2 и далее подтверждаются кнопкой S3. Световые эффекты, реализуемые в устройстве, аналогичны описанным в статье [3].
Алгоритм работы КСЭ № 1 следующий. Номер исполняемого светового эффекта задаётся кнопками S1, S2. Далее необходимо нажать кнопку S4 (В), при этом включится точка h в индикаторе HG2 дисплея. Далее кнопками S1, S2 задаётся скорость переключения индикаторов в выбранном световом эффекте. Исполнение эффекта начинается после нажатия кнопки S3 (С). Для исполнения другого светового эффекта (или для изменения скорости переключения индикаторов в исполняемом) необходимо нажать кнопку S3 (С) (остановить исполняемый световой эффект) и выполнить вышеуказанные операции. На 7-сегментном индикаторе HG1 буква B и цифра 8, а также буква D и цифра 0 индицируются одинаково, поэтому при индицировании букв B и D на 7-сегментном индикаторе HG1 включается точка h.
Рассмотрим основные функциональные узлы принципиальной схемы устройства. Рабочая частота микроконтроллера DD2 задаётся генератором с внешним резонатором ZQ1 на 10 МГц. С порта РВ микроконтроллер DD2 управляет индикаторами гирлянд № 1…№ 8. Соответственно, гирлянды управляются ключами, выполненными на транзисторах VT3…VT10. Данные ключи управляются с выводов синхронного регистра DD1. Резисторы R2…R9 – токоограничительные для индикаторов HL1…HL64. Данные индикаторы и индикаторы HG1, HG2 работают в режиме динамической индикации. Коды для включения индикаторов при функционировании динамической индикации поступают на вход порта PВ микроконтроллера DD2. Регистр DD1 управляет ключами VT1…VT10. Для функционирования клавиатуры задействован вывод 8 микроконтроллера DD2. Питающее напряжение поступает на плату с соединителя Х1. Конденсатор С5 фильтрует пульсации в цепи питания +5 В. Сразу после подачи питания на выводе 1 микроконтроллера DD2 через RC-цепь (резистор R10, конденсатор С6) формируется сигнал системного аппаратного сброса микроконтроллера. При инициализации во все разряды портов микроконтроллера DD1 записывается лог. 1.
Ключи на транзисторах VT3…VT10 закрыты, индикаторы HL1…HL64 выключены. С соединителя Х1 РВ № 1 на соединители Х2 КСЭ № 1 и КСЭ № 2 поступает питающее напряжение для питания гирлянд КСЭ № 1 и КСЭ № 2. Алгоритм работы РВ № 1 с КСЭ № 1 и КСЭ № 2 будет приведён ниже.
Программное обеспечение микроконтроллера DD2 обеспечивает реализацию алгоритма работы задаваемых световых эффектов в режиме динамической индикации. Задача по формированию временно¢го интервала для включения индикаторов на каждой гирлянде (или интервала переключения индикаторов и гирлянд) решена с помощью прерываний от таймера/счётчика 1 и счётчиков на регистрах r8 (sek1) и r13 (min1). Таймер/счётчик 1 формирует запрос на прерывание, счётчики на регистрах r8 и r13 подсчитывают количество, и устанавливается необходимый флаг (нулевой разряд регистра r19 (flo)). Скорость переключения индикаторов меняется путём изменения числа, загружаемого в регистр r13 (min1).
Программа состоит из трёх основных частей: процедуры инициализации, основной программы, работающей в замкнутом цикле, и подпрограммы обработки прерывания от таймера/счётчика 1. В подпрограмме обработки прерывания осуществляются формирование временно¢го интервала для включения индикаторов, опрос клавиатуры, работа динамической индикации, а также происходит выполнение всех световых эффектов, реализованных в устройстве. В памяти данных микроконтроллера DD1 с адресов 60Н…69Н организован буфер отображения для динамической индикации. По адресу 60Н размещён байт номера отображаемого светового эффекта. По адресу 61Н размещено число, задающее скорость переключения. Данные байты после перекодировки в режиме динамической индикации выводятся на дисплей устройства. 62Н…69Н – адреса, где хранятся текущие значения для индикаторов HL1…HL64 (гирлянд № 1…№ 8). Доступ к данным в адресном пространстве с помощью адресных указателей следующий: адреса гирлянд № 1…№ 8 и байты номеров светового эффекта и скорости загружаются в Y-регистр во фрагментах программы, где происходит выполнение светового эффекта, Z-регистр задействован только во фрагменте динамической индикации.
Разработанная программа на ассемблере занимает порядка 2 Кбайт памяти программ (flash-память программ) микроконтроллера, то есть память заполнена полностью. Как видно из схемы, аппаратно в микроконтроллере задействованы все ресурсы. Из периферийных устройств в микроконтроллере задействован только таймер/счётчик 1.
В КСЭ № 1 (КСЭ № 2) использованы резисторы С2-33Н-0,125, однако подойдут и любые другие с такой же мощностью рассеивания и погрешностью 5%. Конденсаторы С1…С4, С6 – типа К10-17а, С5 – типа К50-35. 7-сегментные индикаторы HG1, HG2 – типа HDSP-F501, индикаторы HL1…HL64 – типа КИПД40С20-Л4-П7.
Пусть галетный переключатель SA1 платы клавиатуры установлен в положение «2». Рассмотрим работу РВ № 1. Канал управления реле К1 собран на транзисторах VT1, VT2. Канал управляется с вывода 11 микроконтроллера DD1. С порта РВ микроконтроллер DD1 управляет клавиатурой (кнопки S1…S9) и динамической индикацией. Динамическая индикация собрана на транзисторах VT2…VT4, цифровых 7-сегментных индикаторах HG1…HG3. Резисторы R6…R13 – токоограничительные для сегментов индикаторов HG1…HG3. Коды для включения индикаторов HG1…HG3 при функционировании динамической индикации поступают на вход PВ микроконтроллера DD1. Для функционирования клавиатуры задействован вывод 7 микроконтроллера DD1.
Элементы интерфейса управления и контроля РВ № 1 имеют следующее назначение:
- S1 (Δ) – увеличение на единицу значения, индицируемого на дисплее, при установке времени в минутах (секундах); при удержании данной кнопки в нажатом состоянии более 5 с значение времени, индицируемое на дисплее, увеличивается на 5 единиц за 1 с;
- S2 (∇) – уменьшение на единицу значения, индицируемого на дисплее, при установке времени в минутах (секундах); соответственно, при удержании данной кнопки в нажатом состоянии более 5 с значение времени, индицируемое на дисплее, уменьшается на 5 единиц за 1 с;
- S3 (C) – старт/стоп (кнопка запуска/остановки устройства в режиме № 2. В рабочем цикле (который периодически повторяется) идёт обратный отсчёт заданных интервалов времени Т1 и Т2. С первым нажатием данной кнопки нагрузка подключается к сетевому напряжению, идёт обратный отсчёт заданного интервала Т1);
- S4 (Р) – режим (кнопка выбора режима работы (режим № 1 или режим № 2));
- S5 (В1) – выбор (кнопка выбора интервалов Т1 или Т2);
- S6 (В2) – выбор (кнопка выбора временно¢го режима работы (минуты или секунды));
- S7 (О) – обнуление (кнопка экстренного обнуления заданных параметров Т1 и Т2 и выключения нагрузки);
- S8 (В3) – вкл./выкл. (кнопка принудительного (ручного) включения/выключения нагрузки. Вне зависимости от того, в каком режиме находится устройство, каждое нажатие данной кнопки меняет состояние нагрузки на противоположное);
- S9 (ОБЩ. ПУСК) – одновременный запуск РВ № 1 и РВ № 2;
- HL1 – индикатор режима работы устройства: HL1 горит – режим № 2, HL1 погашен – режим № 1 (назначение режимов будет приведено ниже);
- HL2 – индикатор интервалов Т1 и Т2: если HL2 горит, то на дисплее индицируется интервал Т1; если HL2 погашен, то на дисплее индицируется интервал Т2.
Разряды индикации интерфейса имеют следующее назначение:
- 1-й разряд (индикатор НG3) отображает единицы минут (единицы секунд) интервалов Т1 и Т2;
- 2-й разряд (индикатор НG2) отображает десятки минут (десятки секунд) интервалов Т1 и Т2;
- 3-й разряд (индикатор НG1) отображает сотни минут (сотни секунд) интервалов Т1 и Т2.
Для РВ № 1 предусмотрено два режима работы: режим задания параметров – режим № 1 и рабочий режим – режим № 2. В режиме № 1 (режим задания параметров) с клавиатуры устройства задаются значения интервалов включения Т1 и выключения Т2. В данном режиме запрещён счёт времени. На выводе 11 микроконтроллера DD1 устанавливается лог. 1. Интервалы Т1 и Т2 могут быть заданы как в минутах, так и в секундах в диапазоне от 999 до 1 с дискретностью 1. Визуально интервалы Т1 и Т2 поочерёдно можно контролировать на 3-разрядном дисплее. В режиме № 2 (рабочий режим) идёт обратный отсчёт заданных интервалов Т1 и Т2 в рабочем цикле. В интервале времени Т1 на выводе 11 микроконтроллера DD1 устанавливается лог. 1 (реле К1 выключено). В интервал времени Т2 на выводе 11 микроконтроллера DD1 устанавливается лог. 0 (реле К2 включено). Периодически, один раз в секунду, мигает точка h индикатора HG3. Чтобы запустить РВ № 1, необходимо задать интервалы Т1, Т2, перевести его в режим № 2 и нажать кнопку S3 (C). При независимой работе РВ № 1 и РВ № 2 нужно задать соответствующие интервалы и нажать кнопку S3 (C). Для одновременного запуска РВ № 1 и РВ № 2, как уже упоминалось выше, необходимо нажать кнопку S9 (ОБЩ. ПУСК).
Сразу после подачи питания на выводе 1 микроконтроллера DD1 через RC-цепь (резистор R8, конденсатор С6) формируется сигнал системного аппаратного сброса микроконтроллера DD1, инициализируются регистры, счётчики, стек, таймер Т/С1, сторожевой таймер, порты ввода/вывода. При инициализации на выводе 11 микроконтроллера DD1 устанавливается лог. 1. На индикаторах HG1…HG3 индицируются нули. Индикатор HL1 погашен, индикатор HL2 горит. Функциональный узел динамической индикации РВ № 1 аналогичен КСЭ № 1, но, в отличие от КСЭ № 1, он 3-разрядный.
Алгоритм работы РВ № 1 в рабочем цикле (в режиме «Секунды») следующий. После подачи питания необходимо с клавиатуры в режиме № 1 задать необходимые параметры работы устройства – интервалы включения Т1 и выключения Т2. При установке интервалов Т1 и Т2 в устройстве, как уже упоминалось выше, запрещается отсчёт текущего времени. Данные параметры индицируются на дисплее (индикаторы HG1…HG3). Далее необходимо перейти в режим № 2. Устройство переходит в рабочий цикл сразу после нажатия кнопки «Старт/стоп» (S3) в режиме № 2, при этом загорается индикатор HL1. Периодически, один раз в секунду, мигает точка h индикатора HG3. Микроконтроллер DD1 устанавливает лог. 0 на выходе 11 (включение реле К1). Время (интервал включения Т1), индицируемое на дисплее, декрементируется с каждой секундой. Как только оно станет равно нулевому значению, микроконтроллер устанавливает лог. 1 на выходе 6 (выключение реле К1), при этом индикатор HL1 гаснет. Заданное значение Т1 переписывается в память данных микроконтроллера с адресов $066…$068 на адреса $060…$062. Теперь дисплей индицирует первоначально заданное значение времени, равное интервалу выключения Т2, которое хранится по адресам $063…$065. Реле К1 будет отключено в течение времени, равного интервалу выключения. Теперь время, индицируемое на дисплее (Т2), декрементируется с каждой секундой. Как только оно станет равно нулевому значению, микроконтроллер устанавливает лог. 0 на выходе 11 (включение реле К1), при этом загорается индикатор HL1. Заданное значение Т2 переписывается с адресов $069…$06В на адреса $063…$065. На дисплее снова индицируется первоначально заданное значение времени, равное интервалу включения Т1. Рабочий цикл завершён. Устройство работает совершенно аналогично в режиме «Минуты». В данном режиме интервалы Т1 и Т2 декрементируются с каждой минутой, при этом точка h индикатора HG3 также мигает один раз в секунду.
При выключенном реле К1 питающее напряжение 5 В поступает с РВ № 1 на гирлянды КСЭ № 1. При включённом реле К1 питающее напряжение 5 В поступает с РВ № 1 на гирлянды КСЭ № 2. То есть фактически гирлянды КСЭ № 1 и КСЭ № 2 работают поочерёдно. Это позволяет реализовать комбинацию различных световых эффектов. Игра мысли, полёт фантазии, непредсказуемость воображения, творческое хулиганство – всё это поможет в реализации любых других световых эффектов, не приведённых в статье, или при изменении параметров уже реализованных (изменение скорости переключения индикаторов, гирлянд, добавление в некоторые световые эффекты реверса или добавление в устройство каких-то дополнительных опций).
Разработанная программа на ассемблере занимает порядка 0,54 Кбайт памяти программ микроконтроллера. Потребление тока по каналу напряжения +5 В – не более 100 мА. На плате контроллера применены следующие элементы: конденсаторы С1, С2, С4 типа К10-17а, конденсаторы С3, C6 типа К50-35, резисторы типа С2-33Н-0,125, индикаторы HG1…HG3 зелёного цвета типа HDSP-F501.
Принципиальная схема БУВ ёлки приведена на рисунке 6.

Представленный в устройстве БУВ позволяет осуществлять вращение ёлки с заданной скоростью с изменением направления вращения в заданные интервалы времени (см. рис. 2б).
БУВ выполнен на базе привода НПФ «Электропривод». Привод включает в себя программируемый блок управления шаговыми двигателями SMSD-4.2 и шаговый двигатель. Данный блок управления предназначен для управления работой шаговых двигателей с максимальным током питания каждой из фаз двигателя не более 4,2 А по заданной программе. Внешний вид блока управления SMSD-4.2 представлен на рисунке 7.

К SMSD-4.2 можно подключать шаговые двигатели серии FL86ST, FL86TH и др. Максимально допустимый ток фазы шагового двигателя – 4,2 А. Данные шаговые двигатели могут поставляться с редукторами, например FL86STH65-2808AG, с максимально допустимым моментом до 250 кгс·м. Редуктор и шаговый двигатель, конечно, необходимо подбирать к каждой конкретной ёлке индивидуально. SMSD-4.2 может работать в режимах драйвера, контроллера, а также в ручном режиме [2].
Для работы SMSD-4.2 в составе БУВ его, согласно руководству по эксплуатации, нужно перевести в ручной режим. При этом скорость вращения вала двигателя (ёлки) регулируется вращением движка потенциометра в SMSD-4.2. Для изменения направления вращения необходимо замкнуть контакты «РЕВЕРС» и GND.
Принципиальная схема РВ № 2 отличается от РВ № 1 только подключением реле К1 к соединителю Х1 (см. рис. 6). Во всём остальном: алгоритм работы, программное обеспечение – РВ № 1 идентично РВ № 2. Алгоритм работы БУВ вместе с РВ № 2 следующий (см. рис. 2б). После подачи питающих напряжений на устройство необходимо галетный переключатель SA1 платы клавиатуры установить в положение «4», задать параметры (временны¢е интервалы Т3 и Т4) и нажать кнопку S3 (С) – «Старт». После окончания интервала Т3 на плате РВ № 1 включится реле К1 (контакты 11, 14 замыкаются) (понятно, что контакты «РЕВЕРС» и GND в SMSD-4.2 замыкаются). Ёлка меняет направление своего вращения и т. д.
Представленные в статье составные части устройства представляют собой функционально законченные «цифровые кубики», которые не требуют никакой настройки и отладки. Применяя на плате клавиатуры галетные или модульные переключатели с большим количеством направлений и положений, можно задействовать большее количество таких «кубиков», а значит увеличить функциональные возможности устройства в целом.
Дополнительные материалы к статье доступны для скачивания на сайте журнала (soel.ru).
Литература
- www.atmel.com
- www.electroprivod.ru
- Шишкин С. Устройство световых эффектов с управлением скоростью переключения и яркостью свечения // Современная электроника. 2017. № 7.
- Шишкин С. «Бегущие огни» на микроконтроллере AT89C4051 // Радио. 2010. № 11. с. 46–48.
Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

