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

Пользовательские блоки для работы с контроллерами светодиодных ламп и освещением.
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
JonyBest
Сержант
Сообщения: 269
Зарегистрирован: 18.11.2015{, 22:42}
Репутация: 89
Откуда: Близко к Ставрополю
Имя: Евгений

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

#1

Сообщение JonyBest » 03.11.2023{, 22:22}

Предыстория такова - решил обновить прошивку самогонного аппарата и всё поломал. Ни один из представленных диммеров на форуме не захотел работать на плате ESP32 v14. Перерыл весь инет - проблема у многих. А у меня ситуация "горит", тянуть время нельзя, брага скиснет... Эта библиотека завелась без проблем.

Блок построен на библиотеке RBDDimmer
Данная библиотека предназначена для работы с диммером, дает возможность управления большим количеством диммеров используя аппаратный таймер и внешние прерывания.
При использовании библиотеки стоит заранее ознакомится с таблицей задаваемых пинов.

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

*  ---------------------- OUTPUT & INPUT Pin table ---------------------
 *  +---------------+-------------------------+-------------------------+
 *  |   Board       | INPUT Pin               | OUTPUT Pin              |
 *  |               | Zero-Cross              |                         |
 *  +---------------+-------------------------+-------------------------+
 *  | Leonardo       | D7 (NOT CHANGABLE)      | D0-D6, D8-D13           |
 *  +---------------+-------------------------+-------------------------+
 *  | Mega          | D2 (NOT CHANGABLE)      | D0-D1, D3-D70           |
 *  +---------------+-------------------------+-------------------------+
 *  | Uno           | D2 (NOT CHANGABLE)      | D0-D1, D3-D20           |
 *  +---------------+-------------------------+-------------------------+
 *  | ESP8266       | D1(IO5),    D2(IO4),    | D0(IO16),   D1(IO5),    |
 *  |               | D5(IO14),   D6(IO12),   | D2(IO4),    D5(IO14),   |
 *  |               | D7(IO13),   D8(IO15),   | D6(IO12),   D7(IO13),   |
 *  |               |                         | D8(IO15)                |
 *  +---------------+-------------------------+-------------------------+
 *  | ESP32         | 4(GPI36),   6(GPI34),   | 8(GPO32),   9(GP033),   |
 *  |               | 5(GPI39),   7(GPI35),   | 10(GPIO25), 11(GPIO26), |
 *  |               | 8(GPO32),   9(GP033),   | 12(GPIO27), 13(GPIO14), |
 *  |               | 10(GPI025), 11(GPIO26), | 14(GPIO12), 16(GPIO13), |
 *  |               | 12(GPIO27), 13(GPIO14), | 23(GPIO15), 24(GPIO2),  |
 *  |               | 14(GPIO12), 16(GPIO13), | 25(GPIO0),  26(GPIO4),  |
 *  |               | 21(GPIO7),  23(GPIO15), | 27(GPIO16), 28(GPIO17), |
 *  |               | 24(GPIO2),  25(GPIO0),  | 29(GPIO5),  30(GPIO18), |
 *  |               | 26(GPIO4),  27(GPIO16), | 31(GPIO19), 33(GPIO21), |
 *  |               | 28(GPIO17), 29(GPIO5),  | 34(GPIO3),  35(GPIO1),  |
 *  |               | 30(GPIO18), 31(GPIO19), | 36(GPIO22), 37(GPIO23), |
 *  |               | 33(GPIO21), 35(GPIO1),  |                         |
 *  |               | 36(GPIO22), 37(GPIO23), |                         |
 *  +---------------+-------------------------+-------------------------+
 *  | Arduino M0    | D7 (NOT CHANGABLE)      | D0-D6, D8-D13           |
 *  | Arduino Zero  |                         |                         |
 *  +---------------+-------------------------+-------------------------+
 *  | Arduino Due   | D0-D53                  | D0-D53                  |
 *  +---------------+-------------------------+-------------------------+
 *  | STM32         | PA0-PA15,PB0-PB15       | PA0-PA15,PB0-PB15       |
 *  | Black Pill    | PC13-PC15               | PC13-PC15               |
 *  | BluePill      |                         |                         |
 *  | Etc...        |                         |                         |
 *  +---------------+-------------------------+-------------------------+
RBDdimmer_1.1_(Code_-_Professional).ubi
(605.62 КБ) 62 скачивания

Ardudue
Лейтенант
Сообщения: 425
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 24
Имя: Антон

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

#2

Сообщение Ardudue » 17.11.2023{, 08:53}

JonyBest писал(а):
03.11.2023{, 22:22}
решил обновить прошивку самогонного аппарата
Поддерживаете постоянную температуру нагрева ТЭНом?

JonyBest
Сержант
Сообщения: 269
Зарегистрирован: 18.11.2015{, 22:42}
Репутация: 89
Откуда: Близко к Ставрополю
Имя: Евгений

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

