В статье описан многоканальный фазовый регулятор на базе восьмиразрядных микроконтроллеров AT89C4051-24PU. В состав устройства входят блок коммутации и шесть фазовых регуляторов, каждый из которых способен управлять двумя нагрузками мощностью по 1,15 кВт (ограничена возможностями применённых сетевых фильтров). Кроме того, в каждом из сдвоенных регуляторов имеются часы реального времени. Устройство выполнено на доступной элементной базе и может быть повторено радиолюбителями средней квалификации.
Структурная схема 12-канального фазового регулятора представлена на рис. 1. Здесь А1- А6 - идентичные по схеме, конструкции и алгоритму работы двухканальные фазовые регуляторы мощности; S1 - блок коммутации, с помощью которого осуществляется регулирование мощности, установка текущего времени и времени срабатывания двух бу-дильников. Принципиальная схема одного двухканального регулятора мощности представлена на рис. 2, а блока коммутации - на рис. 3.
Рис. 1. Структурная схема 12-канального фазового регулятора
Рис. 2. Принципиальная схема одного двухканального регулятора мощности
Рис. 3. Принципиальная схема блока коммутации
Розетки XS1-1 - XS1-6 блока коммутации предназначены для подключения вилок ХР4 регуляторов 1-6. В каждом регуляторе имеются два независимых один от другого фазовых регулятора и, кроме того, реализованы функции электронных часов. Подробно о регуляторе и его функциях будет рассказано ниже.
Переключатель SA1 блока коммутации имеет шесть положений. Если он установлен в положение "1", то кнопки SB1-SB4 подключены к регулятору 1 и можно задать параметры для этого регулятора. Соответственно, если он установлен в положение "2", можно задать параметры для регулятора 2 и т. д.
Рассмотрим подробно работу регулятора 1 (SA1 - в положении "1"). В устройстве реализованы следующие функции:
- два независимых канала фазоимпульсного регулирования;
- индикация текущего времени в 24-часовом формате на четырёхразрядном дисплее в режиме часы-минуты (режим "Часы 2");
- установка текущего времени и его корректировка;
- работа в режиме минуты-секунды (режим "Часы 1");
- два будильника, в моменты срабатывания которых включаются нагрузки, подключённые соответственно к соединителям ХP5 и ХP6 (телевизор, радиоприёмник, электронагреватель и др.), и на 10 с прерывистая световая и звуковая сигнализация с частотой повторения 1 Гц;
- подача короткого (длительностью 1 с) звукового бип-сигнала в начале каждого часа и принудительное отключение кнопкой световой и звуковой сигнализации в момент срабатывания будильника.
Соответственно предусмотрены шесть режимов работы: "Часы 1", "Часы 2", "Регулятор 1", "Регулятор 2", "Будильник 1" и "Будильник 2". Два независимых регулятора мощности собраны соответственно на симис-торах VS1 и VS2. Регулирование мощности осуществляется фазоимпульсным управлением симисторами. Интервал регулирования выходной мощности каждого канала задаётся в относительных единицах от 0 до 99. Конечно, регуляторы с фазоимпульсным управлением создают помехи, но они просты в реализации и позволяют регулировать мощность таких нагрузок, как, например, лампы накаливания, нагреватели, асинхронные электродвигатели переменного тока и т. п.
В интерфейс регулятора входят кнопки SB1-SB4 (рис. 3), светодиодные полосы HL1, HL2 и дисплей из шести цифровых семиэлементных индикаторов HG1-HG6 (см. рис. 2). Назначение кнопок следующее:
- SB1 ("Р" - "Режим") - выбор режима работы устройства в замкнутом цикле ("Часы 1"-"Часы 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-й разряд (индикатор НG6) отображает единицы минут в режимах "Часы 2" и "Будильник 1", "Будильник 2", единицы секунд - в режиме "Часы 1", младший разряд задаваемого значения мощности регуляторов - в режимах "Регулятор 1" и "Регулятор 2";
- 2-й разряд (индикатор НG5) - десятки минут в режимах "Часы 2" и "Будильник 1", "Будильник 2", десятки секунд в режиме "Часы 1", старший разряд задаваемого значения мощности регуляторов - в режимах "Регулятор 1" и "Регулятор 2";
- 3-й разряд (индикатор НG4) - дефис (элемент g) с периодом включения 1 с в режимах "Часы 1" и "Часы 2"; в режимах "Регулятор 1" и "Регулятор 2" этот элемент погашен, а в режимах "Будильник 1" и "Будильник 2" постоянно включён;
- 4-й разряд (индикатор НG3) - единицы часов в режимах "Часы 2", "Будильник 1" и "Будильник 2", единицы минут - в режиме "Часы 1"; в режимах "Регулятор 1" и "Регулятор 2" этот разряд гасится;
- 5-й разряд (индикатор НG2) - десятки часов в режимах "Часы 2" и "Будильник 1", "Будильник 2", десятки минут в режиме "Часы 1"; в режимах "Регулятор 1" и "Регулятор 2" разряд гасится;
- 6-й разряд (индикатор НG1) - текущий режим работы устройства: в режиме "Часы 1" на нём индицируется 0, в режиме "Часы 2" - 1, в режимах "Регулятор 1", "Регулятор 2", "Будильник 1", "Будильник 2" - соответственно 2, 3, 4 и 5.
После включения питания устройство переходит в режим "Часы 1". Чтобы установить текущее время, необходимо нажатием на кнопку SB1 войти в режим "Часы 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 с включается прерывистая звуковая (HА1) и световая (HL1) сигнализация с интервалами включения и выключения 0,5 с. По окончании этого времени включённая световая полоса HL1 гаснет.
Рассмотрим основные функциональные узлы регулятора 1 (см. рис. 2). Его основа - микроконтроллер DD1, рабочая частота которого задана генератором с внешним кварцевым резонатором ZQ1 на 10 МГц. На транзисторных оптронах сборки U1 собран датчик сетевого напряжения. Он отслеживает моменты перехода сетевого напряжения через нуль. Выходное напряжение датчика с резистора R8 поступает на вывод 7 микроконтроллера. Канал регулирования мощности 1 собран на симисторе VS1 и оптроне U2 и управляется сигналом с вывода 8 DD1. Нагрузку подключают к соединителю ХP2. Второй канал собран на симисторе VS2 и оптроне U3 и управляется сигналом с вывода 9 микроконтроллера. Нагрузку подключают к соединителю ХP3. Для уменьшения уровня создаваемых регуляторами помех они включены в сеть через сетевые фильтры Z1 и Z2.
Динамическая индикация выполнена на микросхемах DD2, DD3, транзисторах VT1 -VT5 и цифровых семиэлементных индикаторах HG1-HG6. Регистр DD2 служит для увеличения числа линий портов микроконтроллера и управляет внутренними исполнительными устройствами: звуковой и световой сигнализацией (соответственно пьезоэлектрическим излучателем HA1 и световыми полосами 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 с, в быту это вполне приемлемо. Прерывания от таймера TF0 обеспечивают и динамическую индикацию.
Назовём условно байты, которые микроконтроллер периодически (с периодом 3 мс) записывает в свой порт P1 и синхронный регистр 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 (P3.2; вывод 6 DD1). При любой нажатой кнопке SB1-SB4 на этом входе с включением указанных индикаторов присутствует низкий уровень. Таким образом, каждая кнопка блока коммутации "привязана" к "своему" разряду в старшей тетраде байта индикации.
Алгоритм работы программы фазоимпульсного регулятора рассмотрим на примере канала 1. Осциллограммы, поясняющие работу регулятора, приведены на рис. 4. В каждом полупериоде сетевого напряжения (рис. 4,а) микроконтроллер запускающим импульсом с вывода 8 длительностью 80 мкс (рис. 4,в) включает симистор VS1 через оптрон U2. Значение мощности в нагрузке, подключённой к соединителю ХP2, зависит от того, как долго симистор включён в течение каждого полупериода сетевого напряжения. Для того чтобы значение мощности в нагрузке увеличивалось с увеличением значения задаваемой мощности на индикаторе устройства, а также для получения дискретности регулирования, равной 1 %, необходимо, чтобы импульс включения симистора смещался (справа-налево по рис. 4,б) с шагом 100 мкс с момента прохождения сетевого напряжения через нуль при увеличении на единицу значения задаваемой мощности на индикаторе устройства.
Рис. 4. Осциллограммы, поясняющие работу регулятора
Запускающий импульс подаётся с некоторой задержкой относительно момента прохождения сетевого напряжения через "нуль". Моменту перехода соответствует лог. 0 на выводе 7 микроконтроллера (рис. 4,б). Время задержки определяется числом на индикаторе устройства в режиме "Регулятор 1", которое может принимать значение от 0 до 99. Подпрограмма преобразует данное двухразрядное двоично-десятичное число в однобайтное двоичное. Это число загружается в счётчик (регистр R7), который реализует временную задержку. Как уже упоминалось, микроконтроллер опрашивает выход датчика сети каждые 80 мкс. В момент прохождения сетевого напряжения через нуль и происходит запуск счётчика. При изменении кнопкой индицируемого на индикаторе числа в режиме "Регулятор 1" изменяется время задержки включения управляющего импульса на включение симистора VS1. То есть меняются момент включения симистора в каждом по-лупериоде сетевого напряжения и эффективное напряжение на нагрузке, подключённой к соединителю ХР2. Аналогично работает второй канал устройства, регулирующий мощность в нагрузке, подключённой к соединителю ХP3.
Угол регулирования симистора в зависимости оттока нагрузки неодинаковый. Реально в устройстве интервал регулирования мощности 100-ваттной лампы накаливания по индикатору составляет от 18 до 97. Иными словами, можно задать 79 уровней яркости. Это необходимо в тех случаях, когда лампа используется в качестве нагревательного элемента. Для более быстрого изменения яркости (для освещения, как показывает практика, такого большого числа уровней не нужно) можно изменять только старший разряд относительного диапазона регулирования задаваемой мощности.
Коротко о программе. В памяти данных микроконтроллера с адреса 2BН по 48Н организован буфер отображения для динамической индикации. Младшая тетрада каждого байта в буфере отображения представляет собой двоично-кодированное десятичное число, которое определяет значение разряда, а старшая тетрада определяет номер разряда в динамической индикации. Таким образом, в каждом байте буфера определено значение числа и его место при выводе на индикацию. По своему функциональному назначению в зависимости от режима работы устройства адресное пространство буфера разбито на шесть функциональных групп:
2BН-2FH - адреса, где хранится текущее время в минутах и секундах (адреса выводятся на индикацию в режиме "Часы 1");
30Н-34H - адреса, где хранится текущее время в часах и минутах (выводятся на индикацию в режиме "Часы 2");
35Н-39Н - область хранения заданного значения регулируемой мощности канала регулирования 1 (эти адреса выводятся на индикацию в режиме "Регулятор 1");
3АН-3ЕН - область хранения заданного значения регулируемой мощности канала регулирования 2 (адреса выводятся на индикацию в режиме "Регулятор 2");
3FН-43Н - область хранения времени включения "Будильника 1" (адреса выводятся на индикацию в режиме "Будильник 1");
44Н-48Н - область хранения времени включения "Будильника 2" (адреса выводятся на индикацию в режиме "Будильник 2").
Каждый байт из функциональной группы цикла в подпрограмме обработки прерывания таймера TF0 выводится в порт P1 микроконтроллера DD1. Старшая тетрада байта индикации представляет собой код "бегущий ноль". Таким образом, записывая в цикле поочерёдно в порт P1 байты из функциональной группы буфера, мы получаем режим динамической индикации. После записи байта индикации в порт Р1 начинается опрос кнопок. Нажатием на кнопку SB1 единица в регистре R2 сдвигается влево и тем самым задаётся один из вышеуказанных пяти режимов работы. В регистр R0 записывается первый адрес функциональных групп. Через каждые 3 мс в подпрограмме обработки прерывания регистр R0 инкрементируется.
В основной программе происходят счёт и коррекция текущего времени, установка времени включения будильников, сравнение текущего времени с временем будильника, включение световых и звуковых сигналов, перевод двухразрядного двоично-десятичного числа (значение уровня задаваемой мощности на индикаторе устройства) в режимах "Регулятор 1" и "Регулятор 2" в однобайтное двоичное для реализации алгоритма фазоимпульсного управления.
Разработанная программа на ассемблере занимает около 3,7 кБайт памяти программ микроконтроллера.
Каждый из регуляторов и блок коммутации смонтированы на отдельных макетных платах размерами 120x80 мм. При монтаже регуляторов желательно отделить цифровую часть устройства от сетевой. Все резисторы - С2-33Н с мощностью рассеяния 0,125 Вт, но подойдут и любые другие с такой же мощностью рассеяния и допустимым отклонением сопротивления от номинала ±5%. Конденсаторы С1, С4 - оксидные импортные, С2, С3 - керамические К10-17. Между выводами питания (+5 В и общим проводом) микроконтроллера DD1 и регистра DD2 полезно установить блокировочные конденсаторы К10-17 ёмкостью 0,1 мкФ.
В дисплее целесообразно выделить разряд, индицирующий текущий режим работы устройства (индикатор HG1), на фоне остальных разрядов. Поэтому для данного разряда выбран семиэлементный индикатор красного цвета свечения HDSP-F001 (подойдёт HDSP-F151); индикаторы HG2-HG6 - зелёного цвета свечения HDSP-F501 (подойдут любые другие с общим анодом и приемлемой яркостью свечения). В индикаторе HG4 для формирования знака "-" используется только сегмент g. Ток через элементы индикаторов определяется нагрузочной способностью дешифратора DD3. Для КР514ИД2 максимально допустимый ток каждого выхода - 22 мА. Световые полосы HL1, HL2 - №-2300EW красного цвета свечения.
Ток через каждый канал регулирования мощности ограничен предельно допустимым током 5 А через сетевой фильтр ФС-220 (Z1, Z2). При небольших нагрузках, а также в случае, если требования по уровню помех не очень высоки, сетевые фильтры можно исключить. Нагрузки подключают к устройству через вилки МРW-2 (ответная часть - розетки MHU-2). Вместо них можно применить клеммники ТВ-10-2. Если номинальная мощность нагрузки в канале регулирования превышает 100 Вт, то симистор следует установить на соответствующий теплоотвод. Симистор TIC236M, допустимый ток которого 12 А, позволяет управлять нагрузкой мощностью до 1,5 кВт. Возможная замена - отечественный симистор КУ208Г, однако он обладает значительно худшей чувствительностью: для надёжного срабатывания через управляющий электрод этого симистора должен протекать ток не менее 250 мА, поэтому сопротивление резисторов R1 и R3 необходимо уменьшить до 100 Ом. Для нагрузок мощностью до 2 кВт можно использовать симисторы с допустимым током до 16 А, например ^C246N. Целесообразно измерить реальные значения тока управления и удержания применяемых симисторов, чтобы оценить пригодность симистора для работы с конкретной, особенно маломощной нагрузкой.
Применённые в устройстве симис-торные оптроны 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 мс (рис. 4,б).
Автор: С. Шишкин, г. Саров Нижегородской обл.