Ac диммер на arduino

Ac диммер на arduino

Диммер переменного тока на Arduino

  • Описание проекта
  • Папки проекта
  • Схемы подключения
  • Материалы и компоненты
  • Настройка и использование
  • FAQ
  • Полезная информация
  • Мой сайт
  • Основной YouTube канал
  • YouTube канал про Arduino

Диммер переменки на Arduino, управляем симистором, опираясь на таймер timer1 и детектор нуля. Вся высоковольтная часть развязана с логической, все подробности смотрите на схемах.

  • Library — библиотеки для дисплея и прочего, скопировать в
    C:Program Files (x86)Arduinolibraries (Windows x64)
    C:Program FilesArduinolibraries (Windows x86)
  • Sketches — прошивки для Arduino, файлы в папках открыть в Arduino IDE (читай FAQ)
    • dimmer_timer — показанная в видео прошивка для 1 канала, с таймеромм и потенциометром
    • dimmer_6ch — прошивка для 6ти канального диммера с таймером, для платы из видео
    • dimmer_delay — версия, часто встречающаяся в интернете, с задержками. Чисто для ознакомления
  • Schematics&PCB — схемы и печатки. Весь проект полностью находится здесь https://easyeda.com/beragumbo/AC_Dimmer-76ae9ae002a64ab28c81e22fb88a56ab

Подключаем к Ардуино

Вариант печатки с подтяжкой на плате

Материалы и компоненты

  • Arduino NANO http://ali.pub/1qqtjx
  • Макетка http://ali.pub/im4fk
  • Линейный потенциометр http://ali.pub/1rcv5g
  • Симистор — любой на нужный ток, корпус TO-220AB
    • 4 Ампера https://www.chipdip.ru/product/bt136-600d
    • 8 Ампер https://www.chipdip.ru/product/bt137-600e
    • 16 Ампер https://www.chipdip.ru/product/bt139-600e
  • Оптопара симистора MOC3020, MOC3021, MOC3022, MOC3023
    • MOC3021 https://www.chipdip.ru/product/moc3021m
  • Оптопара детектора нуля PC814, FOD814
    • PC814 https://www.chipdip.ru/product/pc814-fairchild
  • Резистор 51 кОм, 0.5 или 1 Вт
  • Резисторы 220 Ом, 10 кОм, 1 кОм
  • Клеммники 5 мм http://ali.ski/UCZN8

Вам скорее всего пригодится

  • Всё для пайки (паяльники и примочки)
  • Недорогие инструменты
  • Все существующие модули и сенсоры Arduino
  • Электронные компоненты
  • Аккумуляторы и зарядные модули

Настройка и использование

  • Загрузка прошивки — ультра подробная статья по началу работы с Ардуино
  • Переменная Dimmer — величина диммирования, от 0 до 255. В этом коде на пин А0 подключен потенциометр для управления яркостью. Также можно вводить число для переменной Dimmer через монитор порта, для этого в лупе надо раскомментировать код

Настройки в коде

В: Как скачать с этого грёбаного сайта?
О: На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP

В: Скачался какой то файл .zip, куда его теперь?
О: Это архив. Можно открыть стандартными средствами Windows, но думаю у всех на компьютере установлен WinRAR, архив нужно правой кнопкой и извлечь.

В: Я совсем новичок! Что мне делать с Ардуиной, где взять все программы?
О: Читай и смотри видос http://alexgyver.ru/arduino-first/

В: Компьютер никак не реагирует на подключение Ардуины!
О: Возможно у тебя зарядный USB кабель, а нужен именно data-кабель, по которому можно данные передавать

В: Ошибка! Скетч не компилируется!
О: Путь к скетчу не должен содержать кириллицу. Положи его в корень диска.

В: Сколько стоит?
О: Ничего не продаю.

Вопросы по этому проекту

В: Работает нестабильно, мерцает!
О: Пайка приветствуется, соединение джамперами очень ненадёжно

Регулятор силы света (диммер) на Arduino и симисторе

