Разработки ecoins

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

Vint
Рядовой
Сообщения: 54
Зарегистрирован: 07.09.2015{, 10:16}
Репутация: 4
Откуда: Minsk

Разработки ecoins

#1061

Сообщение Vint » 12.06.2021{, 12:30}

Добрый день, уважаемый ecoins. В блоке сенсоров у DS1820 не активируется выход "err". И возможно ли вместо "T=-0.1" приписать другое значение, а то -0,1 совпадает с реальной температурой.

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

Разработки ecoins

#1062

Сообщение ecoins » 12.06.2021{, 13:37}

ecoins писал(а):
29.05.2021{, 23:16}
Добрый день, уважаемый ecoins. В блоке сенсоров у DS1820 не активируется выход "err". И возможно ли вместо "T=-0.1" приписать другое значение, а то -0,1 совпадает с реальной температурой.
По выходу err - в новой версии будет выход ок и он будет работать.
А какую температуру лучше прописать ? Раньше было NAN, но потом оказалось, что не все программные ядра от Arduino поддерживают это значение.

Vint
Рядовой
Сообщения: 54
Зарегистрирован: 07.09.2015{, 10:16}
Репутация: 4
Откуда: Minsk

Разработки ecoins

#1063

Сообщение Vint » 12.06.2021{, 14:37}

Спасибо за оперативный ответ! да любую больше 100, к примеру 255

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

Разработки ecoins

#1064

Сообщение o615ye161 » 12.06.2021{, 18:37}

o615ye161 писал(а):
08.06.2021{, 21:31}
ecoins, подскажите пожалуйста почему блок BME280 не запускается, можете загрузить себе скетч?
и второй вопрос на вашем блоке ка из Flp можно MCP23017 регистр А использовать одновременно как вход и выход?
Вопрос про BME актуален,а вот MCP23017 всё таки регистр A или B не могут одновременно работать как вход и выход, отсюда следующий вопрос возможно сделать ваш блок по аналогии стандартного Flprog но в вашем исполнении чтобы регистр А или В мог работать на вход и выход одновременно.

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

Разработки ecoins

#1065

Сообщение ecoins » 12.06.2021{, 20:42}

o615ye161 писал(а):
12.06.2021{, 18:37}
Вопрос про BME актуален
Очень сильно завяз с оптимизацией с учетом нового редактора ПБ - сильно дорабатывается базовый Soft - самому не нравится, что завязли, решим как-то со временем.
o615ye161 писал(а):
12.06.2021{, 18:37}
вот MCP23017 всё таки регистр A или B не могут одновременно работать как вход и выход, отсюда следующий вопрос возможно сделать ваш блок по аналогии стандартного Flprog но в вашем исполнении чтобы регистр А или В мог работать на вход и выход одновременно.
Одной из особенностей MCP21017 - это обмен через i2c. Это не очень быстрый интерфейс. Когда каждый из регистров А и В определен как вход или выход, то обмен выполняется отправкой небольшого кол-ва байт.
Если управление делается побитно, то если делать прямолинейно - кол-ва обмена увеличивается примерно в 20 раз и для этого интерфейса это становится ощутимо - во время обмена по i2c основной код проекта не выполняется.
Потому выбрано такое решение - компромисс между удобством и скоростью.

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

Разработки ecoins

#1066

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

ecoins писал(а):
12.06.2021{, 20:42}
Одной из особенностей MCP21017 - это обмен через i2c. Это не очень быстрый интерфейс. Когда каждый из регистров А и В определен как вход или выход, то обмен выполняется отправкой небольшого кол-ва байт.
Если управление делается побитно, то если делать прямолинейно - кол-ва обмена увеличивается примерно в 20 раз и для этого интерфейса это становится ощутимо - во время обмена по i2c основной код проекта не выполняется.
Потому выбрано такое решение - компромисс между удобством и скоростью.
Жаль, потому как в проекте есть два выхода в регистре В, остальные работают как вход из за двух выходов ставить еще одну микруху MCP23017 не целесообразно, жаль жаль

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

Разработки ecoins

#1067

Сообщение ecoins » 02.07.2021{, 16:46}

По просьбе пользователя выкладываю вариант для LCD HD44780 40x4:
1. Библиотека для Arduino IDE. Настроена для автономной работы. В дальнейшем будет встроена в RT_HW_BASE.h.
RT_11_HW_HD44780_v1.1.zip
(42.27 КБ) 27 скачиваний
2.Пользовательские блоки.
EIS.03.Дисплеи вер.1.5 (02.07.21).zip
(97.31 КБ) 30 скачиваний
3.Тест
Test LCD 40x4.zip
(261.1 КБ) 33 скачивания
Проверяли только на lcd 20x4. Вроде должно работать и 40х4.
-----------------------------------------------------------
P.S. Много работаем над над библиотекой RT_HW_BASE.h. Уже поддерживает STM32F1,STM32F4 на двух платформах.
Пробуем Raspberry Pi Pico. Настроили для Arduino Zero - ждем посылку с контроллерами.

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

