Большинство людей делают это с помощью симисторов. Симистор похож на два диода в антипараллельном (параллельно, но с обратной полярностью) с триггерным штырем. Симистор проводит ток в любом направлении только тогда, когда он срабатывает. После срабатывания он действует как обычный диод, он продолжает действовать до тех пор, пока ток не упадет ниже его порога.
Вы можете видеть его как двунаправленный переключатель на линии переменного тока и может изменять средний ток, вызывая его в разные моменты времени относительно момента, когда синусоидальная переменная переменного тока пересекает ноль.
Грубо, он работает следующим образом: при синусоидальной волне переменного тока ваши диоды выключаются, и ваша лампа не получает никакой мощности. Если вы запускаете диоды, скажем, на полпути по качанию синуса, лампа получит половину нормального тока, который она получит, поэтому она загорается с половиной ее мощности, пока синусоидальная волна не пересечет ноль снова. На этом этапе вы начинаете.
Если вы запускаете симистор раньше, ваша лампа будет течь в течение более длительного интервала времени, светящегося ярче. Если вы активируете свой сиквел, ваша лампа будет светиться слабее.
То же самое относится к любой нагрузке переменного тока.
Это почти тот же принцип PWM для постоянного тока. Вы включаете и выключаете свой текущий источник быстрее, чем может реагировать ваш груз. Количество времени, в которое он включен, пропорционален току, который получит ваша нагрузка.
Как вы это делаете со своим ардуино?
Простыми словами вы должны сначала найти нулевое пересечение сети, затем настроить таймер/задержку, а в конце вы активируете симистор.
Для обнаружения пересечения нуля обычно используется оптрон. Вы соединяете ведущую сторону соединителя с электросети и стороной транзистора с выводом прерывания вашего ардуино. Вы можете подключить свои выводы Arduino IO непосредственно к триггерам triacs, bu я бы использовал другую оптрону, чтобы быть в безопасности.
Когда синусоида подходит к нулю, вы получаете импульс на выводе прерывания. При этом прерывании вы настраиваете таймер. чем длиннее таймер, тем меньше будет ваша нагрузка. Вы также перезагружаете состояние штырей триаков. При прерывании этих таймеров вы устанавливаете контакты IO для запуска симисторов.
Конечно, вы должны понимать немного об аппаратной части, чтобы вы не жарили свою доску и не сжигали свой дом, И само собой разумеется, вы должны быть осторожны, чтобы не убить себя при работе с сетью AC =) ,
HERE - это проект, который запустил меня некоторое время назад. Он использует AVR, поэтому его легко адаптировать к ардуино. Он также довольно полный, с схемами. Их программное обеспечение немного сложное, поэтому вы должны начать с чего-то более простого.
в эта линия на husio.org мы работаем над шлюзом IP-to-rf Arduino для управления доступными розетками домашней автоматизации, такими как система nexa. – Rafael