В современных домохозяйствах большинство устройств (лампочки, телевизоры, кондиционеры и т.д.) запитываются от напряжения переменного тока. Мы можем управлять включением и выключением этих устройств с помощью платы Arduino и реле, эти способы управления домашними электронными устройствами рассматривались на нашем сайте в проектах автоматизации дома. Но если нам нужно не просто управлять процессами включения/выключения устройств, а нужно еще, к примеру, регулировать яркость свечения лампы или частоту вращения вентилятора, то здесь нам необходимо использовать методы управления фазами и статические переключатели наподобие симисторов (TRIAC) для управления фазами напряжение переменного тока.

В данной статье мы рассмотрим создание регулятора силы света (диммера, dimmer) лампы переменного тока на основе платы Arduino и симистора. Для переключения режимов лампы переменного тока мы будем использовать симистор (TRIAC) – быстродействующий электронный переключатель, наиболее хорошо подходящий для проектов подобного вида.

На нашем сайте вы можете также посмотреть проекты, в которых использовалась регулировка силы света:

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Оптопара MCT2E (купить на AliExpress).
  3. Оптопара MOC3021 (купить на AliExpress).
  4. Симистор (TRIAC) BT136 (купить на AliExpress).
  5. Понижающий трансформатор (12-0V, 500mA) (купить на AliExpress).
  6. Резисторы 1 кОм, 10 кОм, 330 Ом (купить на AliExpress).
  7. Потенциометр 10 кОм (купить на AliExpress).
  8. Лампа переменного тока с держателем (патроном).
  9. Соединительные провода.

Методика обнаружения перехода через ноль

Для управления напряжением переменного тока первое, что мы должны уметь делать – это обнаруживать переходы через ноль сигнала переменного тока. Следовательно, в каждый момент времени, когда этот сигнал переходит через ноль, мы должны переключать симистор. Момент перехода через ноль сигнала переменного тока показан на следующем рисунке.

Принцип работы симистора

Симистор (симметричный триодный тиристор, в англ. TRIAC) представляет собой переключатель переменного тока с тремя выводами, который можно переключить при помощи подачи отпирающего импульса на его управляющий вывод (затвор). Но в отличие от других подобных переключателей, которые проводят ток в одном направлении, симистор может управлять током в обоих направлениях. В нашем проекте мы будем использовать симистор BT136.

Принцип управления симистора переменным током показан на следующем рисунке.

Как показано на рисунке, мы можем переключать, к примеру, симистор на угле 90 градусов при помощи подачи отпирающего импульса на его управляющий вывод. В этом случае мы будем подавать ток на лампу только в половине времени положительной полуволны сигнала (на графике время t1), соответственно, лампа будет гореть вполовину мощности. Уменьшая или увеличивая это время мы можем заставить лампу гореть ярче или тусклее.

Частота сигнала переменного тока в нашей сети составляет 50 Гц, соответственно, период сигнала равен 1/f =20 миллисекунд. Значит, половина периода будет равна 10 мс. Поэтому мы можем изменять время t1 на приведенном графике для управления яркостью свечения лампы переменного тока в диапазоне от 0 до 10 мс (10000 мкс).

Оптопара

Оптопару (оптрон) также называют оптоизолятором. Она используется для изоляции друг от друга двух электрических цепей постоянного или переменного тока. Принцип ее действия достаточно прост: светодиод внутри нее излучает инфракрасный свет, а фотодатчик обнаруживает его. В нашем проекте мы будем использовать оптопару MOC3021 для управления лампой переменного тока, с помощью платы Arduino, использующей сигналы постоянного тока.

Схема проекта

Схема регулятора силы света (диммера) на Arduino и симисторе представлена на следующем рисунке.

Схема соединения симистора и оптопары показана на следующем рисунке.

Эту схему мы собрали на перфорированной плате, у нас получилась конструкция следующего вида:

Оптопару MCT2E и соединения с ней мы также разместили на перфорированной плате и подсоединили ее к понижающему трансформатору.

Конструкция всего проекта в сборе выглядит следующим образом:

Объяснение программы для Arduino

Полный код программы и видео, демонстрирующее работу проекта, приведены в конце статьи, здесь же мы кратко рассмотрим основные фрагменты кода.

Читайте также  Mmc/sd wav стерео плеер на atmega32 с пду

В самом начале программы нам необходимо объявить используемые глобальные переменные. Симистор у нас подключен к контакту 4 платы Arduino. В переменной dim_val мы будем хранить значение шага диммирования (регулирования силы света), который мы далее будем использовать в программе.

