Разработки ecoins
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
Разработки ecoins
Выкладываю простой тест ввода с регистра B и вывода считанного значения в регистр А.
Библиотека не менялась, в блоке добавлено описание и сделаны более понятные названия пользовательских переменных.
Кроме приложенной библиотеки и пользовательского блока (в проекте) никаких нестандартных дополнений не требуется.
[spoiler title=Простой тест ввода.вывода на MCP23017] [/spoiler] Основной цикл программы 13мкс. Каждые 50мкс такт на 350 мкс - идет обмен по i2c.
Библиотека не менялась, в блоке добавлено описание и сделаны более понятные названия пользовательских переменных.
Кроме приложенной библиотеки и пользовательского блока (в проекте) никаких нестандартных дополнений не требуется.
[spoiler title=Простой тест ввода.вывода на MCP23017] [/spoiler] Основной цикл программы 13мкс. Каждые 50мкс такт на 350 мкс - идет обмен по i2c.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
Разработки ecoins
p.s. В предыдущем посте уточнил картинку проекту - прикрепил обновленную - точно соответствующую прикрепленному файлу.
-
- Сержант
- Сообщения: 194
- Зарегистрирован: 29 авг 2016, 22:44
- Откуда: Серпухов
- Имя: Александр
Разработки ecoins
Вот теперь понятно. А еще узнать хочется подробнее про вход addr (почему именно 32)
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
Разработки ecoins
Это базовый адрес микросхемы mcp23017 на шине i2c. Ecли установить перемычки A0-A2, будет другой адрес. Лучше всего установить адрес сканером шины i2c - адрес на входе в десятичном формате.
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Разработки ecoins
Неясно с возможностью убрать ранее выведенный текст, вход EN просто останавливает обновление. Это хорошо для демонстрации, но затрудняет практическое применение. Так же хотелось бы иметь управление подсветкой по I2C.ecoins писал(а): 18 июл 2019, 10:33 Относительно стирания - строки. Такая возможность предусмотрена - при настройке параметров укажите длину строки=0, и при выводе параметра строка будет полностью стерта, начиная с указанной в параметрах колонки.
Результат будет отображаться между заданной колонкой и концом строки с форматами - влево - по умолчанию, по центру, вправо.
-
- Сержант
- Сообщения: 194
- Зарегистрирован: 29 авг 2016, 22:44
- Откуда: Серпухов
- Имя: Александр
Разработки ecoins
Все работает. Я абсолютно счастлив. Сколько было мытарств. Теперь буду тестить на надежность. Спасибо!!ecoins писал(а): 21 июл 2019, 22:13 Это базовый адрес микросхемы mcp23017 на шине i2c. Ecли установить перемычки A0-A2, будет другой адрес. Лучше всего установить адрес сканером шины i2c - адрес на входе в десятичном формате.
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
Разработки ecoins
Рад за Вас. Успехов.zhulen820 писал(а): 22 июл 2019, 00:00 #248 Все работает. Я абсолютно счастлив. Сколько было мытарств. Теперь буду тестить на надежность. Спасибо!!
Хочу обратить внимание на свойство блока. Если произойдет обрыв i2c, программа самыми короткими по времени транзакциями будет пытаться восстановить с ним связь - первый раз через 100мс, потом через 200мс, и так далее до 5сек. С этим периодом (5 сек) программа будет продолжать искать контроллер с заданным адресом.
Указанное свойство:
1. разгружает шину i2c от не нужных транзакций;
2. позволяет переподключать mcp23017 во время работы.
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
Разработки ecoins
Подумаем, что-нибудь предложим.RedSky писал(а): 21 июл 2019, 23:05 Неясно с возможностью убрать ранее выведенный текст, вход EN просто останавливает обновление. Это хорошо для демонстрации, но затрудняет практическое применение. Так же хотелось бы иметь управление подсветкой по I2C.
Отправлено спустя 32 минуты 28 секунд:
Требуется уточнение Вашего вопроса.
Мы никогда не использовали блок управления яркости Lcd из FLProg. Функционально этот блок устанавливает/отключает опцию подсветки Lcd.
Управлять яркостью через эту опцию не получается, только мерцание экрана. Выключать подсветку - да, это работает и может быть использовано с нашей библиотекой. При этом надо иметь ввиду, что этот блок непрерывно посылает транзакции в шину i2c и потому цикл loop() даже на простом тесте с одной записью более 20мс.
[spoiler title=Схема проекта] [/spoiler] линия 1 - цикл loop(), линии 2,3 загрузка шины i2c.
К сожалению стандартные библиотеки i2c при работе "тормозят" - они написаны без учета аппаратных прерываний.
Вопрос: как ВЫ сейчас управляете яркостью?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Разработки ecoins
[ref]ecoins[/ref], не имел ввиду регулировку яркости, хотел именно вкл./выкл. А что бы вход EN работал подобно штатным блокам. К примеру EN снимается, дисплей очищается и в следующем цикле заново отрисовывается без ненужного блока.
А частота обновления показаний я так понял ограничена снизу 200мс независимо от установленной в параметрах блока?
А частота обновления показаний я так понял ограничена снизу 200мс независимо от установленной в параметрах блока?
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
Разработки ecoins
По включению/выключению дисплея. Можете пока спокойно пользоваться стандартным блоком. только надо вызывать его на отдельной плате по событиям (однократный импульс). - Свой чуть позже сделаем.RedSky писал(а): 22 июл 2019, 12:06 [ref]ecoins[/ref], не имел ввиду регулировку яркости, хотел именно вкл./выкл. А что бы вход EN работал подобно штатным блокам. К примеру EN снимается, дисплей очищается и в следующем цикле заново отрисовывается без ненужного блока.
А частота обновления показаний я так понял ограничена снизу 200мс независимо от установленной в параметрах блока?
В библиотеке ограничили минимальное время частоты обновления =200мс. Чтобы детишки в Академии не баловались нулевыми значениями - проекты будут тормозиться. При необходимости можем сделать настройку этого ограничения в блоке lcd.begin().
Не сделали это сразу - оперативную память экономии. Обращаю внимание, что блоки lcd от ecoins относительно стандартного блока FLProg потребляют больше памяти. Для средних проектов на Arduino Nano это ощущается, на Mega2560 уже нет.
Разработки ecoins
[ref]ecoins[/ref], Добрый день! А могли бы вы проверить то что я наваял, я скетч выложу сюда. У меня есть блок управления светом пятиканальный на базе ESP8266_07 и MCP23017+каскада. В принципе он работает достаточно хорошо, но как только добавил обратную связь чтобы контролировать удалённые комнаты включен или выключен свет. То сразу начинаются тормоза, вот я и подумал, что ваш блок, как вы пишите работает шустрее. На сколько я разобрался во всём на столько и нарисовал скетч, проверить пока нет возможности, а вы сразу увидите что не так. Короче на моем примере покажите людям как правильно.
Думаю многим будет интересно увидеть на живом примере как всё это работает, всю жизнь с промышленной электроникой, программированием занимались поверхностно многие здесь обитающие.
Думаю многим будет интересно увидеть на живом примере как всё это работает, всю жизнь с промышленной электроникой, программированием занимались поверхностно многие здесь обитающие.
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
Разработки ecoins
Да, конечно. Выкладывайте проект на FLProg и KaScada. И предварительные вопросы: в KaScade вы при настройке устройства связи устанавливаете паузу? Она обязательная и лучше установить её не менее 50мс.olddolin писал(а): 22 июл 2019, 16:27 [ref]ecoins[/ref], Добрый день! А могли бы вы проверить то что я наваял, я скетч выложу сюда. У меня есть блок управления светом пятиканальный на базе ESP8266_07 и MCP23017+каскада. В принципе он работает достаточно хорошо, но как только добавил обратную связь чтобы контролировать удалённые комнаты включен или выключен свет. То сразу начинаются тормоза, вот я и подумал, что ваш блок, как вы пишите работает шустрее. На сколько я разобрался во всём на столько и нарисовал скетч, проверить пока нет возможности, а вы сразу увидите что не так. Короче на моем примере покажите людям как правильно.
Думаю многим будет интересно увидеть на живом примере как всё это работает, всю жизнь с промышленной электроникой, программированием занимались поверхностно многие здесь обитающие.
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
Разработки ecoins
Страшнее бездействие - оно незаметно останавливает развитие, а потом наклонная плоскость направляет кого-куда: пространные рассуждение, мракобесие и т.п.
-----------------------
О Вашем проекте. Мне кажется Вы не тот файл прикрепили - там KaScada (Modbus) не прописаны.
Разработки ecoins
А это уже из области туп-туп:) Ну вот видите бывает, удалить бы предыдущий пост
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.
-
- Полковник
- Сообщения: 4010
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 155 раз
Разработки ecoins
viewtopic.php?p=73429#p73429
Сразу - у Вас стоит адрес 0 на MCP23017 - надо устанавливать физический адрес, который определяется сканированием шины i2c. Базовый адрес, который скорее всего надо установить 32. Когда проверял Вашу программу - выявилась ошибка, которую я поправлю попозже - если нет устройства с эти адресом - все плохо.
Очень сожалею - вызывает неудобства, некрасиво, поправим.
Еще регистры KaScada надо начинать с 10 - у Вас 0 и 1.
Программу без KaScada проверил - без тормозов, основной цикл 25mcs, 1 раз в 100мс(так работает мультивибратор + RTrig) еще 400 мкс.
Когда подключите KaScada - еще 1мс 1раз в 50мс(если такую паузу установите в KaScada). Проект, на котором проверял. Не забудьте.подтягивать резисторы + питания sda,scl.
Сразу - у Вас стоит адрес 0 на MCP23017 - надо устанавливать физический адрес, который определяется сканированием шины i2c. Базовый адрес, который скорее всего надо установить 32. Когда проверял Вашу программу - выявилась ошибка, которую я поправлю попозже - если нет устройства с эти адресом - все плохо.

