Регулировка мощности основана на реверсивном принципе управления фазой. Нагрузка включается в каждом полупериоде сети в момент перехода сетевого напряжения через нуль и выключается через определённый интервал времени в зависимости от требуемого уровня яркости. Коммутация нагрузки осуществляется мощными MOSFET транзисторами (Транзистор1 и Транзистор2 на Рис.2.3). Такое решение имеет целый ряд преимуществ перед классической схемой прямого фазового регулирования на основе триака:
- "мягкое" управление транзистором позволяет снизить уровень помех и звон нити лампы – не нужен громоздкий сетевой фильтр, снижающий эффективность и зачастую являющийся источником неприятного жужжания;
- благодаря нарастанию напряжения с нуля и малому звону нити, лампы служат намного дольше;
- для управления MOSFET транзистором требуется гораздо меньший ток;
- более низкое падение напряжения на переходе транзистора сокращает тепловыделение;
- отсутствие понятия "ток удержания" позволяет плавно регулировать малую яркость.
Диодный мост выполняет три функции:
- создаёт пульсирующее однополярное напряжение для питания нагрузки;
- выпрямляет сетевое напряжение для питания схемы;
- обеспечивает сетевое напряжение удвоенной частоты (100 Гц), используемое МК для определения момента перехода фазы сети через нуль.
Детектирование перехода сетевого напряжения через нуль осуществляется тем же делителем напряжения и тем же каналом встроенного в МК АЦП, которые предназначены для измерения напряжения на лампе. Это позволяет отказаться от встроенного в МК компаратора и уменьшить тем самым потребляемый ток. Фильтрация сетевых помех реализуется программно.
Блок питания выполнен по бестрансформаторной схеме с гасящим резистором (балластом). Строить блок питания по трансформаторной схеме тоже не получится, т.к. не существует сетевых трансформаторов, которые подходили бы по габаритам (максимально допустимая высота 13 мм).
В качестве регулирующего элемента применён прецизионный микромощный источник опорного напряжения +5 В параллельного типа (далее по тексту ИОН). По сравнению с обычным стабилитроном, выбранный ИОН имеет два важных преимущества. Во-первых, одновременно со стабилизацией питания МК получается стабильное опорное напряжение АЦП [3]. Во-вторых, на порядок уменьшается потребляемый регулирующим элементом ток (примерно с 1 мА до 0,1 мА).
Устройство имеет защиту от короткого замыкания, превышения мощности нагрузки и повышения сетевого напряжения.
2.4 Разработка алгоритма управления
Программа составлена и отлажена в бесплатной среде разработки VM Lab версии 3.14 (в окне 'About Visual Micro Lab' эта версия указана как 3.12).
Код программы написан на языке ассемблера, содержит более 1500 строк, занимает в памяти программ МК более 3 КБ. Задействованы все 32 регистра, 51 байт оперативной памяти (SRAM, ОЗУ), 45 байт энергонезависимой памяти EEPROM.
На первый взгляд, возможности МК ATmega16, имеющего 16 КБ программной памяти, 1 КБ SRAM, 512 байт EEPROM, и богатый набор периферийных устройств, кажутся избыточными. На самом деле, выбор МК "с запасом" сделан умышленно, чтобы иметь возможность совершенствовать устройство и наращивать его функциональные возможности.
При необходимости код может быть перенесён на другие МК семейства ATmega.
Алгоритм управления показан на Рис.2.4. Каждый блок начинается с названия файла, в котором размещён программный код данного блока. Подпрограммы обозначены блоком меньшего горизонтального размера. Среди них есть функции, т.е. подпрограммы, возвращающие значения. Для упрощения они тоже называются подпрограммами. Отличие подпрограмм, расположенных в файле ProceduresINT.asm, от подпрограмм в файле ProceduresEXT.asm заключается в том, что первые предназначаются только для данного проекта, а вторые являются универсальными и могут найти применение в других проектах. Блок Startup.asm тоже использует некоторые подпрограммы, но для упрощения восприятия рисунка эти связи на блок-схеме не показаны.
2.5 Разработка программного обеспечения микроконтроллера
Далее кратко рассмотрены ключевые моменты программной части проекта. Дополнительная информация содержится в комментариях, которыми снабжена практически каждая строка программы. Листинг программы и объектный файл приведен в Приложении А. Алгоритм работы второго канала полностью аналогичен алгоритму работы первого, поэтому комментарии приводятся только для первого канала. По этой же причине в названиях регистров, процедур и т.п. номер канала либо не указывается совсем, либо обозначается буквой "X" или "x". Команды, начинающиеся с символа комментария (";") в начале строки, предназначены для облегчения разработки, отладки и тестирования.