Здравствуйте, уважаемые читатели! В одной из прошлых статей "Модуль сетевого диммера для Ардуино с Aliexpress" мы разбирали подключение сетевого диммера на основе симистора BTA16 к Ардуино. Для работы диммера, мы скачивали и устанавливали библиотеку от производителя данного модуля. Данная библиотека поддерживает множество контроллеров, среди которых вся линейка Ардуино, ESP8266, ESP32 и некоторые другие. Но не поддерживает микроконтроллеры семейства ATtiny.
В этой статье мы разберемся, как подключать и управлять сетевым диммером с помощью микроконтроллера ATtiny85. А в качестве примера будем плавно регулировать яркость лампы накаливания 60 Вт с помощью подключенного к ATtiny85 потенциометра на 10 кОм.
Для работы с диммером я взял за основу скетч из Интернета и немного видоизменил под свои нужды. Ссылка на скетч и страницу, откуда его взял, есть в конце статьи.
В начале подключаем библиотеки для работы с прерыванием, далее определяем пины которые у нас будут работать с ШИМ-сигналом, детектором нуля и чтением аналогового сигнала с потенциометра.
Далее можем загружать скетч в ATtiny. Переводим Arduino UNO в режим программатора. В платах выбираем ATtiny85 и загружаем скетч через программатор.
После загрузки скетча, не вынимать ATtiny из программатора и подключаем его к сетевому диммеру и потенциометру согласно схеме.
Пин Z-C (zero-cross) диммера подключаем к 7 пину ATtiny. Пин PWM диммера соединяем со 2 пином ATtiny, а 2 ножку потенциометра с 3 пином ATtiny, которая умеет работать с аналоговый сигналом. И подаем питание на макетную плату, тем самым подключив к питанию потенциометр и диммер.
После соединения видим, что потенциометр действительно регулирует яркость, вот только при значениях, которые были в исходном скетче, полностью лампа не гаснет.
В нашем случае, чем больше будет значение 4-го аргумента функции map(), тем ниже яркость лампы. Вот только при увеличении данного значения, в определенный момент, лампа снова начнет светиться в полную яркость. Т.е. нам нужно установить максимальное значение четвертого аргумента, при котором лампа не начинает светиться снова в полную яркость. Это и будет состояние выключенной лампы.
Опытным путем найдено, что максимальное значение соответствующее нулевой светимости лампы, составляет 147. При 148, лампа то не светится, то включается на полную мощность. Т.е. это пороговое значение которое нас не устраивает. Остановимся на значении 147. Таким образом, получилось, что интервал регулирования от 147 до 2.
Вот только загрузить данный скетч в ATtiny13 не получится, т.к. в скомпилированном виде занимает 1344 Б.
Даже если отказаться от функции map(), а просто делить получаемое от потенциометра значение, то скетч всё равно занимает более 1КБ. Да и если бы нам удалось сократить скетч до размера менее 1 КБ, все равно для таких целей ATtiny13 плохой вариант, т.к. в скетче мы используем прерывание, а у ATtiny13 в отличие от ATtiny25/45/85 всего 1 таймер, который микроконтроллер может использовать под свои нужды. Так что если хочется для работы с диммером использовать микроконтроллер ATtiny, то нужно использовать модель, начиная с ATtiny25.
То, что данный интервал соответствует минимальной и максимальной яркости лампы, легко проверить с помощью ваттметра. Подключаем диммер к сети через ваттметр и видим, что при минимальной яркости, лампа и диммер потребляют 1,1 Вт.
А при максимальной – 66 Вт. Заявленная мощность данной лампы накаливания 60 Вт.
Таким образом, если объединить информацию из позапрошлой статьи Управление яркостью светодиодной ленты с помощью ATtiny13, где мы управляли плавным включением светодиодной ленты, в т.ч. при срабатывании датчика движения и то, о чем я рассказывал в этой статье, то можно создать устройство, плавного включения освещения 220 вольт при срабатывании датчика движения. А управлять всем этим будет микроконтроллер ATtiny85 или даже более младшие модели ATtiny25 или ATtiny45.
Ссылка на скетч из статьи - https://yadi.sk/d/xzxmjvyuKxLMow
Источник скетча -
http://forum.arduino.cc/index.php?topic=314773.0
http://arduino.ru/forum/programmirovanie/attiny85-i-preryvanie
Видео по материалам статьи:
________________________________________________________
Спасибо, что дочитали до конца! Если статья понравилась, нажмите, пожалуйста, соответствующую кнопку. Если интересна тематика электроники и различных электронных самоделок, подписывайтесь на канал. До встречи в новых статьях!
Другие публикации по теме:
- Как работать с ШИМ на ATtiny13/25/45/85
- Управление яркостью светодиодной ленты с помощью ATtiny13