Еще регистры KaScada надо начинать с 10 - у Вас 0 и 1.
Программу без KaScada проверил - без тормозов, основной цикл 25mcs, 1 раз в 100мс(так работает мультивибратор + RTrig) еще 400 мкс.
Когда подключите KaScada - еще 1мс 1раз в 50мс(если такую паузу установите в KaScada). Проект, на котором проверял. Не забудьте.подтягивать резисторы + питания sda,scl.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Разработки ecoins
На счёт адреса каскады, это прописаны адреса в есп, а уже в каскаде я их куда хочу, туда и пропишу, главное адресecoins писал(а): 22 июл 2019, 19:35 viewtopic.php?p=73429#p73429
Сразу - у Вас стоит адрес 0 на MCP23017 - надо устанавливать физический адрес, который определяется сканированием шины i2c. Базовый адрес, который скорее всего надо установить 32. Когда проверял Вашу программу - выявилась ошибка, которую я поправлю попозже - если нет устройства с эти адресом - все плохо.Очень сожалею - вызывает неудобства, некрасиво, поправим.
Еще регистры 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
- Полковник
- Сообщения: 5726
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 222 раза
- Контактная информация:
Разработки ecoins
[/quote]На счёт адреса каскады, это прописаны адреса в есп, а уже в каскаде я их куда хочу, туда и пропишу, главное адрес
устройства 9й в каскаде прописать. Хорошо конечно ориентироваться там 10 и там 10, но я уже как-то привык,в ПР200 вообще с 512 начинаются пользовательские, в каскаде таких нет, 200 максимум
[/quote]
Про адреса правильно говорите ,с нуля это в конроллере ...199- максимум
в каскаде
устройства 9й в каскаде прописать. Хорошо конечно ориентироваться там 10 и там 10, но я уже как-то привык,в ПР200 вообще с 512 начинаются пользовательские, в каскаде таких нет, 200 максимум
[/quote]
Про адреса правильно говорите ,с нуля это в конроллере ...199- максимум

Электронщик до мозга костей и не только
Разработки ecoins
[ref]ecoins[/ref], Посмотрел внимательнее ваш вариант, на сколько я понял первая плата для замера цикла используется и только-то?
В флпрог на есп строго прописаны пины на i2c (0,2) Могу я вашими средствами поменять их? Блок в первых постах я скачал.
В флпрог на есп строго прописаны пины на i2c (0,2) Могу я вашими средствами поменять их? Блок в первых постах я скачал.
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя