Дисплей Nextion не отправляет команды в порт

Тема в разделе "Arduino & Shields", создана пользователем iceoi, 14 авг 2017.

  1. iceoi

    iceoi Нуб

    Использую дисплей Nextion, библиотеку Nextion.h и arduino leonardo, отправляю на него команды из Ардуино - все в порядке, дисплей реагирует. Нужна обратная связь! Получить команды формата "0x65 0x00 0x0c 0x01 0xff 0xff 0xff" из дисплея не получается, в мониторе порта ничего не отображается! На элементах, с которых нужно получить код, в редакторе стоит галочка "Send Component ID", в отладочном окне Nextion реакция на элементы(в частности - кнопки) положительная, нажатия идентифицируются и коды отображаются. Такое впечатление, что дисплей не отправляет данные. Подскажите в чем может быть проблема?
     
  2. rkit

    rkit Гуру

    В коде, в подключении, в дисплее, в микроконтроллере.
     
  3. iceoi

    iceoi Нуб

    Подключение надежное и точно правильное. Код ReceiveMessages пример из библиотеки Nextion.h пробовал менять пины тоже самое. Как можно убедится в работоспособности самого дисплея?
     
  4. rkit

    rkit Гуру

    А вы читали код, или скопировали его не думая о том, что он делает? Мне сдается, что второе. Потому что когда я туда заглядывал, там не было особо много информации о распиновке. например.
    Дисплей проверяется подключением к serial-адаптеру и ручным вводом команд.
     
  5. iceoi

    iceoi Нуб

    Да, безусловно читал, там всего несколько строчек. Во всех мануалах пишут, что при нажатии на кнопку на дисплее он выбрасывает в порт 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 пину. Соответственно открываю монитор порта, нажимаю кнопку на дисплее а там ничего. Но все что необходимо отправить на дисплей он замечательно принимает. Прошу Вас хотябы указать путь куда копать..(
     
  6. rkit

    rkit Гуру

    Зачем на леонардо softwareserial? Два интерфейса ведь.
    И в билиотеке ничего даже близкого нету. Что такое listen()? Впервые вижу.
     
  7. ИгорьК

    ИгорьК Гуру

    Указываю путь. Путь!
    Подключить некстион через UART-USB, после чего запустить терминал на скорости 9600 и посмотреть на цифры, что идут из дисплея.
    Убедиться, что они идут и сделать вывод, что не дисплей что-то не отправляет, а Вы это не умеете ловить.
     
  8. iceoi

    iceoi Нуб

    listen() - я так понимаю это команда для проверки пришедшего сообщения. В общем я совсем запутался)
     
  9. дисплей в сериал-монитор на примерах из бибилиотеки ничего не отправляет, только наоборот.
    Там надо конфиг библиотеки поправить и все будет окей)
     
    iceoi и arkadyf нравится это.
  10. Попробуйте эту библиотеку. Она написана самими разрабами дисплея и упрощает работу. Есть примеры. Библиотека уже исправлена (в оригинале не работает) https://www.dropbox.com/s/0gj2mprjr9blam5/ITEADLIB.zip?dl=0
    А еще я отказался от software.serial
     
    iceoi и arkadyf нравится это.
  11. iceoi

    iceoi Нуб


    Большое Вам Спасибо, Респект и уважуха!!! Помогло и то и то!

    На 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
     
  12. derby

    derby Нуб

    Парни всем привет. Столкнулся с такой проблемой, имеем MEGA 2560 + NEXTION, на этой связке собран определенный девайс выполняющий свои задачи. Все работало прекрасно, и в какой то момент перестала MEGA реагировать на дисплей а именно на прием сообщений со стороны дисплея, то есть дисплей не правильно передаёт ID по нажатию, но передает,подключил к терминалу сначала подумал какой то мусор лезет в таком виде ( e ♦ ♦ ♦), это в терминале такое отображается, но в графе справа смотрю а HEXe все передаётся правильно, выбрал в терминале не STRING а HEX и оказалось что дисплей передаёт то что от него хотят, но почему то в HEXe а не STRING. КАК и что могло с дисплеем стать? ни каких манипуляций не производил, он просто работал в устройстве. MEGA работает, проверил с эмулятором дисплея, все нормально. Кто то сможет прояснить ситуацию, что делать с дисплеем...?
     
  13. parovoZZ

    parovoZZ Гуру

    по цифровым интерфейсам всегда передаётся бинарный/двоичный код. В HEX переводит терминал. В STRING тоже.
     
  14. b707

    b707 Гуру

    ага, но для одной и той же информации он может быть очень разным
    Сравни

    serial.print(255, DEC);
    serial.print(255, HEX);
     
  15. parovoZZ

    parovoZZ Гуру

    Можешь показать это на осциллограмме ЛА? Я всю ардуину снес.
     
  16. b707

    b707 Гуру

    в одном случае по цифровому интерфейсу будет передано "255". в другом "FF"
    Это я к тому. что далеко не все определяется приемным терминалом...
     
    timon нравится это.
  17. parovoZZ

    parovoZZ Гуру

    Это как? По цифровому интерфейсу будет передано b11111111. Т.е. все 8 бит будут в единице.
    Хочешь стринг? Бери ASCII таблицу и вычисляй символ. Если символ в кодировке, то вычисляй смещение в таблице по кодировке (должно быть двухстороннее соглашение о применяемой кодировке, иначе будет бардак).
     
  18. pit336

    pit336 Нуб

    Доброго дня всем! Проблема возникает при добавлении на экран кнопки с фиксацией.(Dual-state button). По идее, при добавлении этой кнопки на экран и ничего не меняя в окне "Атрибуты" должна пройти компиляция этой штуки. Пишет: Error: Page:page 0fail:bt0: font imput Val. Что может быть, ведь другие компилируются нормально. Например Слайдер или поле для графика Waleform. Что я делаю не так? С ув. Петр