В статье описан многоканальный фазовый регулятор на базе восьмиразрядных микроконтроллеров AT89C4051-24PU. В состав устройства входят блок коммутации и шесть фазовых регуляторов, каждый из которых способен управлять двумя нагрузками мощностью по 1,15 кВт (ограничена возможностями применённых сетевых фильтров). Кроме того, в каждом из сдвоенных регуляторов имеются часы реального времени. Устройство выполнено на доступной элементной базе и может быть повторено радиолюбителями средней квалификации.
Структурная схема 12-канального фазового регулятора представлена на рис. 1.
Здесь А1—А6 — идентичные по схеме, конструкции и алгоритму работы двухканальные фазовые регуляторы мощности; S1 — блок коммутации, с помощью которого осуществляется регулирование мощности, установка текущего времени и времени срабатывания двух будильников. Принципиальная схема одного двухканального регулятора мощности представлена на рис. 2, а блока коммутации — на рис. 3.
Розетки XS1-1 — XS1-6 блока коммутации предназначены для подключения вилок ХР4 регуляторов 1-6. В каждом регуляторе имеются два независимых один от другого фазовых регулятора и, кроме того, реализованы функции электронных часов. Подробно о регуляторе и его функциях будет рассказано ниже.
Переключатель SA1 блока коммутации имеет шесть положений. Если он установлен в положение «1», то кнопки SB1-SB4 подключены к регулятору 1 и можно задать параметры для этого регулятора. Соответственно, если он установлен в положение «2», можно задать параметры для регулятора 2 и т. д.
Рассмотрим подробно работу регулятора 1 (SA1 — в положении «1»). В устройстве реализованы следующие функции:
- два независимых канала фазоимпульсного регулирования;
- индикация текущего времени в 24-часовом формате на четырёхразрядном дисплее в режиме часы—минуты (режим “Часы 2“);
- установка текущего времени и его корректировка;
- работа в режиме минуты—секунды (режим «Часы 1“);
- два будильника, в моменты срабатывания которых включаются нагрузки, подключённые соответственно к соединителям ХР5 и ХР6 (телевизор, радиоприёмник, электронагреватель и др.), и на 10 с прерывистая световая и звуковая сигнализация с частотой повторения 1 Гц;
- подача короткого (длительностью 1 с) звукового бип-сигнала в начале каждого часа и принудительное отключение кнопкой световой и звуковой сигнализации в момент — срабатывания будильника.
Соответственно предусмотрены шесть режимов работы: «Часы 1”, «Часы 2», «Регулятор 1», «Регулятор 2», «Будильник 1” и «Будильник 2». Два независимых регулятора мощности собраны соответственно на симисторах VS1 и VS2. Регулирование мощности осуществляется фазоимпульсным управлением симисторами. Интервал регулирования выходной мощности каждого канала задаётся в относительных единицах от 0 до 99. Конечно, регуляторы с фазоимпульсным управлением создают помехи, но они просты в реализации и позволяют регулировать мощность таких нагрузок, как, например, лампы накаливания, нагреватели, асинхронные электродвигатели переменного тока и т. п.
В интерфейс регулятора входят кнопки SB1—SB4 (рис. 3), светодиодные полосы HL1, HL2 и дисплей из шести цифровых семиэлементных индикаторов HG1—HG6 (см. рис. 2). Назначение кнопок следующее:
- SB1 («Р» — «Режим”) — выбор режима работы устройства в замкнутом цикле («Часы Г—»Часы 2″—»Регулятор 1″— «Регулятор 2″—»Будильник 1”—»Будильник 2″—»Часы 1» и т. д.). После подачи питания устройство устанавливается в режим «Часы 1», каждое нажатие кнопки переводит его в следующий режим;
- SB2 («▲” — «Больше») — увеличение на единицу значения каждого разряда при установке времени в режимах «Часы 1”, «Часы 2», а также времени включения будильников в режимах «Будильник 1”, «Будильник 2» и увеличение значения мощности в режимах «Регулятор 1”, «Регулятор 2»; нажатие на данную кнопку увеличивает на единицу выбранный разряд во всех режимах; принудительное выключение звукового и светового сигналов при включении будильников (выполняется только в режимах «Часы 1», «Часы 2», «Будильник 1”, «Будильник 2»);
- SB3 (”▼” — «Меньше») — уменьшение значения выходной мощности регуляторов в режимах «Регулятор 1», «Регулятор 2» (каждое нажатие на данную кнопку уменьшает на единицу выбранный разряд в указанных режимах);
- SB4 («В” — «Выбор”) — выбор разряда при установке текущих значений во всех указанных режимах (в выбранном разряде включается децимальная точка h). При первом нажатии на кнопку точка h включается у первого разряда (индикатор HG6), при втором — у второго (индикатор HG5) и т. д.
В любом режиме работы устройства каждая кнопка выполняет только одну функцию (кроме выключения звукового и светового сигналов при включении будильников). Разряды индикации интерфейса имеют следующее назначение (справа—налево по рис. 2):
- 1-й разряд (индикатор HG6) отображает единицы минут в режимах «Часы 2» и «Будильник 1», «Будильник 2», единицы секунд — в режиме «Часы 1», младший разряд задаваемого значения мощности регуляторов — в режимах «Регулятор 1» и «Регулятор 2”;
- 2-й разряд (индикатор HG5) — десятки минут в режимах «Часы 2» и «Будильник 1», «Будильник 2», десятки секунд в режиме «Часы 1», старший разряд задаваемого значения мощности регуляторов — в режимах «Регулятор 1» и «Регулятор 2»;
- 3-й разряд (индикатор HG4) — дефис (элемент д) с периодом включения 1 с в режимах «Часы 1» и «Часы 2»; в режимах «Регулятор 1» и «Регулятор 2» этот элемент погашен, а в режимах «Будильник 1» и «Будильник 2» постоянно включён;
- 4-й разряд (индикатор HG3) — единицы часов в режимах «Часы 2», «Будильник 1» и «Будильник 2», единицы минут — в режиме «Часы 1»; в режимах «Регулятор 1» и «Регулятор 2» этот разряд гасится;
- 5-й разряд (индикатор HG2) — десятки часов в режимах «Часы 2» и «Будильник 1», «Будильник 2», десятки минут в режиме «Часы 1»; в режимах «Регулятор 1 ” и «Регулятор 2» разряд гасится;
- 6-й разряд (индикатор HG1) — текущий режим работы устройства: в режиме «Часы 1» на нём индицируется 0, в режиме «Часы 2» — 1, в режимах «Регулятор 1», «Регулятор 2», «Будильник 1», «Будильник 2» — соответственно 2, 3,4 и 5.
После включения питания устройство переходит в режим “Часы 1″. Чтобы установить текущее время, необходимо нажатием на кнопку SB 1 войти в режим «Часы 2» (на индикаторе HG1 должна появиться цифра 1), после чего однократно нажать на кнопку SB4. При этом будет выбран разряд единиц минут (начнёт светиться точка h у индикатора HG6).
Требуемое значение разряда устанавливают кнопками SB2 и SB3. При следующем нажатии на SB4 выбирается разряд десятков минут (точка h включается у индикатора HG5) и т. д. После установки значения в разряде десятков часов (индикатор HG2) нажимают на кнопку SB4 ещё раз, разрешая тем самым счёт времени.
Для установки значения мощности в канале 1 необходимо кнопкой SB1 выбрать режим работы «Регулятор 1» (на индикаторе HG1 должна светиться цифра 2). Затем кнопкой SB4 выбрать разряд и кнопками SB2 («Больше») и SB3 («Меньше) установить требуемое значение мощности.
При установке времени в режиме «Часы 2» отсчёт текущего времени запрещается, во всех остальных режимах он разрешён. После установки времени будильников 1 и 2 (закончен перебор разрядов кнопкой SB4) зажигаются соответственно световые полосы HL1 и HL2. Светящаяся полоса сигнализирует о том, что установленное время будильника записано в память микроконтроллера (при необходимости его можно перепрограммировать). При совпадении текущего времени с установленным временем в режимах «Будильник 1» и «Будильник 2» на 10 с включается прерывистая звуковая (НА1) и световая (HL1) сигнализация с интервалами включения и выключения 0,5 с. По окончании этого времени включённая световая полоса HL1 гаснет.
Рассмотрим основные функциональные узлы регулятора 1 (см. рис. 2). Его основа — микроконтроллер DD1, рабочая частота которого задана генератором с внешним кварцевым резонатором ZQ1 на 10 МГц. На транзисторных оптронах сборки U1 собран датчик сетевого напряжения. Он отслеживает моменты перехода сетевого напряжения через нуль. Выходное напряжение датчика с резистора R8 поступает на вывод 7 микроконтроллера. Канал регулирования мощности 1 собран на симисторе VS1 и оптроне U2 и управляется сигналом с вывода 8 DD1. Нагрузку подключают к соединителю ХР2. Второй канал собран на симисторе VS2 и оптроне U3 и управляется сигналом с вывода 9 микроконтроллера. Нагрузку подключают к соединителю ХР3. Для уменьшения уровня создаваемых регуляторами помех они включены в сеть через сетевые фильтры Z1 и Z2.
Динамическая индикация выполнена на микросхемах DD2, DD3, транзисторах VT1 —VT5 и цифровых семиэлементных индикаторах HG1—HG6. Регистр DD2 служит для увеличения числа линий портов микроконтроллера и управляет внутренними исполнительными устройствами: звуковой и световой сигнализацией (соответственно пьезоэлектрическим излучателем НА1 и световыми полосами HL1 и HL2), симисторными оптронами U4, U5, а также разрядом на индикаторе HG1. Резисторы R9—R15 ограничивают ток через элементы цифровых индикаторов.
Сигнал с выхода 3 (вывод 6) регистра DD2 через резистор R26 периодически (с периодом 1 с) включает и выключает элемент g индикатора HG4 в режимах «Часы 1» и «Часы 2». Сигнал с выхода 4 (вывод 9) регистра DD2 через резистор R27 включает точку h в одном из выбранных индикаторов HG2, HG3, HG5, HG6. Цифровая часть устройства гальванически развязана от сети.
Программа микроконтроллера управляет работой электронных часов и обеспечивает реализацию фазоимпульсного управления симисторными регуляторами мощности. Основная задача «часовой» части программы — формирование точных временных интервалов длительностью 1 с — решена с помощью прерываний от таймера TF0. В цикле подпрограммы обработки прерывания таймера TF0 через каждые 80 мкс микроконтроллер опрашивает состояние вывода 7. Счётчики на регистрах R4, R6 подсчитывают число прерываний, и когда оно становится равным определенному значению, текущее время увеличивается на секунду. Корректировка текущего времени происходит каждый час. В данном устройстве за сутки часы отстают примерно на 6 с, в быту это вполне приемлемо. Прерывания от таймера TFO обеспечивают и динамическую индикацию.
Назовём условно байты, которые микроконтроллер периодически (с периодом 3 мс) записывает в свой порт Р1 и синхронный регистр DD2 соответственно байтами индикации и состояния. Младшая тетрада байта индикации поступает на вход дешифратора DD3 и определяет значение разряда, а разряды старшей тетрады через транзисторы VT2—VT5 управляют индикаторами HG2, HG3, HG5, HG6 в динамической индикации. Транзистор VT1 и соответственно индикатор HG1 управляются сигналом с вывода 12 регистра DD2. В режимах «Регулятор 1” и «Регулятор 2» индикаторы HG2 и HG3 гасятся. Для гашения индикатора необходимо, чтобы в младшей тетраде байта индикации присутствовал код F.
Уровень лог. 0 на выводе 16 микроконтроллера открывает транзистор VT2 и включает индикатор HG2, сигнал такого же уровня на выводе 17 открывает транзистор VT3 и включает индикатор HG3 и т. д. Младшая тетрада представляет собой двоично-кодированное десятичное число и через дешифратор DD3 управляет элементами всех индикаторов, кроме HG4. С включением индикаторов HG2, HG3, HG5, HG6 микроконтроллер опрашивает состояние своего входа INTO (Р3.2; вывод 6 DD1). При любой нажатой кнопке SB1— SB4 на этом входе с включением указанных индикаторов присутствует низкий уровень. Таким образом, каждая кнопка блока коммутации «привязана» к «своему» разряду в старшей тетраде байта индикации.
Алгоритм работы программы фазоимпульсного регулятора рассмотрим на примере канала 1. Осциллограммы, поясняющие работу регулятора, приведены на рис. 4. В каждом полупериоде сетевого напряжения (рис. 4, а) микроконтроллер запускающим импульсом с вывода 8 длительностью 80 мкс (рис. 4, в) включает симистор VS1 через оптрон U2. Значение мощности в нагрузке, подключённой к соединителю ХР2, зависит от того, как долго симистор включён в течение каждого полупериода сетевого напряжения. Для того чтобы значение мощности в нагрузке увеличивалось с увеличением значения задаваемой мощности на индикаторе устройства, а также для получения дискретности регулирования, равной 1 %, необходимо, чтобы импульс включения симистора смещался (справа—налево по рис. 4, б) с шагом 100 мкс с момента прохождения сетевого напряжения через нуль при увеличении на единицу значения задаваемой мощности на индикаторе устройства.
Запускающий импульс подаётся с некоторой задержкой относительно момента прохождения сетевого напряжения через «нуль». Моменту перехода соответствует лог. 0 на выводе 7 микроконтроллера (рис. 4, б). Время задержки определяется числом на индикаторе устройства в режиме «Регулятор 1”, которое может принимать значение от 0 до 99. Подпрограмма преобразует данное двухразрядное двоично-десятичное число в однобайтное двоичное. Это число загружается в счётчик (регистр R7), который реализует временную задержку. Как уже упоминалось, микроконтроллер опрашивает выход датчика сети каждые 80 мкс. В момент прохождения сетевого напряжения через нуль и происходит запуск счётчика. При изменении кнопкой индицируемого на индикаторе числа в режиме «Регулятор 1» изменяется время задержки включения управляющего импульса на включение симистора VS1. То есть меняются момент включения симистора в каждом полупериоде сетевого напряжения и эффективное напряжение на нагрузке, подключённой к соединителю ХР2. Аналогично работает второй канал устройства, регулирующий мощность в нагрузке, подключённой к соединителю ХР3.
Угол регулирования симистора в зависимости от тока нагрузки неодинаковый. Реально в устройстве интервал регулирования мощности 100-ваттной лампы накаливания по индикатору составляет от 18 до 97. Иными словами, можно задать 79 уровней яркости. Это необходимо в тех случаях, когда лампа используется в качестве нагревательного элемента. Для более быстрого изменения яркости (для освещения, как показывает практика, такого большого числа уровней не нужно) можно изменять только старший разряд относительного диапазона регулирования задаваемой мощности.
Коротко о программе. В памяти данных микроконтроллере с адреса 2ВН по 48Н организован буфер отображения для динамической индикации. Младшая тетрада каждого байта в буфере отображения представляет собой двоично- кодированное десятичное число, которое определяет значение разряда, а старшая тетрада определяет номер разряда в динамической индикации. Таким образом, в каждом байте буфера определено значение числа и его место при выводе на индикацию. По своему функциональному назначению в зависимости от режима работы устройства адресное пространство буфера разбито на шесть функциональных групп:
- 2ВН—2FH — адреса, где хранится текущее в рюмя в минутах и секундах (адреса выводятся на индикацию в режиме «Часы 1»);
- 30Н—34Н — адреса, где хранится текущее в рюмя в часах и минутах (выводятся на индикацию в режиме «Часы 2»);
- 35Н—39Н — область хранения заданного значения регулируемой мощности канала регулирования 1 (эти адреса выводятся на индикацию в режиме «Регулятор Г);
- 3АН—3ЕН — область хранения заданного значения регулируемой мощности канала регулирования 2 (адреса выводятся на индикацию в режиме «Регулятор 2»);
- 3FH—43Н — область хранения времени включения «Будильника 1» (адреса выводятся на индикацию в режиме «Будильник 1»);
- 44Н—48Н — область хранения времени включения «Будильника 2» (адреса выводятся на индикацию в режиме «Будильник 2»).
Каждый байт из функциональной группы цикла в подпрограмме обработки прерывания таймера TF0 выводится в порт Р1 микроконтроллера DD1. Старшая тетрада байта индикации представляет собой код «бегущий ноль». Таким образом, записывая в цикле поочерёдно в порт Р1 байты из функциональной группы буфера, мы получаем режим динамической индикации. После записи байта индикации в порт Р1 начинается опрос кнопок. Нажатием на кнопку SB1 единица в регистре R2 сдвигается влево и тем самым задаётся один из вышеуказанных пяти режимов работы. В регистр R0 записывается первый адрес функциональных групп. Через каждые 3 мс в подпрограмме обработки прерывания регистр R0 инкрементируется.
В основной программе происходят счёт и коррекция текущего времени, установка времени включения будильников, сравнение текущего времени с временем будильника, включение световых и звуковых сигналов, перевод двухразрядного двоично-десятичного числа (значение уровня задаваемой мощности на индикаторе устройства) в режимах «Регулятор 1» и «Регулятор 2» в однобайтное двоичное для реализации алгоритма фазоимпульсного управления.
Разработанная программа на ассемблере занимает около 3,7 кБайт памяти программ микроконтроллера.
Каждый из регуляторов и блок коммутации смонтированы на отдельных макетных платах размерами 120×80 мм. При монтаже регуляторов желательно отделить цифровую часть устройства от сетевой. Все резисторы — С2-ЗЗН с мощностью рассеяния 0,125 Вт, но подойдут и любые другие с такой же мощностью рассеяния и допустимым отклонением сопротивления от номинала ±5%. Конденсаторы C1, С4 — оксидные импортные, С2, СЗ — керамические К10-17. Между выводами питания (+5 В и общим проводом) микроконтроллера DD1 и регистра DD2 полезно установить блокировочные конденсаторы К10-17 ёмкостью 0,1 мкФ.
В дисплее целесообразно выделить разряд, индицирующий текущий режим работы устройства (индикатор HG1), на фоне остальных разрядов. Поэтому для данного разряда выбран семиэлементный индикатор красного цвета свечения HDSP-F001 (подойдёт HDSP-F151); индикаторы HG2—HG6 — зелёного цвета свечения HDSP-F501 (подойдут любые другие с общим анодом и приемлемой яркостью свечения). В индикаторе HG4 для формирования знака используется только сегмент д. Ток через элементы индикаторов определяется нагрузочной способностью дешифратора DD3. Для КР514ИД2 максимально допустимый ток каждого выхода — 22 мА. Световые полосы HL1, HL2 — KB-2300EW красного цвета свечения.
Ток через каждый канал регулирования мощности ограничен предельно допустимым током 5 А через сетевой фильтр ФС-220 (Z1, Z2). При небольших нагрузках, а также в случае, если требования по уровню помех не очень высоки, сетевые фильтры можно исключить. Нагрузки подключают к устройству через вилки MPW-2 (ответная часть — розетки MHU-2). Вместо них можно применить клеммники ТВ-10-2. Если номинальная мощность нагрузки в канале регулирования превышает 100 Вт, то симистор следует установить на соответствующий теплоотвод. Симистор TIC236M, допустимый ток которого 12 А, позволяет управлять нагрузкой мощностью до 1,5 кВт. Возможная замена — отечественный симистор КУ208Г, однако он обладает значительно худшей чувствительностью: для надёжного срабатывания через управляющий электрод этого симистора должен протекать ток не менее 250 мА, поэтому сопротивление резисторов R1 и R3 необходимо уменьшить до 100 Ом. Для нагрузок мощностью до 2 кВт можно использовать симисторы с допустимым током до 16 А, например TIC246N. Целесообразно измерить реальные значения тока управления и удержания применяемых симисторов, чтобы оценить пригодность симистора для работы с конкретной, особенно маломощной нагрузкой.
Применённые в устройстве симисторные оптроны S202SE2 фирмы SHARP (U4, U5) могут коммутировать ток до 8 А. Их включение происходит вблизи перехода сетевого напряжения через нуль. Возможно применение оптронов S202S02, а если коммутируемый ток в нагрузке не превышает 2 А, то и S202TO1. Потребление тока от источника питания напряжением 5 В в регуляторах мощности не превышает 80 мА.
Конденсатор С1 блока коммутации — оксидный импортный. Галетный переключатель SA1 — ПГ2-12-6П8Н (на шесть положений и восемь направлений). Кнопочные выключатели SB1— SB4 — ПКН125 или подобные.
В устройстве не предусмотрено никаких настроек и регулировок, и если монтаж выполнен правильно, а все детали исправны, то оно начинает работать сразу после включения напряжения питания. При проверке каналов регулирования мощности первое включение лучше сделать при небольшой нагрузке, например, с лампой накаливания мощностью 20…30 Вт. Целесообразно сначала проверить канал регулирования мощности 1, а затем 2. Для этого необходимо войти в режим «Регулятор 1” и, изменяя с клавиатуры уровень мощности по индикатору, проконтролировать изменение яркости свечения лампы. Если лампа вообще не включилась, то нужно проконтролировать сигнал с датчика сети (вывод 7 микроконтроллера DD1) — наличие импульсов с уровнем лог. 0 длительностью 1,..1,2 мс и периодом 10 мc (рис. 4, б).
Программа микроконтроллера имеется по адресу ftp://ftp.radio.ru/pub/2015/11/freg12.zip
Автор: С. ШИШКИН, г. Саров Нижегородской обл.
Источник: журнал Радио №11, 2015