Разработки ecoins

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

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

Разработки ecoins

#241

Сообщение ecoins » 21.07.2019{, 20:23}

Выкладываю простой тест ввода с регистра B и вывода считанного значения в регистр А.
Библиотека не менялась, в блоке добавлено описание и сделаны более понятные названия пользовательских переменных.
Кроме приложенной библиотеки и пользовательского блока (в проекте) никаких нестандартных дополнений не требуется.
Простой тест ввода.вывода на MCP23017Показать
К 801_Простой тест MCP23017.JPG
0801_Простой тест mcp_210719.flp
(122.22 КБ) 105 скачиваний
RT_05_HW_MCP23017_v1.2.zip
(7.47 КБ) 101 скачивание
Основной цикл программы 13мкс. Каждые 50мкс такт на 350 мкс - идет обмен по i2c.

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

Разработки ecoins

#242

Сообщение ecoins » 21.07.2019{, 21:04}

p.s. В предыдущем посте уточнил картинку проекту - прикрепил обновленную - точно соответствующую прикрепленному файлу.

zhulen820
Сержант
Сообщения: 193
Зарегистрирован: 29.08.2016{, 22:44}
Репутация: 6
Откуда: Серпухов
Имя: Александр

Разработки ecoins

#243

Сообщение zhulen820 » 21.07.2019{, 21:51}

Вот теперь понятно. А еще узнать хочется подробнее про вход addr (почему именно 32)

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

Разработки ecoins

#244

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

Это базовый адрес микросхемы mcp23017 на шине i2c. Ecли установить перемычки A0-A2, будет другой адрес. Лучше всего установить адрес сканером шины i2c - адрес на входе в десятичном формате.

zhulen820
Сержант
Сообщения: 193
Зарегистрирован: 29.08.2016{, 22:44}
Репутация: 6
Откуда: Серпухов
Имя: Александр

Разработки ecoins

#245

Сообщение zhulen820 » 21.07.2019{, 22:19}

понятно. Теперь буду тестить

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

Разработки ecoins

#246

Сообщение RedSky » 21.07.2019{, 23:05}

ecoins писал(а):
18.07.2019{, 10:33}
Относительно стирания - строки. Такая возможность предусмотрена - при настройке параметров укажите длину строки=0, и при выводе параметра строка будет полностью стерта, начиная с указанной в параметрах колонки.
Результат будет отображаться между заданной колонкой и концом строки с форматами - влево - по умолчанию, по центру, вправо.
Неясно с возможностью убрать ранее выведенный текст, вход EN просто останавливает обновление. Это хорошо для демонстрации, но затрудняет практическое применение. Так же хотелось бы иметь управление подсветкой по I2C.

zhulen820
Сержант
Сообщения: 193
Зарегистрирован: 29.08.2016{, 22:44}
Репутация: 6
Откуда: Серпухов
Имя: Александр

Разработки ecoins

#247

Сообщение zhulen820 » 22.07.2019{, 00:00}

ecoins писал(а):
21.07.2019{, 22:13}
Это базовый адрес микросхемы mcp23017 на шине i2c. Ecли установить перемычки A0-A2, будет другой адрес. Лучше всего установить адрес сканером шины i2c - адрес на входе в десятичном формате.
Все работает. Я абсолютно счастлив. Сколько было мытарств. Теперь буду тестить на надежность. Спасибо!!

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

Разработки ecoins

#248

Сообщение ecoins » 22.07.2019{, 09:04}

zhulen820 писал(а):
22.07.2019{, 00:00}
#248 Все работает. Я абсолютно счастлив. Сколько было мытарств. Теперь буду тестить на надежность. Спасибо!!
Рад за Вас. Успехов.
Хочу обратить внимание на свойство блока. Если произойдет обрыв i2c, программа самыми короткими по времени транзакциями будет пытаться восстановить с ним связь - первый раз через 100мс, потом через 200мс, и так далее до 5сек. С этим периодом (5 сек) программа будет продолжать искать контроллер с заданным адресом.
Указанное свойство:
1. разгружает шину i2c от не нужных транзакций;
2. позволяет переподключать mcp23017 во время работы.

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

Разработки ecoins

#249

Сообщение ecoins » 22.07.2019{, 10:05}

RedSky писал(а):
21.07.2019{, 23:05}
Неясно с возможностью убрать ранее выведенный текст, вход EN просто останавливает обновление. Это хорошо для демонстрации, но затрудняет практическое применение. Так же хотелось бы иметь управление подсветкой по I2C.
Подумаем, что-нибудь предложим.

Отправлено спустя 32 минуты 28 секунд:
Требуется уточнение Вашего вопроса.
Мы никогда не использовали блок управления яркости Lcd из FLProg. Функционально этот блок устанавливает/отключает опцию подсветки Lcd.
Управлять яркостью через эту опцию не получается, только мерцание экрана. Выключать подсветку - да, это работает и может быть использовано с нашей библиотекой. При этом надо иметь ввиду, что этот блок непрерывно посылает транзакции в шину i2c и потому цикл loop() даже на простом тесте с одной записью более 20мс.
Схема проектаПоказать
Схема теста яркости lcd.JPG
Схема теста яркости lcd.JPG (18.08 КБ) 980 просмотров
Снимок с регулировкой яркости.JPG
Снимок с регулировкой яркости.JPG (18.69 КБ) 980 просмотров
линия 1 - цикл loop(), линии 2,3 загрузка шины i2c.
К сожалению стандартные библиотеки i2c при работе "тормозят" - они написаны без учета аппаратных прерываний.
Вопрос: как ВЫ сейчас управляете яркостью?

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

Разработки ecoins

#250

Сообщение RedSky » 22.07.2019{, 12:06}

ecoins, не имел ввиду регулировку яркости, хотел именно вкл./выкл. А что бы вход EN работал подобно штатным блокам. К примеру EN снимается, дисплей очищается и в следующем цикле заново отрисовывается без ненужного блока.
А частота обновления показаний я так понял ограничена снизу 200мс независимо от установленной в параметрах блока?

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

Разработки ecoins

#251

Сообщение ecoins » 22.07.2019{, 12:27}

RedSky писал(а):
22.07.2019{, 12:06}
ecoins, не имел ввиду регулировку яркости, хотел именно вкл./выкл. А что бы вход EN работал подобно штатным блокам. К примеру EN снимается, дисплей очищается и в следующем цикле заново отрисовывается без ненужного блока.
А частота обновления показаний я так понял ограничена снизу 200мс независимо от установленной в параметрах блока?
По включению/выключению дисплея. Можете пока спокойно пользоваться стандартным блоком. только надо вызывать его на отдельной плате по событиям (однократный импульс). - Свой чуть позже сделаем.
В библиотеке ограничили минимальное время частоты обновления =200мс. Чтобы детишки в Академии не баловались нулевыми значениями - проекты будут тормозиться. При необходимости можем сделать настройку этого ограничения в блоке lcd.begin().
Не сделали это сразу - оперативную память экономии. Обращаю внимание, что блоки lcd от ecoins относительно стандартного блока FLProg потребляют больше памяти. Для средних проектов на Arduino Nano это ощущается, на Mega2560 уже нет.

Аватара пользователя
olddolin
Сержант
Сообщения: 245
Зарегистрирован: 08.09.2017{, 19:47}
Репутация: 14
Откуда: Тверь
Имя: Вадим

Разработки ecoins

#252

Сообщение olddolin » 22.07.2019{, 15:57}

ecoins, Добрый день! А могли бы вы проверить то что я наваял, я скетч выложу сюда. У меня есть блок управления светом пятиканальный на базе ESP8266_07 и MCP23017+каскада. В принципе он работает достаточно хорошо, но как только добавил обратную связь чтобы контролировать удалённые комнаты включен или выключен свет. То сразу начинаются тормоза, вот я и подумал, что ваш блок, как вы пишите работает шустрее. На сколько я разобрался во всём на столько и нарисовал скетч, проверить пока нет возможности, а вы сразу увидите что не так. Короче на моем примере покажите людям как правильно.
Думаю многим будет интересно увидеть на живом примере как всё это работает, всю жизнь с промышленной электроникой, программированием занимались поверхностно многие здесь обитающие.
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.

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

Разработки ecoins

#253

Сообщение ecoins » 22.07.2019{, 16:41}

olddolin писал(а):
22.07.2019{, 16:27}
ecoins, Добрый день! А могли бы вы проверить то что я наваял, я скетч выложу сюда. У меня есть блок управления светом пятиканальный на базе ESP8266_07 и MCP23017+каскада. В принципе он работает достаточно хорошо, но как только добавил обратную связь чтобы контролировать удалённые комнаты включен или выключен свет. То сразу начинаются тормоза, вот я и подумал, что ваш блок, как вы пишите работает шустрее. На сколько я разобрался во всём на столько и нарисовал скетч, проверить пока нет возможности, а вы сразу увидите что не так. Короче на моем примере покажите людям как правильно.
Думаю многим будет интересно увидеть на живом примере как всё это работает, всю жизнь с промышленной электроникой, программированием занимались поверхностно многие здесь обитающие.
Да, конечно. Выкладывайте проект на FLProg и KaScada. И предварительные вопросы: в KaScade вы при настройке устройства связи устанавливаете паузу? Она обязательная и лучше установить её не менее 50мс.

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

Разработки ecoins

#254

Сообщение ecoins » 22.07.2019{, 17:43}

olddolin писал(а):
22.07.2019{, 16:46}
Ну смотрите, страшно даже выкладывать.
Страшнее бездействие - оно незаметно останавливает развитие, а потом наклонная плоскость направляет кого-куда: пространные рассуждение, мракобесие и т.п.
-----------------------
О Вашем проекте. Мне кажется Вы не тот файл прикрепили - там KaScada (Modbus) не прописаны.

