Разработки ecoins

Библиотеки для разных контроллеров

starshoy81
Лейтенант
Сообщения: 488
Зарегистрирован: 05.04.2016{, 23:30}
Репутация: 29
Откуда: Санкт-Петербург
Имя: Илья

Разработки ecoins

#1341

Сообщение starshoy81 » 09.10.2021{, 20:20}

o615ye161 писал(а):
09.10.2021{, 19:50}
при пропадании питания
импульсы с генератора тоже слетят и городить тоже много надо. А с часов с батарейкой ничего не слетает.
Чем будильник не устраивает?
будильник.PNG
Вот полив по времени на 40 мин со сторонним блоком ещё года от 2017 наверное.
полив по времени.PNG
Установка часов.
уст часов.PNG
Для скачивания вложений Вы должны быть зарегистрированы.

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1342

Сообщение ecoins » 10.10.2021{, 08:09}

ecoins писал(а):
08.10.2021{, 19:13}
Генератор с такими возможностями не реализовывался.
Во многом из-за того, что такие режимы вполне удобно реализованы в стандартном таймере.
Многофункциональный генератор больше планировался для планирования задач и других сервисных функций. В качестве входа используются переменные int16_t.
Такой режим реализовать возможно, но вроде незачем.
Может быть будет к делителю фронтов со временем добавим делитель импульсов - тогда возможно будет реализовать каскадное деление импульсов.
o615ye161 писал(а):
08.10.2021{, 22:14}
Было бы круто, чтобы был многофункциональный блок работы с временем, иногда нужен суточный таймер с определенными интервалами работы, ну и многое другое.
Был не прав по стандартному генератором - внешние входы там только int.
В генератор ecoins добавил выбор формата входов (v16/v32), проверил на Arduino Nano.
FLProg_Test_GeneratorPulse.rar
Test_Pulse_1.png
На больших значениях должно работать.
-------------------
Для работы теста из первого поста потребуется скачать новые версии библиотек от 10.10.21
------------------
Успехов.
Для скачивания вложений Вы должны быть зарегистрированы.

GDAN7777
Сержант
Сообщения: 146
Зарегистрирован: 15.04.2020{, 06:19}
Репутация: 21
Имя: Vital

Разработки ecoins

#1343

Сообщение GDAN7777 » 10.10.2021{, 08:38}

ecoins писал(а):
10.10.2021{, 08:09}
Был не прав по стандартному генератором - внешние входы там только int.
Позвольте уточнить,генератор реализован программно или аппаратно?

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1344

Сообщение ecoins » 10.10.2021{, 08:44}

GDAN7777 писал(а):
10.10.2021{, 08:38}
Позвольте уточнить,генератор реализован программно или аппаратно?
Программно.
---------------------
struct RT_HW_GENERATOR_EVENT_ID {uint32_t time; uint8_t dir=0; uint8_t meander:1, event:1;}; //--Для генератора меандров и событий;
bool RT_HW_BASE:: generatorPulse(RT_HW_GENERATOR_PULSE_ID &id, uint8_t EN, uint16_t timeON, uint16_t timeOFF){ //==Генератор импульсов (v16);
if(id.dir==0) {if(EN) {id.dir=3;} else {return 0;}}
if(id.dir==1) {if(millis()>=id.time) {id.time+=timeOFF; id.dir=2; return 0;} else {return 1;}}
if(id.dir==2) {if(millis()>=id.time) {id.dir=3;}}
if(id.dir>=3) {if(EN) {id.time=RT_HW_MILLIS+timeON; id.dir=1; return 1;}
else {id.dir=0; return 0;}} return 0;};
bool RT_HW_BASE:: generatorPul32(RT_HW_GENERATOR_PULSE_ID &id, uint8_t EN, uint32_t timeON, uint32_t timeOFF){ //==Генератор импульсов (v32);
if(id.dir==1) {if(millis()>=id.time) {id.time+=timeOFF; id.dir=2; return 0;} else {return 1;}}
if(id.dir==2) {if(millis()>=id.time) {id.dir=3;}}
if(id.dir>=3) {if(EN) {id.time=RT_HW_MILLIS+timeON; id.dir=1; return 1;}
else {id.dir=0; return 0;}} return 0;};
------------------------------------------------------
Вопрос к Sancho : нет в приведенной реализации подвохов с переполнением таймера?

