Nextion и Ардуино
- Войдите на сайт для отправки комментариев
Пт, 22/12/2017 - 17:27
Здравствуйте! Подскажите, пожалуйста, в чем может быть причина или ошибка. Только начал работать с дисплеями и только учусь.
.....
monitoring.init();//инициализация дисплея
.....
String message = monitoring.listen();//считываю события дисплея
if (message == "65 2 3 1 ffff ffff ffff")//если нажата кнопка с id 3 на странице 2
{j=monitoring.getComponentValue("n0");//считать значение с цифровой переменной n0 (находится на page 2)
monitoring.setComponentValue("n2",j);}//присвоить значение j цифровой переменной n2 (находится на page 1)
Не понимаю пока в чем ошибка, у каждого объекта nextion свое уникальное имя, имена "n0" и "n2" кроме как на своих страницах нигде не фигурируют. Это объекты "number".
Попробовал вставить в тело условия еще и Serial.print("!"), не печатает. Значит отсюда следует, что не выполняется условие вообще. Почему? Само условие введено вроде верно. Кнопка, которую мы должны нажать, обычная, не двухпозиционная, сделана объектом "button". Все объекты глобальные. Подскажите пожалуйста. Библиотека вроде nextion_master
Попробуйте перечитать, что вы написали - совершенно ничего не понятно. Вы даже не сказали. в чем, сопсна. проблема.
Желательно, чтобы вы при следующем вопросе выложили скетч целиком и сделали это по правилам форума (см прикрепленную тему вверху страницы).
В nextion editor есть несколько страниц. На page 2 собственно находится кнопка "button" b13 с id 3 и цифровая переменная "number" n0. Хочу чтобы после нажатия кнопки (65 2 3 1 ffff ffff ffff) значение с n0 перешло на n2 на другой правда странице page 1. Почему условие не выполняется вообще, так как я сужу по отсутствию в мониторе последовательного порта строку "!"
вставьте вывод в монитор переменной message между строками 16 и 17 и посмотрите, какая на самом деле мессадж у вас приходит
Спасибо за ответ, но я вообщем ничего не менял, а на следующий день условие стало выполняться чудесным образом. Но не так как надо. Дело в том, что в n0 выводится число от 1 до 6, которое уменьшается или увеличивается, когда пользователь нажимает на кнопку "-" или "+". На дисплеи все работает при нажатии на "-" число уменьшается, при нажатии на "+" число увеличивается и так в диапазоне от 0 до 6. После нажатии кнопки "65 2 3 1 ffff ffff ffff" это число должно запомнться и перенестись на другую страницу в другую переменную и там уже с ней пользователь будет работать. Так вот - число вводится, кнопка нажимается, порт это показывает флажком "!" , показание должно теперь считаться с n0 и записаться в n2. Но при добавлении строки Serial.println(j) я вижу, что снимается почему всегда "-1" в независимости от того какое число вводит пользователь в n0. И n2 соответственно показывает "-1". Почему, подскажите пожалуйста. "-1" вообще нельзя ввести в n0, там стоит условие именно диапазон от 0 до 6.
Подскажите ещё пожалуйста что нибудь даёт вообще введение в nextion строка get... Например, сейчас добавил на кнопку строку get n0.val, но результат работы программы не изменился. По прежнему выдаёт "-1". Или подскажите ещё есть ли аналог getComponentValue для текста? Или вообще лучше выполнить задачу не через number или text, а через value. Но как тогда значение value передать в ардуино?
.
Ну ведь кучу в сети примеров по работе с Nextion, реально - кучу. И документация у разработчика есть. Но кто это читать будет, если можно заспамить вопросами форум? Вопрос риторический...
Спасибо большое, у вас здесь лучший форум. Такой отзывчивости редко встретишь на других площадках для общения. А админу предлагаю сделать надпись, большую такую, "новичкам, у которых есть желание, но нет опыта, НЕ ПИСАТЬ И НЕ СПАМИТЬ". И вас никто бесить не будет, да и форум почище станет
Ахмед, тут не любят ленивцев, которые не в силах оторвать жопу и спросить у гугля вещи, которые выложены просто тоннами. Не любят и халявщиков, которым только дай. Ты из каких будешь?
Есть же тема по этим дисплеям, в которой многое обсудили. Так нет, нужно устроить отдельный срач.
http://arduino.ru/forum/apparatnye-voprosy/nextion-displei
Новичкам, у которых есть желание учиться, здесьт всегда рады.
Не рады новичкам, у которых есть желание что-то получить нахаляву, а также тем, которые считают своим долгом объяснить завсегдатаям, для чего нужен форум, и как на нем следует общаться.
в том то и дело, что решение на свою проблему я не нашел, кроме как попробовать другую библиотеку, но думал, что здесь помогут менее кардинальным советом. А то, что вы увидели во мне лентяя, это ваше дело. То, что я выложил выше - это лишь ведь кусочек кода. Все задачи, которые перед собой ставил - нашел и сделал, и все работает. И дисплей получает у меня данные с ардуино и датчиков, и показывает их в красивом интерфейсе, и интерфейс сделан многофункциональным и приятным для глаза.
единственное с чем я все таки решил спустя неделю мучений обратиться восприняли в штыки и обкидали камнями. Ну не нашел я решения. Ни в документациях, ни в примерах, ни в хваленом гугле. Неделю он мне показывает "-1". Что на дисплеи, что в мониторе последовательного порта.
все таки придется использовать судя по всему другую библиотеку и воздерживаться впредь от вопросов, дабы не выглядеть глупцом
Чтение 1 байта запрошенной переменной
https://www.itead.cc/wiki/Nextion_Instruction_Set#get:_Get_variable.2Fco...
Делалось на скорую руку, поэтому блокирующая и небезопасная, в случае если дисплей отключен или не отвечает.
Примеров в интернета много но рабочих примеров 0.
Мне помогли вот эти урок по Дисплею Nextion.
https://portal-pk.ru/news/212-122---displei-nextion-urok-2-podklyuchaem-i-peredaem-dannye-na.html
Описано все понятно и примеры есть!
Некрофил ? Скрытая реклама ?