Разработки ecoins

#1068

Сообщение ecoins » 05.07.2021{, 13:13}

ecoins писал(а):
02.07.2021{, 16:46}
По просьбе пользователя выкладываю вариант для LCD HD44780 40x4:
Продолжение. Расширенный тест с учетом результатов от пользователя
Вложения
Периодические пачки импульсов.png
Тест периодических пачек импульсов.zip
(165.05 КБ) 23 скачивания
EIS.03.Дисплеи вер.1.5 (02.07.21).zip
Блоки дисплея
(97.31 КБ) 31 скачивание
EIS.01.СИСТЕМА вер.1.10 (05.07.21).zip
Блоки основные
(735.16 КБ) 35 скачиваний
RT_11_HW_HD44780_v1.2.zip
Библиотека LCD
(42.57 КБ) 40 скачиваний
RT_00_HW_BASE_v5.05.zip
Основная библиотека
(201.79 КБ) 33 скачивания
Test LCD 40x4_ver2.zip
Тест
(700.44 КБ) 30 скачиваний

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

Разработки ecoins

#1069

Сообщение ecoins » 05.07.2021{, 14:18}

По теме генерация пачек импульсов - может будет полезно.
Вложения
Периодические пачки импульсов.png

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#1070

Сообщение tolochko » 11.07.2021{, 11:50}

Здравствуйте уважаемые
Столкнулся с такой штукой
Если использовать блок датчика со2 на отдельной плате
И применить диспетчер задач то данные на Скаду с датчика приходят не корректно со знаком -
Поставил блок на плату с датчиками температуры стало нормально
С чем это может быть связано?
Датчик Т_Вл_Со2 на УНО.flp
(3.27 МБ) 19 скачиваний

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

Разработки ecoins

#1071

Сообщение ecoins » 11.07.2021{, 17:06}

tolochko писал(а):
11.07.2021{, 11:50}
Здравствуйте уважаемые
Столкнулся с такой штукой
Если использовать блок датчика со2 на отдельной плате
И применить диспетчер задач то данные на Скаду с датчика приходят не корректно со знаком -
Поставил блок на плату с датчиками температуры стало нормально
С чем это может быть связано?
После обращения к внешнему датчику, который у Вас подключен через SoftSerial задержка 1сек - ждет ответа от датчика и не получает. Несколько иначе надо делать. И еще кое-что.
Смотрим, чуть позже ответим подробнее.

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#1072

Сообщение tolochko » 11.07.2021{, 17:32}

Заранее спасибо
Буду жать ответ

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

Разработки ecoins

#1073

Сообщение ecoins » 11.07.2021{, 19:44}

Для ответа для постов #1095,1097 выкладываю совсем новые библиотеки и блоки.
Прежде всего для тех, кому интересна тема STM32.
1.Теперь библиотека одна - поддерживает много разных контроллеров.
RT_00_HW_BASE_v6.01.zip
(119.18 КБ) 50 скачиваний
Таблица прикладывается.
Контроллеры_RT_HW_BASE_v02_110721.pdf
(148.2 КБ) 53 скачивания
Уже есть Raspberry Pi Pico (испытывается), Arduino Zero (заказана и в пути).
2.Библиотека пользовательских блоков одна.
Иерархическая система доступа, всё в новом редакторе.
Много удобных утилит (счетчики, генераторы, конверторы и т.д.).
Есть сенсоры DHT22,DS1820 (библиотека 1-Wire внутри своя, на основе стандартной). Сенсоры будут добавляться.
Включена библиотека LCD HD44780. В режимах i2c, SPI поддерживает дисплеи 40x4 - спасибо одному из участников форума, довели совместными усилиями.
EIS.01.СИСТЕМА вер.1.12 (11.07.21).zip
(594.08 КБ) 43 скачивания
3.Проверена на STM32F103C,STM32F103R,STM32F103V,STM32F407,STM32F411, Seeeduino XIAO M0.
И на обычных контроллерах конечно (AVR,DUE,ESP8266,ESP32).

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

Разработки ecoins

#1074

Сообщение ecoins » 11.07.2021{, 19:52}

Тесты к предыдущему посту.
FPROG_Test01_BOARD_v01_100721.zip
(456.23 КБ) 30 скачиваний
FPROG_Test02_LED_DHT22_DS1820_v01.zip
(681.96 КБ) 25 скачиваний
FPROG_Test03_SHED_LED_DHT22_DS1820_LCD_v01.zip
(1.43 МБ) 38 скачиваний
Тесты на C++ продублированы в примерах к библиотеке RT_HW_BASE.h в Arduino IDE.
Раньше создание таких примеров отнимало много времени, но неожиданно открыли новую возможность:
создаем проекты в FLProg на наших блоках с комментариями и после испытания сохраняем их в формате .ino, которые и сохраняем в библиотеке.
Оказалось ну очень удобно и быстро....

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

