Uno + Nextion + расширитель портов на pcf8574 + 18b20

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение Sancho »

SSSergeich писал(а): 29 дек 2018, 16:29Берем две картинки, на одной все выключены, на другой все включены, далее в атрибутах есть два параметра picc0 и picc1, в первую гружу неактивную картинку, во вторую активную.
Но это атрибуты кнопки!
Например, в других прогах, есть прямоугольник, цвет в котором можно менять атрибутом 0/1, или картинка с атрибутом "скрыть" 0/1.
Или я пока не догоняю?
Вот пытаюсь разобраться как у Вас работает - не вкуриваю, чесн слово. :(

Отправлено спустя 2 минуты 18 секунд:
Он, получается, только зону кнопки меняет с разных картинок???

Отправлено спустя 1 минуту 27 секунд:
Точно, попробовал сдвинул кнопку!!!! Вот фокус!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

Я тоже долго вникал, посмотрел уроки от Сергея Глушенко и разобрался.
У него вроде во втором уроке был пример как загорается символ солнца
Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17 июл 2017, 18:39
Откуда: Днепр. UA
Имя: Григорий

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение grin-mpx »

Использование элемента Crop в панели. Может кому сгодится.
Crop.HMI
У вас нет необходимых прав для просмотра вложений в этом сообщении.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

Sancho писал(а): 29 дек 2018, 16:47Он, получается, только зону кнопки меняет с разных картинок???

Отправлено спустя 1 минуту 27 секунд:
Точно, попробовал сдвинул кнопку!!!! Вот фокус!
По другому сказать, берется одна картинка, на нее сверху накладывается вторая, а активность/неактивность меняет прозрачность между ними размерным окошком кнопки.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение Sancho »

Понято. Вот хитро то как :)
Но картинок меньше в проекте! И делать проще, относительно...

Отправлено спустя 3 часа 4 минуты 2 секунды:
[ref]SSSergeich[/ref], Затести.
Не знаю, заработает-ли, но старался. :moil:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

[ref=#ff8000]Sancho[/ref], Ух!
Интересный подход!)
Сижу изучаю, в железе только завтра смогу проверить, на работе оставил.
P.S. Мое предложение самому потестить экранчик в силе.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