Как сделать диммер на основе Ардуино

Ардуино дает возможность для легкой реализации множества различных устройств и функций, в том числе, переключения нагрузок переменного тока с помощью механического или твердотельного реле. Но чуть сложнее ситуация складывается тогда, когда вам приходится регулировать яркость ламп с помощью программы, ведь ограничить силу тока симистром уже нельзя.

В таком случае более эффективным будет использовать Ардуино диммер, КПД которого значительно выше в данной задаче, чем у того же симистра, учитывая необходимость рассеивать большое количество теплоты. Давайте разберёмся, как создать диммер, что необходимо прописать в программной части, и какие материалы вам потребуются.

Как сделать диммер на Ардуино своими руками

Вариант 1

Ардуино диммер 220 В проектируется таким образом, чтобы в него входили простые синусоиды из розеток, а выходили уже обрезанные. Таким образом, он не будет пропускать часть синусоид, в зависимости от размера которой будет изменяться и усреднённое напряжение на устройстве. Поэтому, с помощью изменения промежутков с нулевым напряжением возможно регулировать ток на выходе, с помощью того самого симистра.

Важно подобрать подходящий, ведь они различаются по размеру корпуса и принимаемому току, например, более крупные пропускают напряжение в 800 вольт, эквивалентное 30 квт.

У нас будет два варианта исполнения. Теоретический и конкретный альтернативный, уж, простите, за аналогии.

В первом варианте, чтобы проект поддавался контролю, потребуется пакет рассыпух, а также пара резисторов и несколько оптопар. Большая часть компонентов, полный список которых мы опишем ниже, продается за копейки в любом магазине радиотехники, поэтому вам не составит труда собрать всё, что необходимо.

Чтобы было удобнее подключать Аrduino симистор, потребуется несколько клемм, но можно обойтись и без них. А для сборки всей схемы необходимо спроектировать и сделать макетную плату. Удобнее всего использовать 3-Д принтер, но можно создать её и старым химическим способом.

В итоге у нас получится Аrduino диммер 220 В, который будет разрывать соответствующую сеть, а контролировать мы всё будем с помощью оптопары, для чего нам потребуется стандартная мигалка. Таким образом, выйдет, что сама плата останется развязанной с помощью сетевого напряжения, что поспособствует безопасности инженера и дальнейших пользователей.

Но для своевременного открытия симистра устройству потребуется узнавать, когда напряжение будет проходить через ноль, для чего и пригодится вторая оптопара, которую мы подключим к противоположной стороне.

С помощью такой незамысловатой схемы мы получим девайс, который будет отправлять нам сигнал каждый раз, когда напряжение проходит через 0 в сети, а управление симистром будет осуществляться с помощью верхней оптопары.

О том, какой алгоритм работы потребуется прописать программой, – мы расскажем чуть ниже, но давайте сначала разберёмся, какие инструменты и составляющие вам потребуются, чтобы собрать аппаратную часть проекта. Как уже упоминалось, все их вы сможете купить на рынке или в магазине радиотехники без затруднений.

Вариант 2

Во втором варианте мы настроим яркость лампы, подключенной к цепи последовательным портом. Яркость можно изменить в соответствии с командами, которые мы предоставляем для последовательного порта. Мы будем использовать эти конкретные команды в этом проекте Ардуино диммера:

  • 0 для ВЫКЛЮЧЕНИЯ
  • 1 для яркости 25%
  • 2 для яркости 50%
  • 3 для яркости 75%
  • 4 для 100% яркости

Мы разработаем схему диммера с импульсной волной (PWM), которая будет использовать IRF830A в диодном мосте, который используется для управления напряжением на лампе с импульсной модуляцией (PWM). Напряжение источника питания для управления затвором подается с напряжением на полевом транзисторе с полевым эффектом из оксида металла (MOSFET).

Материалы

Вариант 1