o615ye161
Сержант
Сообщения: 151
Зарегистрирован: 19.12.2019{, 14:47}
Репутация: 3
Имя: Сергей

Разработки ecoins

#1345

Сообщение o615ye161 » 10.10.2021{, 22:49}

ecoins писал(а):
10.10.2021{, 08:09}
Для работы теста из первого поста потребуется скачать новые версии библиотек от 10.10.21
Благодарю, будем тестить

Аватара пользователя
Sancho
Полковник
Сообщения: 3822
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 531
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Разработки ecoins

#1346

Сообщение Sancho » 11.10.2021{, 09:26}

ecoins писал(а):
10.10.2021{, 08:44}
Вопрос к Sancho : нет в приведенной реализации подвохов с переполнением таймера?
millis()>=id.time - очень неправильная вещь.
При сравнении, в отличии вычитания, использование "невидимого" старшего разряда не работает.
Т.е. в момент времени, когда значение, возвращаемое функцией millis() изменит своё значение
с 0xFFFFFFFF на 0х00000000, придёт не совсем ожидаемый результат.
Посему, самым правильным будет измерять "пройденное расстояние", и сравнивать с нужным, больше или меньше, по желанию.
Это вытекает из выше-упомянутого, а именно, например, 0х00000002 - 0xFFFFFFFE = 4,
где
0х00000002 - результат millis()
0xFFFFFFFE - например, id.time
и потом можем сравнить с ожидаемым, не прибавляя его заранее,
а Ваше использование if(millis()>=id.time) в таком случае вернёт нам else
Выполнение millis() занимает около 2us на 328/16м. Иногда, для удобства, проще один раз присвоить временной переменной и работать в функции с ней.
Ну и советую не забывать, что штатная функция от Wiring() - millis() считает время "скачками" по 42 миллисекунды и оно плавает на плюс-минус 1 миллисекунду с этим периодом. Из-за этого, не бывает 42, 84 .. и т.д. "миллисекунд". После 41 всегда идет 43. :)
Это из-за 1024 us/ms
Как-то так.
Если не получится на контроллере - сделаю на тразисторах и 155/176...Научился, немного.
Поможем проекту вместе!

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1347

Сообщение ecoins » 11.10.2021{, 11:26}

Sancho писал(а):
11.10.2021{, 09:26}
millis()>=id.time - очень неправильная вещь.
При сравнении, в отличии вычитания, использование "невидимого" старшего разряда не работает.
Т.е. в момент времени, когда значение, возвращаемое функцией millis() изменит своё значение
с 0xFFFFFFFF на 0х00000000, придёт не совсем ожидаемый результат.
Спасибо. Подкорректирую в библиотеке.

o615ye161
Сержант
Сообщения: 151
Зарегистрирован: 19.12.2019{, 14:47}
Репутация: 3
Имя: Сергей

Разработки ecoins

#1348

Сообщение o615ye161 » 16.10.2021{, 23:23}

Здрастуйте ecoins, возникла проблема, болк DHT22 в вашем исполнении почему то отказывается работать, хотя штатный Flp работает на том же пине не пойму почему ваш не хочет, брал из системы 1,28 соответственно с теми же библиотеками.
Для скачивания вложений Вы должны быть зарегистрированы.

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1349

Сообщение ecoins » 17.10.2021{, 10:52}

o615ye161 писал(а):
16.10.2021{, 23:23}
Сообщение o615ye161 » Вчера{, 20:23}
Здрастуйте ecoins, возникла проблема, болк DHT22 в вашем исполнении почему то отказывается работать, хотя штатный Flp работает на том же пине не пойму почему ваш не хочет, брал из системы 1,28 соответственно с теми же библиотеками.
Очень интересный проект.
Возникшей проблемой занимаюсь.
Позже напишу подробнее.

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1350

Сообщение ecoins » 17.10.2021{, 11:09}

o615ye161 писал(а):
16.10.2021{, 23:23}
Здрастуйте ecoins, возникла проблема, болк DHT22 в вашем исполнении почему то отказывается работать, хотя штатный Flp работает на том же пине не пойму почему ваш не хочет, брал из системы 1,28 соответственно с теми же библиотеками.
Если очень коротко - измените тип платы на свободную задачу, например с номером 18 и начнет работать.
В описании к блоку указано, что он должен вызываться с периодом менее 1 сек. У Вас плата вызывается 1 раз в сек.
Сделал локальные предложения по некоторым платам Вашего проекта - выложу.
Проект у Вас получился очень и очень шустрый - более 11000 циклов в сек.
И это при:
1. 8-ми DS1820;
2. 1-го DHT22;
3. 16-канального PCA9685 (i2c);
4. 2-x АЦП(i2c);
5. Внешний пульт через UART c ESP;
6. Еще что-то внешнее через еще один UART и другой ESP;
5. ПИД регулятор, плавающая арифметика и пр.
---------
Можно ускорить раза в четыре, но об этом в комментариях к Вашему проекту, которые выложу позднее.

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1351

Сообщение ecoins » 17.10.2021{, 11:27}

В первом посте обновлены библиотек до версий №6.7.6 и №30:
1.Локальные улучшения.
2.Существенно улучшен протокол асинхронного обмен с дисплеем Nextion (мгновенная реакция, не уловимая зрением).
3.Добавлены простые тесты вывода DHT22 на консоль и LCD.

o615ye161
Сержант
Сообщения: 151
Зарегистрирован: 19.12.2019{, 14:47}
Репутация: 3
Имя: Сергей

Разработки ecoins

#1352

Сообщение o615ye161 » 17.10.2021{, 15:36}

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

Отправлено спустя 1 минуту 20 секунд:
ecoins писал(а):
17.10.2021{, 11:09}
3. 16-канального PCA9685 (i2c);
Если появится блок в вашей реплике это будет круто!


Отправлено спустя 31 секунду:
ecoins писал(а):
17.10.2021{, 11:09}
Сделал локальные предложения по некоторым платам Вашего проекта - выложу.
буду ждать

Отправлено спустя 8 минут 14 секунд:
ecoins писал(а):
17.10.2021{, 11:09}
5. Внешний пульт через UART c ESP;
это esp32, там тоже часть программы выполняется так как использую MCP23017 этот контроллер отвечает за систему умный дом, отопление, бойлер, теплый пол, освещение, и как пульт управления через панель, но работает по блютус так как при проектировании платы допустил ошибки esp32 плохо нестабильно работает по сети. Вторая esp01 работает с таким же пультом только удаленно через интернет и еще nano 328p следит за температурой четырех акб и напряжением.

Отправлено спустя 5 минут 9 секунд:
ecoins писал(а):
17.10.2021{, 11:09}
16-канального PCA9685 (i2c);
используется в качестве шим контроллера, все 16 выходов задействованы!
Для скачивания вложений Вы должны быть зарегистрированы.

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1353

Сообщение ecoins » 17.10.2021{, 16:53}

o615ye161 писал(а):
17.10.2021{, 15:54}
Если появится блок в вашей реплике это будет круто!
o615ye161 писал(а):
17.10.2021{, 15:54}
это esp32, там тоже часть программы выполняется так как использую MCP23017 этот контроллер отвечает за систему умный дом, отопление, бойлер, теплый пол, освещение, и как пульт управления через панель, но работает по блютус так как при проектировании платы допустил ошибки esp32 плохо нестабильно работает по сети. Вторая esp01 работает с таким же пультом только удаленно через интернет и еще nano 328p следит за температурой четырех акб и напряжением.
o615ye161 писал(а):
17.10.2021{, 15:54}
используется в качестве шим контроллера, все 16 выходов задействованы!
Ну просто очень круто.
С Вами очень приятно и результативно сотрудничать.
Делитесь проблемами, ставьте задачи - поэтапно у Вас сложится очень и очень профессиональный проект.
В следующим посте выложу Ваш проект с некими моими комментариями - думаю будет полезно.

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1354

Сообщение ecoins » 17.10.2021{, 17:09}