[ref=#ff8000]Sancho[/ref], Спасибо!!!
Каюсь, с предновогодней суетой так и не смог заскочить на работу днем... Самому не терпится пощупать...
Буду пытаться в ближайшие дни забрать.
С наступающим Новым Годом!!! :smile160:
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

[ref=#ff8000]Sancho[/ref],
Залил проги в экран и в уно. Где-то что-то не так. На экране кнопки нажимаются, данные в окошке изменяются, но уно никак не реагирует.
Экран постоянно норовит переключиться на первую страницу "заглушка". Интервалы времени беспорядочные, от 1 секунды и до 20.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

Переключение идет из-за платы 3.
Сменил ID у Page0 c 0 на 1. Рефрешить стало страницу с кнопками. Управления нет.
Не могу понять в чем затык

Отправлено спустя 3 минуты 56 секунд:
Добавил lcd экран, так сказать для дебага.
Строка1, столбец 1 - пусто
Строка2, столбец 1 - пусто
Строка3, столбец 1 - пусто
Строка4, столбец 1 - 0
Строка1, столбец 5 - 0.0

Отправлено спустя 24 минуты 15 секунд:
Добавил HMI
У вас нет необходимых прав для просмотра вложений в этом сообщении.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

Ещё забыл добавить, во время рефреша панели, lcd дисплей тоже "промаргивает", такое ощущение, что ребутится контроллер. Не помню, включал в настройках ватчдог или нет, вроде включал.
Надо было включить счётчик с выводом на lcd, чтобы понять, работает контроллер или вообще висит с самого начала.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

Воткнул счетчик с выводом на lcd, мои предположения подтвердились, проблему создает 3-я плата, контроллер с ней висит.
При отключении компиляции 3-й платы, температура показывается, счетчик считает.
[spoiler=]
trabl.PNG
[/spoiler]
Отправлено спустя 12 минут 12 секунд:
Что в ней такого критичного, что вешает контроллер?

Отправлено спустя 2 часа 33 минуты 33 секунды:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось SSSergeich 07 янв 2019, 11:46, всего редактировалось 2 раза.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

Вот,[ref=#ff8000]Sancho[/ref], вот голова! :smile9:
Значит первое, рад личному знакомству! :)
Второе - причина зависания была найдена и устранена по телефону.
В моем первоначальном проекте и использовалось 3 блока PCF8574_out, при этом физически была подключена только одна плата с адресом 3C.
Автор блока, полагая, что у меня подключены все 3 платы, оптимизировал проект с использованием 3-х блоков PCF8574 byte_in byte_out. Проблема была в том, что нельзя использовать блоки с адресами физически отсутствующих устройств на шине I2C.
Третье - Есть проблема в передаче числа с панели в ардуино. А именно, нормально передаются числа до 32767. Если я пересылаю число "32768", то UNO получает это число уже как "-32768". Соответственно, если передаю "49512", значение переменной в UNO принимает "-16384".
Осталось разобраться кто "косячит", экран NEXTION ( но на экране число отображается правильно), библиотека NEXTION или блок NEXTION в FLProg.
Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27 ноя 2017, 13:15
Откуда: Rus44
Имя: Michael
Контактная информация:

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение Alias »

Я тоже встречался с такой проблемой viewtopic.php?p=52263#p52263
Не помню, писал Автору или нет, но можно вопрос задать. В панели всплывающая подсказка говорит, что по крайней мере системные переменные - четырехбайтные. Но, мне кажется, что вдвое короче.
Думаю, до панели Автору долго еще будет не добраться...
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

Обновился с версии 4.2.0 на версию 4.2.2.
Перестал компилироваться проект, получаю ошибку:
[spoiler]

Код: Выделить всё

In function 'global constructors keyed to 65535_0_pr2.ino.cpp.o':

lto1.exe: internal compiler error: Segmentation fault

Please submit a full bug report,

with preprocessed source if appropriate.

See <http://gcc.gnu.org/bugs.html> for instructions.

lto-wrapper.exe: fatal error: c:\Users\User\Documents\FlProg\ideV2\portable\packages\arduino\tools\avr-gcc\5.4.0-atmel3.6.1-arduino2/bin/avr-gcc returned 1 exit status

compilation terminated.

c:/users/user/documents/flprog/idev2/portable/packages/arduino/tools/avr-gcc/5.4.0-atmel3.6.1-arduino2/bin/../lib/gcc/avr/5.4.0/../../../../avr/bin/ld.exe: error: lto-wrapper failed

collect2.exe: error: ld returned 1 exit status

Несколько библиотек найдено для "OneWire.h"
 Используется: c:\Users\User\Documents\FlProg\ideV2\portable\sketchbook\libraries\OneWire
Не используется: c:\Users\User\Documents\FlProg\ideV2\libraries\OneWire
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
[/spoiler]
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение Sancho »

SSSergeich писал(а): 03 янв 2019, 22:06Перестал компилироваться проект, получаю ошибку:
Плата, менеджер плат Arduino AVR Boards. Поставить 1.6.21 или 23
У меня 1.6.23 - всё ок. Ардуино IDE внешняя, 1.8.8
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

Sancho писал(а): 04 янв 2019, 08:53Плата, менеджер плат Arduino AVR Boards. Поставить 1.6.21 или 23
У меня 1.6.23 - всё ок. Ардуино IDE внешняя, 1.8.8
Так же 1.6.23, только Ардуино IDE 1.8.1
Снес FLProg, установил по новой - заработало.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение Sancho »

В результате теста на реальном железе выявлена проблема приёма из панели Nextion числовой переменной long int - принимаются только два младших байта.
Панель передаёт все 4 байта младшим байтом вперёд в виде 71 01 02 04 08 FF FF FF , где 01 02 04 08 - четырёх-байтная переменная.
Панель для экспериментов любезно предоставлена [ref]SSSergeich[/ref].
[spoiler]
screenshot_19-01-05_12-30-30.png
screenshot_19-01-05_12-26-28.png
[/spoiler]

Отправлено спустя 2 часа 39 минут 8 секунд:
support писал(а): 05 янв 2019, 13:55
Sancho писал(а): 05 янв 2019, 12:30Прошу Автора обратить внимание на проблемку с Nextion панелью
Немного попозже, сейчас со временем туго. На днях выложу новую версию, а потом буду занят с головой (по основной работе припахали((( )
Временное решение:
Найти строку в IDE, внизу программы,
temp.number = (cmd[4] << 24) | (cmd[3] << 16) | (cmd[2] << 8) | (cmd[1]);
Заменить на
temp.number = uint32_t(cmd[4]) << 24 | uint32_t(cmd[3]) << 16 | uint32_t(cmd[2]) << 8 | uint32_t(cmd[1]);
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

[ref=#404040]Alias[/ref], Проблема подтвердилась :) Я тоже хотел пропустить её и применить один из костылей (либо преобразованием в строку либо использовать ещё одну 2-х байтовую переменную), если бы не дотошность Александра, зачем, говорит, нам костыли, на прямых ногах ходить гоже. :)
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение Sancho »

Sancho писал(а): 05 янв 2019, 14:51Временное решение:
Найти строку в IDE, внизу программы,
temp.number = (cmd[4] << 24) | (cmd[3] << 16) | (cmd[2] << 8) | (cmd[1]);
Заменить на
temp.number = (uint32_t)cmd[4] << 24 | (uint32_t)cmd[3] << 16 | (cmd[2] << 8) | (cmd[1]);
Дальнейшие тесты показали - не совсем всё Ок.
Необходимо такое вставлять:
temp.number = (uint32_t)cmd[4] << 24 | (uint32_t)cmd[3] << 16 | (uint32_t)cmd[2] << 8 | (uint32_t)cmd[1];
Или так:
temp.number = uint32_t(cmd[4]) << 24 | uint32_t(cmd[3]) << 16 | uint32_t(cmd[2]) << 8 | uint32_t(cmd[1]);
Кому чего больше нравится :)
Тогда всё ок.

Отправлено спустя 15 минут 52 секунды:
По-ходу, надо новую тему завести с идеями оптимизации по Nextion и т.д. :)

Отправлено спустя 2 часа 23 минуты 34 секунды:
Ещё засада :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Uno + Nextion + расширитель портов на pcf8574 + 18b20

Сообщение SSSergeich »

Sancho писал(а): 06 янв 2019, 11:53По-ходу, надо новую тему завести с идеями оптимизации по Nextion и т.д. :)
Заводи)
Может еще блоков каких придумаешь :)
SSSergeich писал(а): 03 янв 2019, 20:54Проблема была в том, что нельзя использовать блоки с адресами физически отсутствующих устройств на шине I2C.
Не могу понять, почему контроллер виснет при отключенных или не подключенных устройствах I2C? Ведь тот же самый lcd экран с I2C спокойно можно отключать и подключать и это не вызывает зависания контроллера :smile427:
Ответить

Вернуться в «Помогите, а то я "нимагу"»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость