Диммер-регулятор
Добавлено: Сб сен 27, 2014 04:55:29
Уважаемые форумчане ! Не возьмётся ли ктонибудь помочь в написании программы для устройства, совмещающего функции диммера и регулятора ?
Схема, на мой взгляд, должна выглядеть, как на рисунке в приложении (к сожалению мне неизвестен способ вставить изображение в текст). Предпологается использовать SMD резисторы типоразмера 1206. Т.к. SMD резисторы "переносят" импульсные токи "тяжелее", чем обычные, применены 2 резистора R1 и R2 вместо одного. R5 и R6 установлены потому, что рабочее напряжение на SMD 1206 составляет 200V (400V максимально допустимое, но эксплуатировать непрерывно их в таком режиме нежелатев связи с возможностью обрыва). Триак будет отпираться отрицательным напряжением на управляющем электроде G относительно T1 в связи с тем, что в четвёртом квадранте (T2- G+) триаки имеют наибольший управляющий ток отпирания, а трёхквадрантные Snubberless триаки, например BTA12-600BW, вообще в четвёртом квадранте не отпираются. Отпирающий ток триаков может достигать 50мА, в связи с чем сигнал на включение триака подаётся с трёх запараллеленых выводов микроконтроллера (т.к. выходы допускают ток до 20мА).
Типовое время включения триака составляет 2-3 мкс, а так, как нагрузка у нас "чисто" активная, достаточно управляющего импульса длительностью 5 мкс.
Ёмкость конденсатора C1 может быть можно снизить до 0,22 мкФ, а C2 - до 100 мкф - это дискуссионный вопрос.
Микроконтроллер PIC12F629 желателен из соображений миниатюризации. По возможности напишите программы и под PIC12F675 и PIC12F683, так как все эти микроконтроллеры являются недорогими и легко доступными.
Хотелось бы следующий алгоритм работы схемы. После включения выключателя "On" напряжение на лампочке должно плавно нарастать в течении 2-2,5 секунд и остановиться на уровне примерно 90% сетевого, что необходимо как для питания схемы, так и для продления срока службы лампочки. Отрабатывать нажатие кнопки "Remote" в этот период не обязательно (если не возникнут трудности, можно предусмотреть остановку увеличения яркости в этот период при кратковременном нажатии на кнопку, однако это не является обязательным). После установления режима (или после принудительной остановки нарастания) нажатие на кнопку "Remote" в течении до 1 секунды должно приводить к отключению лампочки, а удержание кнопки более 1 секунды - к плавному снижению яркости до момента отпускания кнопки. Последующее кратковременное (до 1 сек.) нажатие на кнопку должно приводить к отключению лампочки, а длительное (более 1 сек) - к увеличению яркости до момента отпускания кнопки. Последующее короткое нажатие - отключать лампочку, а длительное - уменьшать яркость до момента отпускания кнопки, и далее по тому же алгоритму. Когда выключатель "On" остаётся включенным, а лампочка потушена, кратковременное нажатие на кнопку "Remote" должно приводить к плавному запуску лампочки, как при включении выключателя "On", и далее как было описано выше. Про программное подавление дребезга кнопки упоминаю на всякий случай, это общеизвесно.
Число ступеней регулирования желательно иметь порядка 16, а время полного прохода всех ступеней - порядка 5 секунд. Регулировка яркости не должна приводить к циклическому её изменению. т.е. при достижении, например, максилальной яркости (90% сетевого на лампочке) и последующем удержании кнопки не должно происходить её полное гашение и далее регулирование по кругу.
Микроконтроллер PIC12F683 имеет встроенный аппаратный ШИМ, однако мне думается, что не имеет особого смысла заморачиваться и полностью переписывать программу под него, достаточно программного ШИМ, как в PIC12F629 и PIC12F675 - все эти микроконтроллеры очень похожи.
ВременнЫе константы, определяющие реагирование на нажатие кнопки и скорость нарастания/снижения яркости неплохо бы было хранить в EEPROM микроконтроллера с целью возможности их ручного изменения. Так же в EEPROM можно сохранять последнее перед выключением значение яркости лампочки и при последующем включении выводить яркость на этот уровень, хотя это не обязательно.
Схема, на мой взгляд, должна выглядеть, как на рисунке в приложении (к сожалению мне неизвестен способ вставить изображение в текст). Предпологается использовать SMD резисторы типоразмера 1206. Т.к. SMD резисторы "переносят" импульсные токи "тяжелее", чем обычные, применены 2 резистора R1 и R2 вместо одного. R5 и R6 установлены потому, что рабочее напряжение на SMD 1206 составляет 200V (400V максимально допустимое, но эксплуатировать непрерывно их в таком режиме нежелатев связи с возможностью обрыва). Триак будет отпираться отрицательным напряжением на управляющем электроде G относительно T1 в связи с тем, что в четвёртом квадранте (T2- G+) триаки имеют наибольший управляющий ток отпирания, а трёхквадрантные Snubberless триаки, например BTA12-600BW, вообще в четвёртом квадранте не отпираются. Отпирающий ток триаков может достигать 50мА, в связи с чем сигнал на включение триака подаётся с трёх запараллеленых выводов микроконтроллера (т.к. выходы допускают ток до 20мА).
Типовое время включения триака составляет 2-3 мкс, а так, как нагрузка у нас "чисто" активная, достаточно управляющего импульса длительностью 5 мкс.
Ёмкость конденсатора C1 может быть можно снизить до 0,22 мкФ, а C2 - до 100 мкф - это дискуссионный вопрос.
Микроконтроллер PIC12F629 желателен из соображений миниатюризации. По возможности напишите программы и под PIC12F675 и PIC12F683, так как все эти микроконтроллеры являются недорогими и легко доступными.
Хотелось бы следующий алгоритм работы схемы. После включения выключателя "On" напряжение на лампочке должно плавно нарастать в течении 2-2,5 секунд и остановиться на уровне примерно 90% сетевого, что необходимо как для питания схемы, так и для продления срока службы лампочки. Отрабатывать нажатие кнопки "Remote" в этот период не обязательно (если не возникнут трудности, можно предусмотреть остановку увеличения яркости в этот период при кратковременном нажатии на кнопку, однако это не является обязательным). После установления режима (или после принудительной остановки нарастания) нажатие на кнопку "Remote" в течении до 1 секунды должно приводить к отключению лампочки, а удержание кнопки более 1 секунды - к плавному снижению яркости до момента отпускания кнопки. Последующее кратковременное (до 1 сек.) нажатие на кнопку должно приводить к отключению лампочки, а длительное (более 1 сек) - к увеличению яркости до момента отпускания кнопки. Последующее короткое нажатие - отключать лампочку, а длительное - уменьшать яркость до момента отпускания кнопки, и далее по тому же алгоритму. Когда выключатель "On" остаётся включенным, а лампочка потушена, кратковременное нажатие на кнопку "Remote" должно приводить к плавному запуску лампочки, как при включении выключателя "On", и далее как было описано выше. Про программное подавление дребезга кнопки упоминаю на всякий случай, это общеизвесно.
Число ступеней регулирования желательно иметь порядка 16, а время полного прохода всех ступеней - порядка 5 секунд. Регулировка яркости не должна приводить к циклическому её изменению. т.е. при достижении, например, максилальной яркости (90% сетевого на лампочке) и последующем удержании кнопки не должно происходить её полное гашение и далее регулирование по кругу.
Микроконтроллер PIC12F683 имеет встроенный аппаратный ШИМ, однако мне думается, что не имеет особого смысла заморачиваться и полностью переписывать программу под него, достаточно программного ШИМ, как в PIC12F629 и PIC12F675 - все эти микроконтроллеры очень похожи.
ВременнЫе константы, определяющие реагирование на нажатие кнопки и скорость нарастания/снижения яркости неплохо бы было хранить в EEPROM микроконтроллера с целью возможности их ручного изменения. Так же в EEPROM можно сохранять последнее перед выключением значение яркости лампочки и при последующем включении выводить яркость на этот уровень, хотя это не обязательно.