o615ye161 писал(а):
17.10.2021{, 15:54}
буду ждать
1.В Вашем проекте в некоторых платах добавлены "корректировки и предложения"
2.Добавлена плата с LCD(i2c), на котором отображается в т.ч. мотосекунды и быстродействие.
Мы уже много раза писали, что наш дисплей ну очень и очень шустрый и можно утверждать что "почти не тормозит проект :smile44: ".
Его удобно использовать как инструмент для отладки и мониторинга - вроде как выполняет роль тестера для электронщика.
Рекомендую использовать его ВСЕГДА, после отладки оставлять в проекте - можно отключить плату указав несуществующий номер задачи (например 100) или исключить компиляцию.
Одновременно можно использовать несколько дисплеев с разными адресами, мы часто так делаем.
3.В свое время мы рекомендовали хранить переменные в структурах.
После выхода версии FLProg 7.3 это уже не актуально - лучше использовать контакты. Проект получается компактнее и более понятным - в т.ч. и потому что имена контактов не надо подчинять правилам C++.
Если по каким-то причинам нужно отключать выполнение какой-то платы, просто укажите не существующий номер задачи (например 100).
Успехов.
--------------
К Вам вопрос - на чем реализован пульт - аппаратно и программно?
Для скачивания вложений Вы должны быть зарегистрированы.

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1355

Сообщение ecoins » 17.10.2021{, 17:14}

Sancho писал(а):
22.09.2021{, 16:14}
ecoins писал(а):
22.09.2021{, 13:08}
Полагаем, что для ответственных проектов в качестве основного лучше использовать Nano,Mega или STM32, а ESP8266 (или ESP32 - 240мГц!!!) использовать для организации канала Wi-Fi.
Значит, не один я так считаю. Это радует.
Проект выше доказательство реалистичности такого подхода.

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1356

Сообщение ecoins » 17.10.2021{, 17:20}

o615ye161 писал(а):
17.10.2021{, 15:54}
но работает по блютус так как при проектировании платы допустил ошибки esp32 плохо нестабильно работает по сети.
Со схожей ситуацией сталкивались и bluetooth вообще то хорошее решение.
К сожалению не удается пока "поднять" встроенный в ESP32 bluetooth.

o615ye161
Сержант
Сообщения: 151
Зарегистрирован: 19.12.2019{, 14:47}
Репутация: 3
Имя: Сергей

Разработки ecoins

#1357

Сообщение o615ye161 » 17.10.2021{, 19:05}

ecoins писал(а):
17.10.2021{, 17:09}
К Вам вопрос - на чем реализован пульт - аппаратно и программно?
Немного не понял вопрос по поводу аппаратно или програмно, пульт на планшете андроид на программе RemoteXY работает по блютус HC06
Посмотрел ваши рекомендации, некоторые блоки для меня новые так как с ними не работал, нужно разобраться с ними, все рекомендации обязательно применю, возможно потребуются некоторые пояснения.
Последний раз редактировалось o615ye161 17.10.2021{, 19:32}, всего редактировалось 1 раз.

Аватара пользователя
Rovki
Полковник
Сообщения: 4100
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 194
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Разработки ecoins

#1358

Сообщение Rovki » 17.10.2021{, 19:12}

ecoins писал(а):
17.10.2021{, 17:20}
ESP32 bluetooth
Может тут что есть? https://voltiq.ru/esp-32-serial-bluetoo ... duino-ide/
Электронщик до мозга костей и не только

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1359

Сообщение ecoins » 17.10.2021{, 20:46}

Rovki писал(а):
17.10.2021{, 19:12}
Может тут что есть? https://voltiq.ru/esp-32-serial-bluetoo ... duino-ide/
Спасибо. Когда пробовал, не получилось, и код вроде занимал большую часть памяти.
Когда-нибудь вернусь к этому- пока много плановой работы...

ecoins
Подполковник
Сообщения: 1292
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 218
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1360

Сообщение ecoins » 17.10.2021{, 20:51}

o615ye161 писал(а):
17.10.2021{, 19:05}
Немного не понял вопрос по поводу аппаратно или програмно, пульт на планшете андроид на программе RemoteXY работает по блютус HC06
Не узнал RemoteXY - очень уж красиво получилось. У RemoteXY есть очевидное достоинство - очень быстрый протокол. А потом в основном недостатки.
Нам удалось сделать очень быстрый двусторонний асинхронный протокол для дисплеев Nextion.
Этот дисплей очень хорош для встроенных в оборудование проектов. Но устройство не дешевое.
----

Ответить

Вернуться в «Библиотеки пользователей»