#3

Сообщение JonyBest » 17.11.2023{, 10:17}

Ardudue писал(а):
17.11.2023{, 08:53}
постоянную температуру нагрева ТЭНом
Нет.
В режиме ректификации поддерживаю постоянную мощность на тенах на 5% меньше мощности при которой закипает колонна. Три датчика температуры - куб, середина колонны и узел отбора. Отбор продукта по дельте между верхним датчиком и серединой. Получается 96 градусов чистейший спирт без всяких посторонних запахов. Из спирта делаю настойки :smile198:

Ardudue
Лейтенант
Сообщения: 425
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 24
Имя: Антон

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

#4

Сообщение Ardudue » 17.11.2023{, 11:05}

JonyBest, у меня задача попроще, хочу сделать нагрев воздушного ТЭНа.
Датчик поддержания температуры ТЭНА -термопара с MAX6675K, что то не могу понять как в FlProg прикрутить к диммеру что бы при включении ТЭН грел на полную мощность и при достижении заданной температуры автоматом поддерживал заданную температуру.

В Вашем блоке выход out для чего используется?

JonyBest
Сержант
Сообщения: 269
Зарегистрирован: 18.11.2015{, 22:42}
Репутация: 89
Откуда: Близко к Ставрополю
Имя: Евгений

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

#5

Сообщение JonyBest » 17.11.2023{, 11:17}

Ardudue писал(а):
17.11.2023{, 11:05}
выход out
для контроля состояния диммера
А ваша задача решается очень просто с помощью пид регулятора. Коэффициенты подбирайте эмпирическим способом. Справка на этот модуль хорошая.
пид.flp
(959.9 КБ) 106 скачиваний

WildCat
Лейтенант
Сообщения: 426
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

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

#6

Сообщение WildCat » 18.11.2023{, 17:59}

ТЭН диммировать смысла нет. У него достаточно большая инерционность, и им достаточно управлять длинными импульсами. Например, постоянный период 30..60с, и импульс - ШИМ в этом периоде.

aidar_i
Полковник
Сообщения: 3130
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 677
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#7

Сообщение aidar_i » 18.11.2023{, 21:11}

Попробовал поработать с этой библиотекой на STM32, но посыпались ошибки.
Пришлось покопаться в библиотеке, исправить инициализацию таймера.
Выкладываю свой блок сюда, библиотека встроена в блок.
Блок JonyBest увидел после, тоже должен работать.
Нужно протестировать, чтобы определить правильно ли я внес изменения, компиляция проходит.
Диммер RBDdimmer.flp
(550.12 КБ) 49 скачиваний

Ardudue
Лейтенант
Сообщения: 425
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 24
Имя: Антон

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

#8

Сообщение Ardudue » 21.03.2024{, 08:20}

aidar_i писал(а):
18.11.2023{, 21:11}
Нужно протестировать, чтобы определить правильно ли я внес изменения, компиляция проходит.
Ваш проект не компилируется
In file included from d:\distrib\arduino\flprog\portableflprog_8-2-3_win64\idev8\portable\packages\stmicroelectronics\tools\xpack-arm-none-eabi-gcc\12.2.1-1.2\arm-none-eabi\include\c++\12.2.1\stdlib.h:36,
from D:\Distrib\Arduino\FLProg\PortableFLProg_8-2-3_Win64\ideV8\portable\packages\STMicroelectronics\hardware\stm32\2.5.0\cores\arduino/wiring.h:24,
from D:\Distrib\Arduino\FLProg\PortableFLProg_8-2-3_Win64\ideV8\portable\packages\STMicroelectronics\hardware\stm32\2.5.0\cores\arduino/Arduino.h:36,
from sketch\pr3.ino.cpp:1:
d:\distrib\arduino\flprog\portableflprog_8-2-3_win64\idev8\portable\packages\stmicroelectronics\tools\xpack-arm-none-eabi-gcc\12.2.1-1.2\arm-none-eabi\include\c++\12.2.1\cstdlib:41:10: fatal error: bits/c++config.h: No such file or directory
41 | #include <bits/c++config.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Ошибка компиляции для платы Generic STM32F1 series.
#include <RBDdimmer.h>
#define outputPin104947678 192
#define zerocross104947678 19
dimmerLamp dimmer104947678(192, 19);
int outVal104947678 = 0;

#include "flprogUtilites.h"
int _gtv1;
int Out_106694669_104947678;


void setup()
{



dimmer104947678.begin(NORMAL_MODE, ON); //dimmer initialisation

}
void loop()
{







//Плата:1
if ((!(0)))
{
int preVal = outVal104947678;
int buf = (50);
if (buf != 0) outVal104947678 = buf;
delay(200);
dimmer104947678.setPower(outVal104947678); // setPower(0-100%);
if (preVal != outVal104947678)
{
Out_106694669_104947678 = dimmer104947678.getPower();
}
delay(50);
}
_gtv1 = Out_106694669_104947678;







}