Разработки ecoins

#1075

Сообщение ecoins » 11.07.2021{, 20:19}

Фото стенда.
IMG_3065.jpg
В контролеры Arduino UNO, Arduino Nano, STM32F103C, STM32F411CE, STM32F407VE
загружен один и тот же проект (третий из поста 1081) непосредственно из Arduino IDE, менялся только тип контроллера и номер порта - больше никаких изменений в проекте.
В этом проекте не используются никакие внешние библиотеки, кроме RT_HW_BASE.h и непосредственно из CORE соответствующего контроллера.
Для STM32 поддерживаются оба ядра (в них есть отличия, которые библиотека обрабатывает).

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

Разработки ecoins

#1076

Сообщение ecoins » 11.07.2021{, 20:27}

Сравнение быстродействия разных контроллеров по самому простому тесту - среднее время цикла loop() на одном и том тесте.
Измерено логическим анализатором.
LA_стенд.png
Arduino UNO,Nano - 20ms;
STM32F103C - 7ms;
STM32F411CE-5ms;
STM32F407VE-4ms.
В действительности быстродействие (в совокупности) STM32 существенно выше, чем у AVR,DUE,ESP8266(и несколько больше чем у ESP32). Так на одних и тех же частотах у них побыстрее шина i2c - это оказалось неожиданным и для нас.
Последний раз редактировалось ecoins 12.07.2021{, 07:32}, всего редактировалось 2 раза.

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

Разработки ecoins

#1077

Сообщение ecoins » 11.07.2021{, 21:00}

tolochko писал(а):
11.07.2021{, 17:32}
Заранее спасибо
Буду ждать ответ
1.Благодарим за то, что Вы используете наши блоки.
Ваш тест несколько изменил на основе новой библиотеки и новых блоков.
FLProg_Датчик T_H_CO2 _v2.zip
(1.14 МБ) 39 скачиваний
2.Проверили на стенде.
Копия IMG_3066.jpg
3.Понравилась Ваша плата по расчету влажности. После наших изменений она возможно не вполне работает.
Если Вы её доработаете, то мы с учетом Ваших рекомендаций с интересом включили бы его в библиотеку и сделали бы пользовательский блок.
4.Какие особенности увидели в исходном варианте:
4.1. В проекте UART0 используется для MоdBus. В блоке чтения газа (видимо на этапе отладки) были оставлены строки использования этого же порта для вывода считанного значения из датчика - соответственно при работе с KaScada (если Вы используете его в качестве внешнего пульта) или другой SCADA возможны сбои.
4.2.Опрос внешнего датчика СО2 осуществляется через программный UART. Отправляется команда и сразу чтение из порта. Это правильнее делать несколько иначе. Соответственно если датчика нет, то зависание на 1 сек (и это еще видимо спасибо за реализации SoftSerial - могло висеть вечно). Этот блок надо делать иначе.
4.3.Почти не предусмотрено средства для отладки - без них сложно отлаживать подобные проекты.
5. В Ваш проект мы встроили несколько отладочных средств:
5.1. Мерцает светодиод на плате каждые 250мс - по нему видно как "тормозит" плата каждые 5 сек (такое время опроса мы установили в проекте).
5.2. Есть блок вывода на консоль (терминал Arduino IDE) - при не подключенном мастере его можно использовать (в комментариях написано как).
5.3. Добавлена плата вывода на LCD через i2c - работает очень шустро. На него выведены пять параметров, три флага ok для сенсоров и мерцающий символ в первой позиции - по нему тоже видно, когда проект тормозит.
6.0. Ну и встроили разные новые сервисные блоки - так проект получается и проще, и понятнее.
7.0. Этот же проект мы грузили и в STM32 - все хорошо работает. Рекомендуем поглядывать в эту сторону :smile427:
-----
Успехов.

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#1078

Сообщение tolochko » 11.07.2021{, 22:25}

Спасибо
сегодня уже не смогу проверить
Завтра обязательно отпишусь

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#1079

Сообщение tolochko » 13.07.2021{, 16:11}

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

Отправлено спустя 4 минуты 26 секунд:
Да я термодатчики сухой и мокрый переставил на одну плату
посмотрю что получится

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

Разработки ecoins

#1080

Сообщение ecoins » 13.07.2021{, 16:33}

tolochko писал(а):
13.07.2021{, 16:16}
я думаю чтоб он корректно работал нужно данные с термометров получать синхронно
а ваши блоки опрашиваются по очереди как я понимаю
Это не имеет большого значения. И у Вас они опрашиваются последовательно.
tolochko писал(а):
13.07.2021{, 16:16}
Да и я не понимаю что такое консоль где смотреть данные
Консоль - это монитор порта.

Закрыто

Вернуться в «Команда ecoins»