Аватара пользователя
olddolin
Сержант
Сообщения: 245
Зарегистрирован: 08.09.2017{, 19:47}
Репутация: 14
Откуда: Тверь
Имя: Вадим

Разработки ecoins

#255

Сообщение olddolin » 22.07.2019{, 17:52}

А это уже из области туп-туп:) Ну вот видите бывает, удалить бы предыдущий пост
Вложения
RT_svet_8266_mcp.flp
(301.1 КБ) 64 скачивания
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.

com
Капитан
Сообщения: 831
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 83
Откуда: Санкт-Петербург
Имя: Ринат

Разработки ecoins

#256

Сообщение com » 22.07.2019{, 18:09}

olddolin, нет файла каскады

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

Разработки ecoins

#257

Сообщение ecoins » 22.07.2019{, 19:35}

viewtopic.php?p=73429#p73429
Сразу - у Вас стоит адрес 0 на MCP23017 - надо устанавливать физический адрес, который определяется сканированием шины i2c. Базовый адрес, который скорее всего надо установить 32. Когда проверял Вашу программу - выявилась ошибка, которую я поправлю попозже - если нет устройства с эти адресом - все плохо. :smile37: Очень сожалею - вызывает неудобства, некрасиво, поправим.
Еще регистры KaScada надо начинать с 10 - у Вас 0 и 1.
Программу без KaScada проверил - без тормозов, основной цикл 25mcs, 1 раз в 100мс(так работает мультивибратор + RTrig) еще 400 мкс.
Когда подключите KaScada - еще 1мс 1раз в 50мс(если такую паузу установите в KaScada).
RT_svet_8266_mcp_v2.flp
(339.02 КБ) 77 скачиваний
Проект, на котором проверял. Не забудьте.подтягивать резисторы + питания sda,scl.

Аватара пользователя
olddolin
Сержант
Сообщения: 245
Зарегистрирован: 08.09.2017{, 19:47}
Репутация: 14
Откуда: Тверь
Имя: Вадим

Разработки ecoins

#258

Сообщение olddolin » 22.07.2019{, 19:54}

ecoins писал(а):
22.07.2019{, 19:35}
viewtopic.php?p=73429#p73429
Сразу - у Вас стоит адрес 0 на MCP23017 - надо устанавливать физический адрес, который определяется сканированием шины i2c. Базовый адрес, который скорее всего надо установить 32. Когда проверял Вашу программу - выявилась ошибка, которую я поправлю попозже - если нет устройства с эти адресом - все плохо. :smile37: Очень сожалею - вызывает неудобства, некрасиво, поправим.
Еще регистры KaScada надо начинать с 10 - у Вас 0 и 1.
Программу без KaScada проверил - без тормозов, основной цикл 25mcs, 1 раз в 100мс(так работает мультивибратор + RTrig) еще 400 мкс.
Когда подключите KaScada - еще 1мс 1раз в 50мс(если такую паузу установите в KaScada).
RT_svet_8266_mcp_v2.flp
Проект, на котором проверял. Не забудьте.подтягивать резисторы + питания sda,scl.
На счёт адреса каскады, это прописаны адреса в есп, а уже в каскаде я их куда хочу, туда и пропишу, главное адрес
устройства 9й в каскаде прописать. Хорошо конечно ориентироваться там 10 и там 10, но я уже как-то привык,в ПР200 вообще с 512 начинаются пользовательские, в каскаде таких нет, 200 максимум. В остальном я полностью удовлетворён, тобишь всё правильно сделал. Ну тогда как только появится возможность буду тестить на светодиодиках. Спасибо на добром слове, но думаю, что не окончена тема, просто быстро всё не могу делать, стройка, сезон, дожди.
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.

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

Разработки ecoins

#259

Сообщение Rovki » 22.07.2019{, 20:44}

[/quote]На счёт адреса каскады, это прописаны адреса в есп, а уже в каскаде я их куда хочу, туда и пропишу, главное адрес
устройства 9й в каскаде прописать. Хорошо конечно ориентироваться там 10 и там 10, но я уже как-то привык,в ПР200 вообще с 512 начинаются пользовательские, в каскаде таких нет, 200 максимум
[/quote]
Про адреса правильно говорите ,с нуля это в конроллере ...199- максимум :D в каскаде
Электронщик до мозга костей и не только

Аватара пользователя
olddolin
Сержант
Сообщения: 245
Зарегистрирован: 08.09.2017{, 19:47}
Репутация: 14
Откуда: Тверь
Имя: Вадим

Разработки ecoins

#260

Сообщение olddolin » 22.07.2019{, 20:53}

ecoins, Посмотрел внимательнее ваш вариант, на сколько я понял первая плата для замера цикла используется и только-то?
В флпрог на есп строго прописаны пины на i2c (0,2) Могу я вашими средствами поменять их? Блок в первых постах я скачал.
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.

Закрыто

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