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

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

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

Сообщение pipapsix »

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

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

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

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

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

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

[spoiler]
Новый точечный рисунок.jpg
[/spoiler]



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

В блоке 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

БИБЛИОТЕКА на всякий случай.
[spoiler]Эта библиотека уже встроена в блок, дополнительно устанавливать не нужно
dimmable-light-main.rar
[/spoiler]


САМ ПРОЕКТ ПРИМЕР С ДВУМЯ ВЕРСИЯМИ БЛОКОВ

[spoiler]ПРОЕКТ ТОЛЬКО ДЛЯ ОЗНАКОМЛЕНИЯ, ПОСЛЕДНИЕ ВЕРСИИ БЛОКОВ НАХОДЯТСЯ НИЖЕ
Dimmable Light for Arduino проект 3.flp
[/spoiler]


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


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

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

Dimmable_Light__FULL_(Code_-_Professional).ubi


-------- обновлен 12.02.23 --- экономим процессорное время,замена int на byte
-------- обновлен 13.02.23 --- встроена библиотека Dimmable Light for Arduino в сам блок. исправлено остаточное напряжение при 0.
Dimmable_Light_(Code_-_Professional).ubi
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось pipapsix 26 фев 2023, 13:29, всего редактировалось 8 раз.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

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

Сообщение Dryundel »

Ок. Уже лучше. :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
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

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

Сообщение pipapsix »

Dryundel писал(а): 12 фев 2023, 12:14 поможет сэкономить процессорное время
Готово. обновил.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

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

Сообщение Dryundel »

pipapsix писал(а): 12 фев 2023, 13:18 Готово. обновил.
Тестировал? Сравнивал результат?
Написать мало. Надо же результат гарантировать пользователям.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

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

Сообщение pipapsix »

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

Стоп. поправка. Через несколько секунд выросло до 37.
[spoiler]
2023-02-12_13-47-22.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

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

Сообщение Dryundel »

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

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

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

Отправлено спустя 6 минут 20 секунд:
В данном случае возможно подключился Wi-Fi. Как предположение. Или пошла передача данных.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

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

Сообщение pipapsix »

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


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

[spoiler]
2023-02-12_14-12-17.png
[/spoiler]

Отправлено спустя 6 минут 18 секунд:
Dryundel писал(а): 12 фев 2023, 14:15 В данном случае возможно подключился Wi-Fi. Как предположение. Или пошла передача данных.
Не успел тоже самое написать)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

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

Сообщение Dryundel »

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

Отправлено спустя 2 минуты :
Тестировать всегда желательно на самых медленных контроллерах.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

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

Сообщение pipapsix »

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

Вот 6 блоков в проекте. все отлично.скорость на уровне одного блока. пины кончились)

[spoiler]
2023-02-12_14-30-50.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

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

Сообщение Dryundel »

Ещё один важный момент надо бы коротко упомянуть в описании. Это то, что параметр пина Zero является общим. И при использовании нескольких шилдов используется только один Zero-cross с одного шилда. Фаза то одна и та же для всех.
Подробнее про это здесь.
viewtopic.php?t=8099#p115612
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

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

Сообщение pipapsix »

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

Подтверждаю увеличение времени выполнения иза вэб интерфейса, когда он открыт время 37, если закрыть то 22 мсек.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

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

Сообщение Dryundel »

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

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

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

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

Пока всё. :)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

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

Сообщение pipapsix »

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

Отправлено спустя 29 минут 24 секунды:
Dryundel писал(а): 12 фев 2023, 17:29 С чем это связано пока загадка. Будем ковырять.
Необходимо разгадать.
Dmitriy76
Рядовой
Сообщения: 5
Зарегистрирован: 14 июн 2021, 18:45
Имя: Дмитрий

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

Сообщение Dmitriy76 »

Привет всем...прочитал раз на 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 https://www.youtube.com/watch?v=6nEJ1oqffL8
...как более устойчивая к реалии жизни активной, индуктивной)))
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

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

Сообщение pipapsix »

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

п.с. Для самогонщиков и пивоваров нужен Брезенхем. На форуме есть блоки.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

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

Сообщение Dryundel »

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

Ок. начнем по порядку и с конца.
Для лучшего понимания процесса разных способов диммирования посмотрите еще один ролик.
[spoiler=Диммеры для различных типов ламп]https://www.youtube.com/watch?v=AoeIIwybR9M&t=306s[/spoiler]

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

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

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

Сообщение Dmitriy76 »

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

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

Сообщение Dmitriy76 »

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

Короче есть чем заняться....
pipapsix
Лейтенант
Сообщения: 438
Зарегистрирован: 25 окт 2016, 21:26
Откуда: Волгоградская обл.
Имя: СашкаСаняАлександр
Благодарил (а): 1 раз
Поблагодарили: 4 раза

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

Сообщение pipapsix »

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

#define FILTER_INT_PERIOD в начале thyristor.cpp файла. (по умолчанию раскомментировано)
Это пробывали?
Mazur
Рядовой
Сообщения: 71
Зарегистрирован: 31 авг 2023, 13:43
Имя: Денис

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

Сообщение Mazur »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя