Сегодня я поделюсь результатами своих экспериментов в области управления нагрузками, подключенными к бытовой сети 220 вольт. А именно займемся диммированием – будем плавно зажигать и гасить лампочку накаливания с помощью микроконтроллера. На первый взгляд тут ничего сложного нет – используем ШИМ и регулируем в свое удовольствие. Но не стоит забывать что напряжение в розетке переменное, а значит что сделать это будет немного сложнее. Дальше будет немного теории, схема и метод управления.
При работе с высоким сетевым напряжением следует быть осторожным и внимательным! Ни в коем случае не дотрагиваться до оголенных участков схемы.
Так почему же нельзя в данном случае использовать простой шим сигнал? Как известно в розетке у нас переменное напряжение синусоидальной формы, как на рисунке ниже.
Если использовать управление с помощью ШИМ, ключ через который регулируем сигнал (например симистор) будет открываться и пропускать в нагрузку куски синусоиды, имеющие разную мощность. Как итог, никакого плавного регулирования не получится, а будет безупорядоченный сигнал на выходе:
Для того чтобы этого избежать, мы должны знать когда включать и выключать симистор, то есть привязать управляющий сигнал к управляемому. Как? Все просто, достаточно знать когда сигнал проходит через 0. Зная где начинается каждая следующая полуволна мы сможем открывать и закрывать ключ в нужные моменты, тем самым отдавая нагрузке одинаковую мощность. А изменяя время, которое управляющий ключ находится в открытом состоянии мы можем плавно изменять отдаваемую мощность.
Момент прохождения сетевого напряжения через 0, можно определять с помощью оптопары. Для того чтобы детектировать начало каждой полуволны (и отрицательной и положительной) оптопару подключаем через диодный мост. Таким образом на выходе детектора нуля получаем короткие положительные импульсы в момент когда напряжение в сети проходит через 0.
Для наглядности приведу картинку с виртуального осциллографа смоделлированной схемы в proteus. Синим цветом изображен исходный сигнал (~220V), красным – сигнал после выпрямления диодным мостом. Зеленым цветом изображены импульсы на выходе оптопары U3.
Сигнал с детектора нуля можно завести на вход внешнего прерывания, чтобы ловить начало новой полуволны, а дальше открывать симистор U4 (я использовал BT16-600) на необходимое время. Для опторазвязки я использовал оптосимистор MOC3022 (U2). Остается только подсчитать время на которое нужно открывать симистор. При частоте сетевого напряжения равной 50 Гц время полупериода (длительность одной полуволны) составит 0,01 сек. То есть если мы откроем симистор на 0,005 сек, мы пропустим половину полуволны, мощность составит 50%, если откроем симистор на 0,01 сек (или больше), пропустим всю полуволну и отдаваемая мощность составит 100%. Тут думаю все понятно. код в Bascom-AVR
$regfile = “attiny2313.dat”
$crystal = 8000000
Dim N As Bit ‘1-плавно зажигаем лампочку, 0-гасим
Config Int0 = Falling
On Int0 Imp
Config Timer0 = Timer , Prescale = 1024 ‘переполнение за 0,032 сек
Dim Wt As Byte
On Timer0 Perepolnenie
Config Portd.0 = Output
Opto Alias Portd.0
Opto = 0
Enable Interrupts
Enable Timer0
Start Timer0
Enable Int0
Wt = 195 ‘минимальный накал
N = 1
Wait 2
Do ‘бесконечный цикл
Loop
End
Imp: ‘прерывание от детектора нуля
Timer0 = Wt ‘чем большее значение сюда положим, тем быстрее переполнится таймер
Start Timer0
If N = 1 Then ‘плавно зажигаем лампу
Incr Wt ‘увеличиваем до максимального значения
If Wt = 255 Then
N = 0
End If
Else ‘плавно гасим
Decr Wt ‘уменьшаем до минимального значения
If Wt = 195 Then
N = 1
End If
End If
Return
Perepolnenie: ‘переполнение таймера
Stop Timer0 ‘останавливаем таймер
Opto = 1 ‘включение симистора
Waitus 100
Opto = 0 ‘выключение оптосимистора
Return
минимальный накал средний накал максимальный накал
и не большое видео
Управление лампочкой метод конечно не ограничивается, этим же способом можно управлять и другой нагрузкой – нагревателями, двигателями и пр.
Последние статьи
- Лучшая практика проектирования при размещении компонентов печатной платы
- Android 6.0 на lancer X
- Простой усилитель мощности класса АВ своими руками.
- Двухтактный ультралинейный ламповый УНЧ на EL84 (6П14П).
- Люксметр на ATmega8 и цифровом датчике BH1750
- Контроллер для светодиодной ленты с ИК управлением
- Самодельный LED светильник на основе ИК датчика HC-SR501
- Простой усилитель низкой частоты на TDA7377 и NE5532
- Простейший звонок с двумя мелодиями
- LED Cube 8x8x8 на Arduino с RTC