aidar_i
Полковник
Сообщения: 3130
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 677
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#9

Сообщение aidar_i » 21.03.2024{, 21:04}

Ardudue писал(а):
21.03.2024{, 08:20}
aidar_i писал(а):
18.11.2023{, 21:11}
Нужно протестировать, чтобы определить правильно ли я внес изменения, компиляция проходит.
Ваш проект не компилируется
In file included from d:\distrib\arduino\flprog\portableflprog_8-2-3_win64\idev8\portable\packages\stmicroelectronics\tools\xpack-arm-none-eabi-gcc\12.2.1-1.2\arm-none-eabi\include\c++\12.2.1\stdlib.h:36,
from D:\Distrib\Arduino\FLProg\PortableFLProg_8-2-3_Win64\ideV8\portable\packages\STMicroelectronics\hardware\stm32\2.5.0\cores\arduino/wiring.h:24,
from D:\Distrib\Arduino\FLProg\PortableFLProg_8-2-3_Win64\ideV8\portable\packages\STMicroelectronics\hardware\stm32\2.5.0\cores\arduino/Arduino.h:36,
from sketch\pr3.ino.cpp:1:
d:\distrib\arduino\flprog\portableflprog_8-2-3_win64\idev8\portable\packages\stmicroelectronics\tools\xpack-arm-none-eabi-gcc\12.2.1-1.2\arm-none-eabi\include\c++\12.2.1\cstdlib:41:10: fatal error: bits/c++config.h: No such file or directory
41 | #include <bits/c++config.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Ошибка компиляции для платы Generic STM32F1 series.
#include <RBDdimmer.h>
#define outputPin104947678 192
#define zerocross104947678 19
dimmerLamp dimmer104947678(192, 19);
int outVal104947678 = 0;

#include "flprogUtilites.h"
int _gtv1;
int Out_106694669_104947678;


void setup()
{



dimmer104947678.begin(NORMAL_MODE, ON); //dimmer initialisation

}
void loop()
{







//Плата:1
if ((!(0)))
{
int preVal = outVal104947678;
int buf = (50);
if (buf != 0) outVal104947678 = buf;
delay(200);
dimmer104947678.setPower(outVal104947678); // setPower(0-100%);
if (preVal != outVal104947678)
{
Out_106694669_104947678 = dimmer104947678.getPower();
}
delay(50);
}
_gtv1 = Out_106694669_104947678;







}
Попробуйте обновить ядро.

Ardudue
Лейтенант
Сообщения: 425
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 24
Имя: Антон

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

#10

Сообщение Ardudue » 22.03.2024{, 09:23}

aidar_i писал(а):
21.03.2024{, 21:04}
Попробуйте обновить ядро.
Не помогло.Последняя версия ядра 2.7.1 .
Ругается на отсутствие файла fatal error: bits/c++config.h: No such file or directory
41 | #include <bits/c++config.h

aidar_i
Полковник
Сообщения: 3130
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 677
Откуда: Уфа
Имя: Айдар
Контактная информация:

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

#11

Сообщение aidar_i » 22.03.2024{, 12:47}

Ardudue писал(а):
22.03.2024{, 09:23}
aidar_i писал(а):
21.03.2024{, 21:04}
Попробуйте обновить ядро.
Не помогло.Последняя версия ядра 2.7.1 .
Ругается на отсутствие файла fatal error: bits/c++config.h: No such file or directory
41 | #include <bits/c++config.h
Пишут: Эта ошибка возникает из-за проблемы с длинным именем пути.
Попробуйте сократить путь, по которому установлена ​​Arduino IDE, и все должно работать.
В Вашем случае FLProg поставьте в корень диска D.
Другие скетчи компилируются?

Ardudue
Лейтенант
Сообщения: 425
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 24
Имя: Антон

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

#12

Сообщение Ardudue » 23.03.2024{, 16:36}

aidar_i писал(а):
22.03.2024{, 12:47}
Пишут: Эта ошибка возникает из-за проблемы с длинным именем пути.
Проверил на другом компьютере ось WIN10 - FLProg портативная лежит D:\Program Files\FLProg_8-2-3_Win64
компилируется:
Ядро версия 2.5.0
Скетч использует 36196 байт (55%) памяти устройства. Всего доступно 65536 байт.
Глобальные переменные используют 5300 байт (25%) динамической памяти, оставляя 15180 байт для локальных переменных. Максимум: 20480 байт.
Ядро версия 2.7.1
Скетч использует 34684 байт (52%) памяти устройства. Всего доступно 65536 байт.
Глобальные переменные используют 5812 байт (28%) динамической памяти, оставляя 14668 байт для локальных переменных. Максимум: 20480 байт.
Под последней версией ядра скетч использует меньше памяти, но переменные в объеме выросли.

Ответить

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