Не приходят данные от nextion
- Войдите на сайт для отправки комментариев
Втр, 09/01/2018 - 06:22
#include <SoftwareSerial.h> #include <Nextion.h> SoftwareSerial nextion(17, 16);// 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 } }
При этом данные на экран отправляются. Т.е. подключено все верно. Сама прошивка экрана тоже должна быть исправной. В симуляторе все работает и данные отправляются.
Порт тоже работает и другие данные от ардуины приходят. Что не так? Прошу помочь.
В свое время почему то тоже конструкция с message не хотела работать. Я пошёл другим путем - при нажатии кнопки меняется её составляющая var которая по умолчанию стоит 0, например кнопка b1 (её имя в едиторе). Я использовал функцию считывания переменной setComponenVariable("b1") и смотрел не равна ли она нулю. Точно не помню, но по моему все точно описал, все работала. Причину почему не работает listen корректно я так и не выяснил
Напишите, что хотите реализовать и зачем вам нужно знать об нажатии кнопки, я помогу, я долго работал с нектион и много проблем было решено нестандартными путями
Какая Андуина используется? Софтверный сериал не на любые пины можно вешать.
Ардуина мега. Делаю станок, и управление им соответственно. В данном случае начал кнопку включения прописывать и вот в это уткнулся. Температуру с датчика на экран выводит нормально.
Это к теме , конечно, не относится, но
зачем на меге юзать софтварный сериал???
Потому, что не хватает знаний, что бы юзать не софтовый.
Потому, что не хватает знаний, что бы юзать не софтовый.
http://arduino.ru/Serial/Begin
Пример для Ардуино Мега:
// Arduino Mega пример использования всех 4 последовательных портов
// (Serial, Serial1, Serial2, Serial3),
// с разными скоростями:
void setup(){
Serial.begin(9600);
Serial1.begin(38400);
Serial2.begin(19200);
Serial3.begin(4800);
Serial.println("Hello Computer");
Serial1.println("Hello Serial 1");
Serial2.println("Hello Serial 2");
Serial3.println("Hello Serial 3");
}
The Arduino Mega has three additional serial ports:
Serial1 on pins 19 (RX) and 18 (TX),
Serial2 on pins 17 (RX) and 16 (TX),
Serial3 on pins 15 (RX) and 14 (TX).
На Меге 16 и 17 нельзя использовать под RX если память не изменяет.
trembo дело говорит! Кк это знаний не хватает,вы ж его уже используете в 9 и 17 строках. У Меги таких 4ре, пишите Serial1..3 и вперед
Я вообще нечего не понял.
1) Как в этой строчке обойтись без совтового порта?
2)
Зачем тогда на плате они подписаны, если их нельзя использовать?!
В общем я сделал так::
Написанно же выше, что 15 можно. Я вообще запутался.
В общем температуру все так же выводит, но команды не считываются.
Все еще не понимаю, но подключил пины 10 и 11. Прогресс на лицо:
Сейчас буду искать, как это исправить.
Эм... Сидел голову ломал, англоязычные источники переводил... Потом решил перезагрузить и заработало...
Осталось только непонятным, как задействовать
Если Nextion требует софт порт
Если Nextion требует софт порт
Кто вам это внушил? с Nextion можно общаться через аппаратный UART, любой. SoftwareSerial юзать вовсе необязательно, тем более что у Arduino Mega аж 4 аппаратных UART.
Я просто не знаю, как записать иначе. Во всех уроках записано так.
Появилась вот такая ошибка. Вроде как помехи какие-то. Экран подключен к той же земле, что и плата. Кто знает, в чем ошибка?
Чем выше скорость и больше кнопок, тем больше ошибок. Я так понимаю, это из-за плохого контакта на макетной плате. Придется припаивать к плате намертво? (
Получаю вот такую ошибку:
Получаю вот такую ошибку:
внутри файла библиотеки Nextion.h закомментируйте строчку:
#define USE_SOFTWARE_SERIAL
Здравствуйте! извиняюсь что влазию в чужую тему, но вроде бы тема очень похожа. Подскажите пожалуйста. На экран nextion для t0 и t1 вывожу две переменные encoder0Pos и encoder1Pos, хотел бы обнулять значения по нажатию сенсорных кнопок. использовал все советы из этой темы, перешел к железному сериалу, закаментировал библиотеку, код компиляцию проходит, однако не работает, пытаюсь использовать код ниже, предполагаю работу следующим образом: прочитали сообщение от экрана если сообщение сообветствует "65 00 05 ff ff ff" то обнулили первую переменную, если "65 00 06 ff ff ff", то обнуляем вторую, на деле же просто обнуляет значение без нажатия кнопок, подскажите в чем ошибка?