Для удобства следует разбить список покупок на несколько основных пунктов, в зависимости от того, для чего мы будем использовать те или иные инструменты. Так, вам будет необходимо собрать:

  1. Детектор для отслеживания пересечений с нулем. Для этой части проекта потребуется H11AA11 с парой резисторов на 10кОм, а также мостовой выпрямитель на 400 Вольт и ещё пара резисторов на 30 кОм. Для удобства стоит прикупить и 1 разъем, а также стабилизатор на 5.1 Вольт.
  2. Драйвер для лампы. Здесь достаточно будет простого светодиода, а также MOC3021 с резистором 220 Ом (можно и больше), а еще резистором на 470 Ом и 1 кОм, и один симистор, подойдет версия TIC Также можете докупить ещё один разъем.
  3. Вспомогательные элементы. Конечно, при спайке не обойтись без проводов и куска текстолита 6 на 3 см.

Когда вы соберёте все необходимые элементы, придёт время спайки, поэтому, помимо выше перечисленного, потребуются также паяльник и канифоль с припайкой. Плату вы можете расчертить и сделать самостоятельно или воспользоваться специальным принтером, если есть в наличии. Варианты расположения дорожек можно найти на нашем сайте или спроектировать всё самостоятельно, по вашему желанию.

Вариант 2

Для нашего второго альтернативного варианта нам понадобятся:

1x — 330 Ом резистор
2x — 33К резистора
1x — 22К резистор
1x- 220 Ом резистор
4x — 1N4508 диоды
1x — 1N4007 диоды
1x — Диод Zener 10V.4W
1x — Конденсатор 2.2uF / 63V
1x — Конденсатор 220nF / 275V
1x — Arduino / Ардуино
1x — Оптрон: 4N35
1x — МОП-транзистор: IRF830A
1x — Лампа: 100 Вт
1x — Питание 230 В
1x — Розетка
1x — Паяльная плата и паяльный комплект

Создание платы

Мы рассмотрим самый бюджетный вариант – вытравку платы в соляном растворе, но прежде на неё необходимо будет наклеить проект, который вы можете создать в программе по желанию. Дальнейшая сборка не несёт никаких трудностей и секретов, необходимо будет воспользоваться панельками под оптроны и мостовые выпрямители. Также, при написании текста, для разметки элемента, его стоит делать зеркальным, так как при ЛУТе, отпечатавшийся рисунок примет правильный вид на меде, и перенесется так, что вы без проблем прочитаете все необходимые данные.

Хорошим выбором станет TIC206, который выдаст добротных 6 ампер. Но здесь стоит учесть, что те проводники, которые установлены на плате, просто не выдержат такую силу тока, поэтому дополнительно стоит припаять провод на проводник симистора у разъемов, а вторую часть – к другим разъемам.

Также, при наличии оптрона H11AA11, мостовой выпрямитель можно не использовать, ведь в нем уже имеются два не параллельных диода, а также возможность работы с переменными токами. Совместимость с выводами 4N25 позволяет просто вставить его к припою с двумя перемычками, находящимися между 5 и 7 резистором, на нашей схеме.

Во втором варианте схема будет выглядеть так:

Какая программа необходима для устройства

Вы можете подгрузить готовый код с библиотеками с сайта или написать его самостоятельно. Благо, программа под диммер на Ардуино не очень тяжелая, и в ней достаточно учитывать, что нулевой сигнал будет генерироваться в прерываниях, которые в симисторе переключаются на определённое время.

Читайте также  Быстроразогревающийся пальник своими руками

Единственное, что стоит учесть – это использование переменной цикла, её стартовое значение стоит поставить не в 0, а в 1, а максимальный шаг варьируется от 1 до 5. Таким образом, нам будет подходить два вида диапазонов измерения – от 2 до 126, и от 0 до 128.

Код для альтернативного варианта у нас такой:

Технологический процесс сборки

Мигалка на Ардуино без проблем собирается на макетной плате, и особенностей в спайке уже готового макета нет никаких. Единственное, стоит не забывать о примечаниях, приведённых выше, по поводу припайки одного провода к симистору, дабы не сжечь дорожки на плате, выстроив правильное прерывание. В остальном, даже новичку удастся без проблем собрать конечный проект, благодаря его простоте.

Как это выглядит в реальном виде:

Настройка и тестирование устройства

Наш второй вариант работает таким образом (на видео видно как к устройству подносится фонарик):

Уже распаянный Аrduino диммер подключите к Ардуино и двигайте потенциометр до тех пор, пока не достигнете максимума и минимума накала лампочки. Для того чтобы увидеть реальную картину волны, достаточно воспользоваться осциллографом, способным измерять напряжение до 12 вольт.

