Страница 13 из 80

Разработки ecoins

Добавлено: 21 июл 2019, 20:23
ecoins
Выкладываю простой тест ввода с регистра B и вывода считанного значения в регистр А.
Библиотека не менялась, в блоке добавлено описание и сделаны более понятные названия пользовательских переменных.
Кроме приложенной библиотеки и пользовательского блока (в проекте) никаких нестандартных дополнений не требуется.
[spoiler title=Простой тест ввода.вывода на MCP23017]
К 801_Простой тест MCP23017.JPG
[/spoiler]
0801_Простой тест mcp_210719.flp
RT_05_HW_MCP23017_v1.2.zip
Основной цикл программы 13мкс. Каждые 50мкс такт на 350 мкс - идет обмен по i2c.

Разработки ecoins

Добавлено: 21 июл 2019, 21:04
ecoins
p.s. В предыдущем посте уточнил картинку проекту - прикрепил обновленную - точно соответствующую прикрепленному файлу.

Разработки ecoins

Добавлено: 21 июл 2019, 21:51
zhulen820
Вот теперь понятно. А еще узнать хочется подробнее про вход addr (почему именно 32)

Разработки ecoins

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

Разработки ecoins

Добавлено: 21 июл 2019, 22:19
zhulen820
понятно. Теперь буду тестить

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

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

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

Разработки ecoins

Добавлено: 22 июл 2019, 12:06
RedSky
[ref]ecoins[/ref], не имел ввиду регулировку яркости, хотел именно вкл./выкл. А что бы вход EN работал подобно штатным блокам. К примеру EN снимается, дисплей очищается и в следующем цикле заново отрисовывается без ненужного блока.
А частота обновления показаний я так понял ограничена снизу 200мс независимо от установленной в параметрах блока?

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

Добавлено: 22 июл 2019, 17:52
olddolin
А это уже из области туп-туп:) Ну вот видите бывает, удалить бы предыдущий пост

Разработки ecoins

Добавлено: 22 июл 2019, 18:09
com
[ref]olddolin[/ref], нет файла каскады

Разработки ecoins

Добавлено: 22 июл 2019, 19:35
ecoins
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.

Разработки ecoins

Добавлено: 22 июл 2019, 19:54
olddolin
ecoins писал(а): 22 июл 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 максимум. В остальном я полностью удовлетворён, тобишь всё правильно сделал. Ну тогда как только появится возможность буду тестить на светодиодиках. Спасибо на добром слове, но думаю, что не окончена тема, просто быстро всё не могу делать, стройка, сезон, дожди.

Разработки ecoins

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

Разработки ecoins

Добавлено: 22 июл 2019, 20:53
olddolin
[ref]ecoins[/ref], Посмотрел внимательнее ваш вариант, на сколько я понял первая плата для замера цикла используется и только-то?
В флпрог на есп строго прописаны пины на i2c (0,2) Могу я вашими средствами поменять их? Блок в первых постах я скачал.