Использую дисплей Nextion, библиотеку Nextion.h и arduino leonardo, отправляю на него команды из Ардуино - все в порядке, дисплей реагирует. Нужна обратная связь! Получить команды формата "0x65 0x00 0x0c 0x01 0xff 0xff 0xff" из дисплея не получается, в мониторе порта ничего не отображается! На элементах, с которых нужно получить код, в редакторе стоит галочка "Send Component ID", в отладочном окне Nextion реакция на элементы(в частности - кнопки) положительная, нажатия идентифицируются и коды отображаются. Такое впечатление, что дисплей не отправляет данные. Подскажите в чем может быть проблема?
Подключение надежное и точно правильное. Код ReceiveMessages пример из библиотеки Nextion.h пробовал менять пины тоже самое. Как можно убедится в работоспособности самого дисплея?
А вы читали код, или скопировали его не думая о том, что он делает? Мне сдается, что второе. Потому что когда я туда заглядывал, там не было особо много информации о распиновке. например. Дисплей проверяется подключением к serial-адаптеру и ручным вводом команд.
Да, безусловно читал, там всего несколько строчек. Во всех мануалах пишут, что при нажатии на кнопку на дисплее он выбрасывает в порт ID данного элемента, но у меня такого не происходит. вот код из примера #include <SoftwareSerial.h> #include <Nextion.h> SoftwareSerial nextion(2, 3);// Nextion TX to pin 2 and RX to pin 3 of Arduino Nextion myNextion(nextion, 9600); //create a Nextion object named myNextion using the nextion serial port @ 9600bps void setup() { Serial.begin(9600); myNextion.init(); } void loop() { String message = myNextion.listen(); //check for message if(message != ""){ // if a message is received... Serial.println(message); //...print it out } } подключаю естественно ко 2 и 3 пину. Соответственно открываю монитор порта, нажимаю кнопку на дисплее а там ничего. Но все что необходимо отправить на дисплей он замечательно принимает. Прошу Вас хотябы указать путь куда копать..(
Зачем на леонардо softwareserial? Два интерфейса ведь. И в билиотеке ничего даже близкого нету. Что такое listen()? Впервые вижу.
Указываю путь. Путь! Подключить некстион через UART-USB, после чего запустить терминал на скорости 9600 и посмотреть на цифры, что идут из дисплея. Убедиться, что они идут и сделать вывод, что не дисплей что-то не отправляет, а Вы это не умеете ловить.
дисплей в сериал-монитор на примерах из бибилиотеки ничего не отправляет, только наоборот. Там надо конфиг библиотеки поправить и все будет окей)
Попробуйте эту библиотеку. Она написана самими разрабами дисплея и упрощает работу. Есть примеры. Библиотека уже исправлена (в оригинале не работает) https://www.dropbox.com/s/0gj2mprjr9blam5/ITEADLIB.zip?dl=0 А еще я отказался от software.serial
Большое Вам Спасибо, Респект и уважуха!!! Помогло и то и то! На github_e и в библиотеке инструкция есть просто закоментировал строчку #define USE_SOFTWARE_SERIAL удалил из скетча : #include <SoftwareSerial.h> SoftwareSerial nextion(2, 3);// Nextion TX to pin 2 and RX to pin 3 of Arduino и добавил #define nextion Serial1
Парни всем привет. Столкнулся с такой проблемой, имеем MEGA 2560 + NEXTION, на этой связке собран определенный девайс выполняющий свои задачи. Все работало прекрасно, и в какой то момент перестала MEGA реагировать на дисплей а именно на прием сообщений со стороны дисплея, то есть дисплей не правильно передаёт ID по нажатию, но передает,подключил к терминалу сначала подумал какой то мусор лезет в таком виде ( e ♦ ♦ ♦), это в терминале такое отображается, но в графе справа смотрю а HEXe все передаётся правильно, выбрал в терминале не STRING а HEX и оказалось что дисплей передаёт то что от него хотят, но почему то в HEXe а не STRING. КАК и что могло с дисплеем стать? ни каких манипуляций не производил, он просто работал в устройстве. MEGA работает, проверил с эмулятором дисплея, все нормально. Кто то сможет прояснить ситуацию, что делать с дисплеем...?
по цифровым интерфейсам всегда передаётся бинарный/двоичный код. В HEX переводит терминал. В STRING тоже.
ага, но для одной и той же информации он может быть очень разным Сравни serial.print(255, DEC); serial.print(255, HEX);
в одном случае по цифровому интерфейсу будет передано "255". в другом "FF" Это я к тому. что далеко не все определяется приемным терминалом...
Это как? По цифровому интерфейсу будет передано b11111111. Т.е. все 8 бит будут в единице. Хочешь стринг? Бери ASCII таблицу и вычисляй символ. Если символ в кодировке, то вычисляй смещение в таблице по кодировке (должно быть двухстороннее соглашение о применяемой кодировке, иначе будет бардак).
Доброго дня всем! Проблема возникает при добавлении на экран кнопки с фиксацией.(Dual-state button). По идее, при добавлении этой кнопки на экран и ничего не меняя в окне "Атрибуты" должна пройти компиляция этой штуки. Пишет: Error: Pageage 0fail:bt0: font imput Val. Что может быть, ведь другие компилируются нормально. Например Слайдер или поле для графика Waleform. Что я делаю не так? С ув. Петр