Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

Пользовательские блоки для работы с контроллерами светодиодных ламп и освещением.
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
pipapsix
Лейтенант
Сообщения: 436
Зарегистрирован: 25.10.2016{, 21:26}
Репутация: 15
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#1

Сообщение pipapsix » 12.02.2023{, 11:25}

Как говориться "" Повторение,мать..""
Выкладываю заново.

Блок полностью переделан, и теперь их целых две версии..(при участии Dryundel)

Использовалась библиотека https://github.com/fabianoriccardi/dimmable-light

в некоторых случаях на ESP присутствует мерцание,в этом случае

вы сами можете попробовать (закомментировать) или (раскомментировать)

#define FILTER_INT_PERIOD в начале thyristor.cpp файла. (по умолчанию раскомментировано)
СпойлерПоказать
Новый точечный рисунок.jpg


Итак о самих блоках.

В блоке Dimmable Light FULL можно выбрать до 5 выходов для диммирования и ZERO pin.

В блоке Dimmable Light выбираем ZERO pin (один раз) и один выход диммера, необходим еще выход ,

вытаскиваем еще один блок и так далее, ограничение 8 диммеров максимум.

Блоки работают для ARDUINO и для ESP.
Изначально при компиляции для ARDUINO требовалось установить библиотеку ArduinoSTL и понизить версию Arduino AVR до 1.8.2

Теперь доработанная библиотека Dimmable Light for Arduino (да просто удалено лишнее) встроена в сами блоки (автоматом установиться при компиляции) и установка ArduinoSTL не требуется.


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

Предупреждение - если оригинальная библиотека Dimmable Light for Arduino была установлена ранее , ее следует удалить.

ВЕРСИЯ FLPROG при создании блоков 7.5.2

БИБЛИОТЕКА на всякий случай.
СпойлерПоказать
Эта библиотека уже встроена в блок, дополнительно устанавливать не нужно
dimmable-light-main.rar
(53.21 КБ) 51 скачивание


САМ ПРОЕКТ ПРИМЕР С ДВУМЯ ВЕРСИЯМИ БЛОКОВ
СпойлерПоказать
ПРОЕКТ ТОЛЬКО ДЛЯ ОЗНАКОМЛЕНИЯ, ПОСЛЕДНИЕ ВЕРСИИ БЛОКОВ НАХОДЯТСЯ НИЖЕ
Dimmable Light for Arduino проэкт 3.flp
(2.65 МБ) 82 скачивания


О фазовом регулировании и схемы можно посмотреть тут --- Фазовое регулирование. Ликбез.


______________________________________________________АКТУАЛЬНЫЕ ВЕРСИИ БЛОКОВ______________________________________________________

-------- не обновлялся

Dimmable_Light__FULL_(Code_-_Professional).ubi
(911.59 КБ) 93 скачивания


-------- обновлен 12.02.23 --- экономим процессорное время,замена int на byte
-------- обновлен 13.02.23 --- встроена библиотека Dimmable Light for Arduino в сам блок. исправлено остаточное напряжение при 0.
Dimmable_Light_(Code_-_Professional).ubi
(777.34 КБ) 104 скачивания
Последний раз редактировалось pipapsix 26.02.2023{, 13:29}, всего редактировалось 8 раз.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#2

Сообщение Dryundel » 12.02.2023{, 12:14}

Ок. Уже лучше. :smile38:
Начинаем усложнять.

Смотри, у тебя в каждом цикле происходит перенастройка времени диммирования.

dimmer_<INS.UUID>.setBrightness(<CH>);

Что делает библиотека и сколько тратит на это процессорного времени мы не знаем. (не полезем в дебри)
Как правило настраивание диммирования происходит не часто. В основном диммер работает в установленном режиме. Поэтому заставлять перенастраиваться каждый цикл смысла нет.
Попробуем ограничить этот момент. К примеру так...

Код: Выделить всё

if (<CH> != oldBrightness_<INS.UUID>)
{
   dimmer_<INS.UUID>.setBrightness(<CH>);
   oldBrightness_<INS.UUID> = <CH>;
}
Операция сравнения исполняется на доли микросекунды. Данный "трюк" возможно поможет сэкономить процессорное время пока входная переменная остается неизменной.
Не забываем задекларировать переменную oldBrightness_<INS.UUID>. Т.к. значения для управления у нас 0-255 то достаточно одного байта byte
К стати и для входа тоже не требуется int, достаточно byte.

Сравнить результаты можно с помощью Набор блоков ОТЛАДКА

Аватара пользователя
pipapsix
Лейтенант
Сообщения: 436
Зарегистрирован: 25.10.2016{, 21:26}
Репутация: 15
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#3

Сообщение pipapsix » 12.02.2023{, 13:18}

Dryundel писал(а):
12.02.2023{, 12:14}
поможет сэкономить процессорное время
Готово. обновил.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#4

Сообщение Dryundel » 12.02.2023{, 13:29}

pipapsix писал(а):
12.02.2023{, 13:18}
Готово. обновил.
Тестировал? Сравнивал результат?
Написать мало. Надо же результат гарантировать пользователям.

Аватара пользователя
pipapsix
Лейтенант
Сообщения: 436
Зарегистрирован: 25.10.2016{, 21:26}
Репутация: 15
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#5

Сообщение pipapsix » 12.02.2023{, 13:51}

Dryundel писал(а):
12.02.2023{, 13:29}
Тестировал? Сравнивал результат?
Написать мало. Надо же результат гарантировать пользователям.
Ах да.
Время выполнения цикла идентичных проектов уменьшилось с 40 до 22 мксек , в двое, отличный результат.

Стоп. поправка. Через несколько секунд выросло до 37.
СпойлерПоказать
2023-02-12_13-47-22.png

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#6

Сообщение Dryundel » 12.02.2023{, 14:04}

pipapsix писал(а):
12.02.2023{, 13:51}
Стоп. поправка. Через несколько секунд выросло до 37.
Во время регулирования (изменения входного значения) время будет естественно увеличиваться.

Отправлено спустя 2 минуты 2 секунды:
Для большей наглядности вставьте в проект несколько блоков (каналов)

Отправлено спустя 2 минуты 2 секунды:
Время цикла величина не постоянная. Она зависит от выполняемых в текущий момент задач.

Отправлено спустя 6 минут 20 секунд:
В данном случае возможно подключился Wi-Fi. Как предположение. Или пошла передача данных.

Аватара пользователя
pipapsix
Лейтенант
Сообщения: 436
Зарегистрирован: 25.10.2016{, 21:26}
Репутация: 15
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#7

Сообщение pipapsix » 12.02.2023{, 14:15}

Dryundel писал(а):
12.02.2023{, 14:06}
Во время регулирования (изменения входного значения) время будет естественно увеличиваться.
Это то понятно, но я нечего не менял, перезагрузил и мониторю.


Сейчас три блока в проекте. также перезагруз и мониторю. можно сказать не изменилось время.
СпойлерПоказать
2023-02-12_14-12-17.png
Отправлено спустя 6 минут 18 секунд:
Dryundel писал(а):
12.02.2023{, 14:15}
В данном случае возможно подключился Wi-Fi. Как предположение. Или пошла передача данных.
Не успел тоже самое написать)

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#8

Сообщение Dryundel » 12.02.2023{, 14:22}

pipapsix писал(а):
12.02.2023{, 14:15}
Сейчас три блока в проекте. также перезагруз и мониторю. можно сказать не изменилось время.
Не могу ни подтвердить не опровергнуть. Нет сейчас возможности тестировать. Но возможно в библиотеке уже предусмотрен этот момент. Однако если с одного блока имеем несколько микросекунды, это уже результат. Из этих мелочей складывается общая производительность.

Отправлено спустя 2 минуты :
Тестировать всегда желательно на самых медленных контроллерах.

Аватара пользователя
pipapsix
Лейтенант
Сообщения: 436
Зарегистрирован: 25.10.2016{, 21:26}
Репутация: 15
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#9

Сообщение pipapsix » 12.02.2023{, 14:32}

Dryundel писал(а):
12.02.2023{, 14:24}
Не могу ни подтвердить не опровергнуть
Я про время при увеличении количества блоков, оно не изменилось, это хорошо.
А между старым и новым блоком 2 мксек разница.

Вот 6 блоков в проекте. все отлично.скорость на уровне одного блока. пины кончились)
СпойлерПоказать
2023-02-12_14-30-50.png

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#10

Сообщение Dryundel » 12.02.2023{, 14:41}

Ещё один важный момент надо бы коротко упомянуть в описании. Это то, что параметр пина Zero является общим. И при использовании нескольких шилдов используется только один Zero-cross с одного шилда. Фаза то одна и та же для всех.
Подробнее про это здесь.
viewtopic.php?t=8099#p115612

Аватара пользователя
pipapsix
Лейтенант
Сообщения: 436
Зарегистрирован: 25.10.2016{, 21:26}
Репутация: 15
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#11

Сообщение pipapsix » 12.02.2023{, 15:05}

Dryundel писал(а):
12.02.2023{, 14:41}
Фаза то одна и та же для всех.
Подписал в блоке.

Подтверждаю увеличение времени выполнения иза вэб интерфейса, когда он открыт время 37, если закрыть то 22 мсек.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#12

Сообщение Dryundel » 12.02.2023{, 15:58}

Просмотрел один момент.
Библиотеку в блок ты интегрировал. Она в общих настройках (для всех пакетов).
А вот в использовании библиотек в самом блоке чекбокс не установил.
Поэтому при компиляции библиотека не подцепляется и автоматом не устанавливается.
Если она уже установлена в IDE то вопросов нет. А вот если ранее не устанавливалась, то IDE её не находит.

Отправлено спустя 1 час 30 минут 49 секунд:
Добрался хотя бы до Proteus. Потестил.
Понравилось то, что по умолчанию библиотека выдает импульс до конца полупериода. Это хорошо. При беглом изучении библиотеки, помнится мне что можно настраивать и подачу короткого импульса. (не точно, но вроде так)
Не понравилось то, что при плавном изменении значения на входе, сигнал на выходе не уходит в ноль и в максимум. Остается маленький хвостик. Хотя если резко изменить значение, все норм. С чем это связано пока загадка. Будем ковырять.
Ну для максимума это не критично, а вот для нуля не очень хорошо.
.
Скрины с ПротеусаПоказать
2023-02-12_172142.jpg
Желтый - сигнал с Zero-cross
Синий - сигнал на симистор
Красный - управляемое напряжение. При нуле есть остаток напряжения на выходе.
.
2023-02-12_174020.jpg
.
Без ArduinoSTL.h на AVR не компилируется. Поэтому наверное надо и ее подцепить к блоку. Хотя интеграция библиотек в блоки - это на любителя. Корифеи морщат нос, ссылаясь на размер блока. Для новичков это упрощает задачу.

ArduinoSTL.h действительно не поддерживает версию ядра AVR выше 1.8.2, а обновляли ее (ArduinoSTL.h) больше года назад. Может быть автор когда нибудь поправит.

Обе либы ArduinoSTL и dimmable_light обновляемые из IDE. Это тоже хорошо.

Пока всё. :)

Аватара пользователя
pipapsix
Лейтенант
Сообщения: 436
Зарегистрирован: 25.10.2016{, 21:26}
Репутация: 15
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#13

Сообщение pipapsix » 12.02.2023{, 18:44}

Dryundel писал(а):
12.02.2023{, 17:29}
Добрался хотя бы до Proteus. Потестил.
Два раза пытался, да все никак)
Dryundel писал(а):
12.02.2023{, 17:29}
Хотя интеграция библиотек в блоки - это на любителя
Да. лучше ручками добавить

Отправлено спустя 29 минут 24 секунды:
Dryundel писал(а):
12.02.2023{, 17:29}
С чем это связано пока загадка. Будем ковырять.
Необходимо разгадать.