Но напрямую подключать также нельзя, здесь пригодится делитель напряжения в соотношении 1 к 20; дабы не греть лишний раз резисторы, подойдет номинал двести и десять килоОм. После аккуратного подключения устройство можно подсоединить к сети и, наконец, увидеть результаты своих трудов.

Arduino.ru

AC Light Dimmer Module от RobotDyn и Arduino nano

при попытке залит данный скетч, получаю нехватку памяти. Либа офф. от производителя модуля.

Есть варианты заставить его работать?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Либа офф. от производителя модуля.

я хз, у меня такой либы нет, делитесь или либой или ссылкой на нее

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

1) сразу вопрос по плате и камню на ней — что используете с каким МК.

2) в либе куча примеров они все не работают?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Arduino Nano V3.0, Камень ATmega328. Версия IDE 1.8.9.

После добавления строк в проект, пишет что не хватает места.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Под 1.8.3 места для скетча из начального сообщения — завались! Мож глюк какой 1.8.9 ? Попробуйте другую версию.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Поставил IDE той же версии что и дома, и скетч из примера компилится. Переустановлю на домашнем компе. Тема закрыта.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Переустановил IDE. Поставил 1.8.6. Ошибка не устранена. Есть Идеи?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Идея простая. Открыть файл библиотеки и посмотреть куда она девает всю память и если не нужно столько выделять то уменьшить буфера. Не надо библиотек боятся. Частенько их пишут начинаюшие с большими амбициями и коротенькими знаниями. Вот и получается как всегда-памяти нет. И строку в скобках оберните в F() — на 30 байт уменьшит занимаемую память.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

На данном этапе своих познаний C++ в либе мне нечего ловить. Парадокс в том, что на рабочем компе данный скетч компилиться без проблем.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

А скока памяти использует?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Да ничего там в библиотеке особенного нет. Одна табличка на 100 байт. В норме скетч компилируется например так (1.8.3):