Dmitriy76
Рядовой
Сообщения: 3
Зарегистрирован: 14.06.2021{, 18:45}
Репутация: 0
Имя: Дмитрий

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#14

Сообщение Dmitriy76 » 26.02.2023{, 09:27}

Привет всем...прочитал раз на 5 складывается красиво но...
есть вопросы...почему именно эта библиотека в разработке
чем не устраивает скоростной счетчик который стандартный в Flprog https://flprog.ru/uchebnyj-centr/articl ... zki-perem/
или на простейшем таймере http://arduinoprom.ru/shemotehnika/418- ... 02s12.html
Начинаю собирать на макетке это чудо техники...+ обязательно :smile44: стабилизация по U,I на нагрузке
Да и самогонщиков догонять надо)))https://forum.homedistiller.ru/index.php?topic=331296.0 :smile44:

Отправлено спустя 1 час 22 секунды:
Да вот еще...что не так с блоком Сергея Глущенко https://dzen.ru/a/XIuq3rWQLACw5Cfx
....интересная тема управление на полевиках пример на микрухе FL5150
...как более устойчивая к реалии жизни активной, индуктивной)))

Аватара пользователя
pipapsix
Лейтенант
Сообщения: 436
Зарегистрирован: 25.10.2016{, 21:26}
Репутация: 15
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#15

Сообщение pipapsix » 26.02.2023{, 12:07}

Dmitriy76,
Приветствую.
Отвечу коротко, Это единственная библиотека , которая у меня заработала без нареканий, перед этим, естественно все вышеперечисленное проверено- не пошло (мерцания).

п.с. Для самогонщиков и пивоваров нужен Брезенхем. На форуме есть блоки.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#16

Сообщение Dryundel » 26.02.2023{, 12:35}

Уф, сколько информации в сравнительно небольшом посте!
Поучиться бы некоторым у автора вкладывать максимум смысла в минимум текста. :)

Ок. начнем по порядку и с конца.
Для лучшего понимания процесса разных способов диммирования посмотрите еще один ролик.
Диммеры для различных типов лампПоказать
Теперь по вопросам.
Dmitriy76 писал(а):
26.02.2023{, 10:27}
....интересная тема управление на полевиках пример на микрухе FL5150
Действительно интересная и я бы даже сказал, такое управление более правильное. Об этом в кратце я упоминал в статье Фазовое регулирование. Ликбез.
Однако схемотехника здесь сложней, общая стоимость на порядок выше, да и греются полевики несколько сильней.
Dmitriy76 писал(а):
26.02.2023{, 10:27}
Да вот еще...что не так с блоком Сергея Глущенко https://dzen.ru/a/XIuq3rWQLACw5Cfx
Здесь нет блока диммера от Сергея. Эта статья про тот же, упомянутый Вами штатный блок скоростного счетчика.
Dmitriy76 писал(а):
26.02.2023{, 10:27}
чем не устраивает скоростной счетчик который стандартный в Flprog https://flprog.ru/uchebnyj-centr/articl ... zki-perem/
Ну во первых тем, что его необходимо тщательно настраивать. Во вторых управляющий импульс будет короткий, что не очень хорошо скажется на помехоустойчивость и индуктивную нагрузку.
Dmitriy76 писал(а):
26.02.2023{, 10:27}
или на простейшем таймере http://arduinoprom.ru/shemotehnika/418- ... 02s12.html
Это вообще не будет работать нормально если нагрузить контроллер чуть больше.
Данный пример годится только для демонстрации и понимания.
Dmitriy76 писал(а):
26.02.2023{, 10:27}
Да и самогонщиков догонять надо)))https://forum.homedistiller.ru/index.php?topic=331296.0
Догонять в чем? Штрафную что-ли предлагаете? :smile160:
.
Фазорез является частью алгоритма управления мощностью, тем более в таком специфическом направлении. Там много нюансов. Про это сейчас говорить не будем, ибо не по теме.
Dmitriy76 писал(а):
26.02.2023{, 10:27}
есть вопросы...почему именно эта библиотека в разработке
1. Библиотека не плохая. Правда в ней есть немного лишнего. Поэтому, во избежание траблов с загрузкой, рекомендую использовать урезанную ее версию, которая вшита в блок и удалить ранее инсталлированную. (Читай первый пост)
2. Данная библиотека работает с ESP
3. Блок не требует дополнительных настроек.
4. Управляющий импульс держит высокий уровень до конца полупериода.
5. На вкус и цвет все фломастеры разные. Используйте любой, устраивающий Вас вариант. Если поискать получше, найдете еще пяток разработок. К примеру есть более продвинутый блок, и в нем вообще нет библиотеки диммера, но он только для архитектуры AVR пока.
.

Отправлено спустя 20 минут 45 секунд:
Dryundel писал(а):
26.02.2023{, 13:16}
Dmitriy76 писал(а):
26.02.2023{, 10:27}
Да вот еще...что не так с блоком Сергея Глущенко https://dzen.ru/a/XIuq3rWQLACw5Cfx
Здесь нет блока диммера от Сергея. Эта статья про тот же, упомянутый Вами штатный блок скоростного счетчика.
Здесь прошу прощения. Не правильно понял.
Дело в том, что этот блок не от Сергея Глушенко.
Данная ссылка на статью вообще от третьего лица.
Первоисточник находится здесь https://flprog.ru/downloads/usersblocks ... oshhnosti/
На подпись не смотрите. Это просто перенос со старого форума.
Автор блока должен быть указан в самом блоке в описании. Но не факт.
И этот блок тоже только под AVR. На ESP работать не будет.
С настройками в нем тоже не все просто, да разрешение всего 150 градаций на весь диапазон.

Dmitriy76
Рядовой
Сообщения: 3
Зарегистрирован: 14.06.2021{, 18:45}
Репутация: 0
Имя: Дмитрий

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#17

Сообщение Dmitriy76 » 27.02.2023{, 11:30}

Привет всем...оке вижу Ваши страдания по поводу моих вопросов....видать не первый, точно)
Спасибо за терпение!
Спаял схему...загрузил скоростной счетчик да https://disk.yandex.ru/i/gKmdvq6ARUvmzw
действительно мерцает))
Заливаю ваш блок....

Dmitriy76
Рядовой
Сообщения: 3
Зарегистрирован: 14.06.2021{, 18:45}
Репутация: 0
Имя: Дмитрий

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#18

Сообщение Dmitriy76 » 28.02.2023{, 03:13}

ура...я тот самый счастливчик :smile44: мерцает круче стробоскопа)))
Супруга увидела...говорит :smile9: ни...хр...се тут дискотека а нас не позвали).

Короче есть чем заняться....

Аватара пользователя
pipapsix
Лейтенант
Сообщения: 436
Зарегистрирован: 25.10.2016{, 21:26}
Репутация: 15
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#19

Сообщение pipapsix » 28.02.2023{, 10:08}

Dmitriy76 писал(а):
28.02.2023{, 03:13}
ни...хр...се тут дискотека а
Ну тут вообще беда, у меня то мерцания выражались, в редком , один раз в 5-10 секунд., немного притухала или наоборот и все.
.
pipapsix писал(а):
12.02.2023{, 11:25}
вы сами можете попробовать (закомментировать) или (раскомментировать)

#define FILTER_INT_PERIOD в начале thyristor.cpp файла. (по умолчанию раскомментировано)
Это пробывали?

Mazur
Рядовой
Сообщения: 54
Зарегистрирован: 31.08.2023{, 13:43}
Репутация: 2
Имя: Денис

Диммер AVR, ESP8266, ESP32 (Фазовый регулятор)

#20

Сообщение Mazur » 26.09.2023{, 11:23}

я самый щасливый наверное ибо на 32 постоянно ребутится на голом проекте с одним блоком
на 8266 работает

Ответить

Вернуться в «Светодиоды, освещение»