Скетч использует 3402 байт (10%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 463 байт (22%) динамической памяти, оставляя 1585 байт для локальных переменных. Максимум: 2048 байт.

А вот почему у него под некоторыми версиями IDE 463 байта аж в 2139 превращаются — непонятно.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

попробую 1.8.3 поставить. Засада.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

В чем проблема поставить 1.8.10 .

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Да, уж начните лучше с актуальной.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

на закрузчике miniCore (LTO — disable)
Скетч использует 4058 байт (12%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 557 байт (27%) динамической памяти, оставляя 1491 байт для локальных переменных. Максимум: 2048 байт.

(LTO -enable)
Скетч использует 3256 байт (10%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 441 байт (21%) динамической памяти, оставляя 1607 байт для локальных переменных. Максимум: 2048 байт.

ардуино нано (old loader)
Скетч использует 3300 байт (10%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 443 байт (21%) динамической памяти, оставляя 1605 байт для локальных переменных. Максимум: 2048 байт.

Диммер на Arduino

Диммер на базе Arduino – это одно из сотен простых и интересных устройств, с помощью которого можно плавно изменять сетевое напряжение от 0 до номинального значения. Каждый пользователь Arduino найдёт применение столь полезной самоделке, а опыт, полученный во время сборки своими руками, пополнит багаж знаний.

Схема и принцип её работы

Как и большинство недорогих диммеров, данная схема работает за счёт фазовой регулировки напряжения, что достигается путем принудительного открывания силового ключа – симистора. Принцип действия схемы следующий. Arduino на программном уровне формирует импульсы, частота которых подстраивается сопротивлением потенциометра. Управляющий импульс с вывода P1 проходит через оптопару MOC3021 и поступает на управляющий электрод симистора. Он открывается и пропускает ток до перехода полуволны сетевого напряжения через ноль, после чего закрывается. Затем приходит следующий импульс и цикл повторяется. Благодаря сдвигу управляющих импульсов, в нагрузке формируется обрезанная по фронту часть синусоиды.

Чтобы симистор открывался в соответствии с заданным алгоритмом, частота следования импульсов должна быть засинхронизирована с напряжением сети 220 В. Другими словами Arduino должен знать, в какой момент синусоида сетевого напряжения проходит через ноль. Для этого в диммере на элементах R3, R4 и PC814 реализована цепь обратной связи, сигнал с которой поступает на вывод P2 и анализируется микроконтроллером. В цепь детектора нуля добавлен резистор R5 на 10 кОм, который нужен для подпитки выходного транзистора оптопары.

Один силовой вывод симистора подключается к фазному проводу, а ко второму – подключается нагрузка. Нулевой провод сети 220 В напрямую следует от клеммника J1 к J2, а затем к нагрузке. Применение оптопар необходимо для гальванической развязки силовой и низковольтной части схемы диммера. Потенциометр (на схеме не показан) средним выводом подключается на любой аналоговый вход Arduino, а двумя крайними – на +5 В и «общий».

Читайте также  Контроллер кнопок для игры что? где? когда?

Печатная плата и детали сборки

Минимум радиоэлементов позволяет сконструировать одностороннюю печатную плату, размер которой не превышает 20х35 мм. Как видно из рисунка на ней отсутствует переменный резистор, чтобы радиолюбитель мог самостоятельно подобрать потенциометр подходящего форм-фактора и определить место его крепления к корпусу готового диммера. Подключение к Arduino осуществляется через провода, которые запаивают в соответствующие отверстия на плате.

Для сборки своими руками диммера, управляемого Arduino, понадобятся следующие радиоэлементы и детали:

  1. Симистор BT136-600D, способный выдерживать обратное напряжение до 600 В и пропускать в нагрузку ток до 4 А (естественно с предварительным монтажом на радиатор). В схеме можно применить симистор и с большей нагрузочной способностью. Главное – обеспечить отвод тепла от его корпуса и правильно подобрать ток на управляющий электрод (справочный параметр). При подключении к нагрузке электроприбора большой мощности ширину печатных проводников в силовой части схемы необходимо будет пересчитать. Как вариант, силовые дорожки можно продублировать с другой стороны платы.
  2. Оптопара MOC3021 с симисторным выходом.
  3. Оптопара PC814 с транзисторным выходом.
  4. Резисторы номиналом 1 кОм, 220 Ом, 10 кОм мощностью 0,25 Вт и 2 резистора на 51 кОм мощностью 0,5 Вт.
  5. Переменный резистор на 10 кОм.
  6. Клеммные колодки – 2 шт., с двумя разъёмами и шагом 5 мм.

Все необходимые файлы по проекту находятся в ZIP-архиве: dimmer-arduino.zip

Алгоритм управления Arduino

Программа управления симистором создана на базе таймера Timer1 и библиотеки Cyber.Lib, благодаря чему отсутствует влияние на работу других программных кодов. Принцип её действия следующий. При переходе сетевого напряжения через ноль «снизу вверх» таймер перенастраивается на обратный переход «сверху вниз» и начинает отсчёт времени в соответствии со значением переменной «Dimmer». В момент срабатывания таймера Arduino формирует управляющий импульс и симистор открывается. При следующем переходе через ноль симистор перестаёт пропускать ток и ожидает очередное срабатывание таймера. И так 50 раз в секунду. За регулировку задержки на открывание симистора отвечает переменная «Dimmer». Она считывает и обрабатывает сигнал с потенциометра и может принимать значение от 0 до 255.

Область применения диммера на Arduino

Конечно, использовать дорогостоящий Arduino для управления яркостью галогенных ламп – избыточно. Для этой цели лучше заменить обычный выключатель диммером промышленного изготовления. Диммер на Arduino способен решать более серьёзные задачи:

  • управлять любыми видами активной нагрузки (температурой нагрева паяльника, проточного водонагревателя и т. д.) с точным удержанием заданного параметра;
  • одновременно выполнять несколько функций. Например, обеспечивать плавное включение утром (отключение вечером) света, а также контролировать температуру и влажность террариума.

Увидеть каким образом изменяется напряжение в нагрузке можно с помощью осциллографа. Для этого к выходным клеммам диммера припаивают резистивный делитель, благодаря которому сигнал в контрольной точке должен уменьшиться примерно в 20 раз. После этого к делителю подсоединяют щупы осциллографа и подают питание на схему. Изменяя положение ручки потенциометра, на экране осциллографа можно наблюдать насколько плавно Arduino управляет симистором и присутствуют ли при этом высокочастотные помехи.

Авторство вышеприведенных материалов принадлежит Youtube каналу AlexGyver.