проблемы с Nextion

Crussherhead
Offline
Зарегистрирован: 24.12.2021
Друзья, у меня такая проблема. В программе  Nextion Editor пробую слепить анимацию из 22х кадров. 
Создаю таймер, прописываю код:
 
if(p0.pic<=22)
{p0.pic++}
else
{p0.pic=0}
 
нажимаю дебаг.
 
Выдается такая ошибка. 
ЧТо он от меня хочет? куда ему скобку добавить ??? помогите разобраться пожалуйста, что я не так делаю?  
 
Error:SYNTAX ERROR: Missing "{":if(p0.pic<=22)( Double click to jump to code)
Error:Compile failed! 1 Errors, 0 Warnings,
Feofan
Offline
Зарегистрирован: 28.05.2017

if(p0.pic<=22)
{
p0.pic++
}else
{
p0.pic=0
}

Не?

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Наврятли. ТС, весь код покажи, а не этот «обрубыш»...

sadman41
Offline
Зарегистрирован: 19.10.2016

В Nextion это и есть весь код ивента. И да, там запись исходника весьма своеобразна - место скобки имеет значение.

Crussherhead
Offline
Зарегистрирован: 24.12.2021

т.е. вы хотите сказать, что это из за того, что скобка не на той строке прописана что надо ? 

Crussherhead
Offline
Зарегистрирован: 24.12.2021

Но у меня теперь новая проблема. В Nextion Editor прописываю для кнопки:  print "Power"    . Я делаю это для того , что б в дебаге можно было получить сигнал от кнопки что  она нажата. Но print "Power"    я прописываю, а эффект - нулевой. Кнопка в дебаге молчит и в ответ на нажатие ничего не отвечает, хотя меню и работает и свою функцию в меню кнопка выполняет. 

Пробовал так же вывести необходимое мне значение с помощью такого кода:

if(b0.val==1)
{
print "ON"
}else
{
print "OFF"
}
 
Но это так же результат не дало - кнопка молчит. 
Могу сказать, что в атрибутах самой кнопки , почему то самого атрибута val  нету. Хотя в дебаге , меню которое я сделал работает. Кнопка работает. Но обратной связи нет. 
 
 
Ради Эксперимента , ляпнул такую же самую кнопку где попало, посреди поля меню. ПРописал тот же самый код. Запускаю дебаг. Такая же самая кнопка , но случайная дает обратную связь, код работает. А такая же самая кнопка, но которая мною была предусмотрена специально для включения дисплея обратной связи не дает. Тот же самый Код на ней не работает.

Кто то может подсказать, почему команда print "Power" у меня не работает ? 

sadman41
Offline
Зарегистрирован: 19.10.2016

Видимо по этой причине:

print Depreciated. [Send raw formatted data over Serial to MCU]

Crussherhead
Offline
Зарегистрирован: 24.12.2021

Объясните пожалуйста, я ничего не понял. Как понять "устарела" ?? ? что это означает? 

Crussherhead
Offline
Зарегистрирован: 24.12.2021

Спасибо за ответ ,я не знал что это важно в Nextion Editor. Я только только начал с ней работать. 

Crussherhead
Offline
Зарегистрирован: 24.12.2021

Я разобрался в чем причина. Вопрос снят .

derby
Offline
Зарегистрирован: 26.06.2017

Парни привет, очередная засада от nextion или  мне так везет, приобрел еще один дисплей для очередного проекта, при попытке в него что то загрузить, пишет о каких то старых файлах которые ему не нравятся, "File Version is to Low" погуглил в нете понял в чем проблем, надо переходить на новую версию nextion editor, хотя 0.53 устраивало меня.. скачал 1.63.3, все установилось, а вот запустить софт на трех машинах с windows 7, не получается, при попытке запустить софт, открывается окно 5x5 см  в нем я вижу кнопки верхнего правого угла, свернуть  свернуть в окно и закрыть, через 3 секунды, закрывается само, и все. Кто сталкивался с такой проблемой, чего windows  может не хватать, версия 1.60.2 запускается, из под нее то же в дисплей не чего не грузится, может у кого есть 1.62.xx? вроде она минимальна по версии для новых дисплеев, может заработает....

Crussherhead
Offline
Зарегистрирован: 24.12.2021

Появилась новая проблема над которой я сейчас работаю. 

У меня есть дисплей Nextion и Arduino.  Я хочу сделать так, что бы ардуинка отображала на дисплей напряжение от аккумулятора. 

Как это можно сделать на уровне кода я не совсем понимаю. Я могу подготовить необходимые поля на самом дисплее и в ардуино для измерения напряжения использую такой код : 

const int analogInPin = A0;  
int sensorValue = 0;     
 
void setup() 
{
  Serial.begin(9600); 
}
 
void loop() 
{
  sensorValue = analogRead(analogInPin);            
  Serial.print("Voltage = " );                       
  //Serial.println(int(sensorValue*0.0048));      
  Serial.println(sensorValue); 
  delay(1000);                     
}

 

 
 
 
Но , как теперь мне все это в кучу связать ? Если кто то знает и может помочь, то напишите пожалуйста. 
BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018
Crussherhead
Offline
Зарегистрирован: 24.12.2021

я далеко не специалист, но могу предположить, что ваш дисплей не будет работать на 7 виндовс. Попробуйте его подключить на 10м виндовс. Если он на 10ке запуститься, значит я на вашем месте уже работал бы на 10ке. 

 

Но тут нужно что б кто то , кто действительно разбирается что то предложил.  

Crussherhead
Offline
Зарегистрирован: 24.12.2021

отредактировал. Спасибо

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Тебе нужна библиотека Nextion.h для работы с дисплеем из ардуино. Почитай (там и подключение и примеры есть): https://3d-diy.ru/wiki/arduino-displei/nextion-displey/

То, что ты «накодил» - это вывод в последовательный порт компьютера, а не на дисплей.

Crussherhead
Offline
Зарегистрирован: 24.12.2021

ДА ,я это понимаю. Вывод в последовательный порт я научился делать. Но вот с тем как теперь эти данные с ардуино на дисплей Nextion  выводить (а именно просто напряжение с аккумулятора ) - проблемы. Поэтому и написал. Благодарю за ответ . Вашу ссылку обязательно изучу. 

Спасибо. 

Crussherhead
Offline
Зарегистрирован: 24.12.2021

Помогите пожалуйста найти библиотеку Nextion.h .

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Ну хоть немного сам старайся. По каждому чиху будешь на форум писать?

1) Гугл -> Nextion.h Librery. И первый же сайт в выдаче: https://github.com/itead/ITEADLIB_Arduino_Nextion

2) Вот какая-то облегченная версия: https://github.com/Seithan/EasyNextionLibrary

3) Ну и в самой IDE можно нарыть:

sadman41
Offline
Зарегистрирован: 19.10.2016

Могу помочь варенье кушать, если что.

Сами-то хоть что-то пытались сделать? Даже на этом форуме есть тема по некстиону, в которой есть множество вариантов взаимодействия с экраном.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

sadman41 пишет:
на этом форуме есть тема по некстиону, в которой есть множество вариантов взаимодействия с экраном.

Точно!

http://arduino.ru/forum/apparatnye-voprosy/nextion-displei

Crussherhead
Offline
Зарегистрирован: 24.12.2021

С чего вы взяли что я не стараюсь? я скачиваю библиотеки, они не работают. Выдается куча ошибок (помимо кучи других проблем). Я понимаю что вы уже может быть давно в теме и во всем разобрались, но я еще только начинающий. 

Если отвечать не хотите, то не отвечайте, может кто то другой откликнется. Я же не обращаюсь персонально к вам за помощью.  

Crussherhead
Offline
Зарегистрирован: 24.12.2021

и про что там читать ? про "софт сырой" ? 

Вы если по теме не можете чего то предложить, то не надо умничать пожалуйста. И так это все не просто дается, обращаешься за помощью, так вылазят сразу "умники". 

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Пшелты. Клянчи дальше, мозгов от этого не добавится. Я умываю руки.

Crussherhead
Offline
Зарегистрирован: 24.12.2021

Вы главное там не расплачтесь пожалуйста. Я ничего плохого не имел ввиду и очень ценю все то что вы делаете. 

Если б я мог, то налил бы вам немного зеленки , что вы выпили и успокоились, но к сожалению я не могу =(( 

sadman41
Offline
Зарегистрирован: 19.10.2016

Все там можно найти. Например: http://arduino.ru/forum/apparatnye-voprosy/nextion-displei?page=11#comme...

Но можешь и без умников обойтись, почитав материалы от Itead

b707
Offline
Зарегистрирован: 26.05.2017

Crussherhead пишет:

обращаешься за помощью, так вылазят сразу "умники". 

 

какая тебе еще помощь нужна, "не_умник"? Написать код за тебя?

Тебе дали ссылку на библиотеку, тебе дали ссылку на ветку обсуждения. У тебя есть гугль. Сиди и изучай. Если будут КОНКРЕТНЫЕ вопросы - спрашивай.

Crussherhead
Offline
Зарегистрирован: 24.12.2021

Большое спасибо вам за ответ, но то про что там пишут к сожалению мне сейчас никак помочь не может. Мне нужно связь между врдуино и нексион  организовать. И пока что мне похвастаться нечем =(    

Crussherhead
Offline
Зарегистрирован: 24.12.2021

Мне нужна такая помощь, что бы вы тему флудом своим бестолковым не засоряли. Если мне нужно будет что б за меня код написали, то я найму для этого человека. 

Еще раз скажу, что если вам по существу нечего сказать, то лучше промолчите.  Или вам тоже зеленки налить? 

sadman41
Offline
Зарегистрирован: 19.10.2016

Именно в том посте и чуть ниже указано, как внести в переменную некстиона значение. Прямо вот ничего больше выдумывать не нужно. Другим помочь не можем. Разве что кто-то возжелает порепетиторствовать.

Crussherhead
Offline
Зарегистрирован: 24.12.2021

Спасибо, я еще раз перечитаю. МОжет я не обратил на то про что вы говорите внимание. 

Crussherhead
Offline
Зарегистрирован: 24.12.2021
Слепил скетч в меру своего понимания для дисплея Nextion.  МК должен измерять напряжение и отправлять его на дисплей в поле t0. 
Проблема в том, что на дисплее текстовое поле t0  ничего не отображает. Кто то может объяснить почему ? 
В скетче вроде бы все правильно написано, что я не так делаю ? почему измеренное напряжение на дисплее не отображается ? 
 
#include <SoftwareSerial.h>
 const uint8_t pinRX = 4;    
 const uint8_t pinTX = 5;
 SoftwareSerial softSerial(pinRX,pinTX);

const int analogInPin = A0;  
int sensorValue = 0;     
 
void setup() {
  Serial.begin(9600); 
}
 
void loop() {
  sensorValue = analogRead(analogInPin);            
  Serial.print("Voltage = " );                       
  Serial.println(int(sensorValue*0.2905));      
  //Serial.println(sensorValue); 
  delay(1000);     
  if(millis()%500<=5)
  {
   delay(5);                                                                                         
   Serial.println((String)"t0.txt=\""+analogRead(analogInPin)+"\""+char(255)+char(255)+char(255)); 
  }
}                  

 

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Crussherhead, вообще-то кроме скетча неплохо бы еще выложить схему.

Но только по скетчу: укажите номера строк, в которых Вы что-то отправляете на дисплей.

Crussherhead
Offline
Зарегистрирован: 24.12.2021

andriano пишет:

Но только по скетчу: укажите номера строк, в которых Вы что-то отправляете на дисплей.

 

Большое спасибо за ответ. Конкретно отправка на дисплей осуществляется в 22 строке.

sadman41
Offline
Зарегистрирован: 19.10.2016

andriano спрашивает: к каким пинам Arduino подключен Nextion?

Crussherhead
Offline
Зарегистрирован: 24.12.2021

sadman41 пишет:

andriano спрашивает: к каким пинам Arduino подключен Nextion?

 

2,3 - строки, пины 4,5

b707
Offline
Зарегистрирован: 26.05.2017

Crussherhead а подумать? - дисплей подключен к Софтсериалу, а в 22 строке вы куда данные отправляете?

Crussherhead
Offline
Зарегистрирован: 24.12.2021

b707 пишет:

а в 22 строке вы куда данные отправляете?

Я извиняюсь если сейчас дурь напишу, но зато это будет честно и будет отражать то что у меня в голове. 

В 22 строке, получается что в последовательный порт отправляю. Но это разве не одно и то же ? В том смысле, что если не  включать последовательный порт  в arduino ide , то данные должны приходить на дисплей ?

У меня вчера вышло с помощью этого скетча отправить данные на дисплей. 

Приведу ниже скетч с помощью которого это стало возможно. 

#include <SoftwareSerial.h>
 const uint8_t pinRX = 4;    
 const uint8_t pinTX = 5;
 const uint8_t  pinR    = A0;
 SoftwareSerial softSerial(pinRX,pinTX);
 
void setup() {
  Serial.begin(9600); 
}
 
void loop() {  
     
  if(millis()%500<=5)
  {
   delay(5);                                                                                         
   Serial.print((String)"t0.txt=\""+analogRead(pinR)+"\""+char(255)+char(255)+char(255)); 
  }
  
}                  

 

И я понимаю к чему вы клоните, но у меня вот так все заработало. Выходит, что дисплей тут выступает в роли последовательного порта, поэтому на него данные и попадают с ардуинки. Разве это не так работает? 

 

Я не могу уловить этот  момент. В чем я не прав ? где моя ошибка ? 

b707
Offline
Зарегистрирован: 26.05.2017

Crussherhead пишет:

это разве не одно и то же ?

нет, softSerial и Serial - это два разных порта.

СофтСериал у вас на пинах 4 и 5, верно? А просто Serial - это пины 0 и 1.

Если у вас этот скетч работал - значит одно из двух. либо ваш дисплей подключен к пинам 0 и 1. либо скетч был не этот.

Crussherhead
Offline
Зарегистрирован: 24.12.2021

b707 пишет:

Если у вас этот скетч работал - значит одно из двух. либо ваш дисплей подключен к пинам 0 и 1. либо скетч был не этот.

 

Скетч именно этот  и я сам не знаю как это объяснить. Это единственный вариант кода, который  у меня заработал. 

Crussherhead
Offline
Зарегистрирован: 24.12.2021

softSerial - это  подключение дисплея ,правильно ? т.е. мы так связь дисплея по UARTу  настраиваем , TX-RX ? 

А Serial - подключение последовательного порта ардуино ? 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Тебе про Фому, а ты про Ерёму )))

#include <SoftwareSerial.h>
const uint8_t pinRX = 4;
const uint8_t pinTX = 5;
const uint8_t  pinR    = A0;
SoftwareSerial softSerial(pinRX, pinTX);

void setup() {
  softSerial.begin(9600);
}

void loop() {

  if (millis() % 500 <= 5) {
    delay(5);
    softSerial.print((String)"t0.txt=\"" + analogRead(pinR) + "\"" + char(255) + char(255) + char(255));
  }

}

 

b707
Offline
Зарегистрирован: 26.05.2017

Crussherhead пишет:

softSerial - это  подключение дисплея ,правильно ? т.е. мы так связь дисплея по UARTу  настраиваем , TX-RX ? 

А Serial - подключение последовательного порта ардуино ? 

Нет никакого специального "подключения дисплея" . И то и другое последовательные порты, подключать дисплей можно к любому. но если вы подключили дисплей к какому-то порту, то и данные надо слать именно в этот порт, а не в другой.

Ну почитайте вы уже какой-то базовый учебник, чтож вы такие вещи не знаете...

Crussherhead
Offline
Зарегистрирован: 24.12.2021

BOOM пишет:

Тебе про Фому, а ты про Ерёму )))


 

Я применял этот код, но он у меня НЕ ЗАРАБОТАЛ. Я не знаю почему. Работает тот вариант, который я написал выше. 

Я просто пишу про это я никому ничего не доказываю. Я думал, что вы сможете это все как то объяснить.  

Crussherhead
Offline
Зарегистрирован: 24.12.2021

b707 пишет:

Crussherhead пишет:

 

но если вы подключили дисплей к какому-то порту, то и данные надо слать именно в этот порт, а не в другой.

 

Я с вами согласен на 100%.

Большое спасибо за ответы, мне это все сильно помогает. 

b707
Offline
Зарегистрирован: 26.05.2017

Crussherhead пишет:

Я думал, что вы сможете это все как то объяснить.  

Если Некстион подключен к пинам 4 и 5, а вы посылаете данные в обычный Сериал - это работать НЕ МОЖЕТ НИКАК. Так что обьяснение может быть только одно - вы что-то перепутали.

Выложите схему вашего подключения, желательно фото всей сборки так, чтобы было видно пины и полный код скетча.

b707
Offline
Зарегистрирован: 26.05.2017

А вообще, вам еще неделю назад , когда вы не могли библиотеку найти - надо было прерваться и почитать какой-нить гайд для чайников - что такое ардуино, как он работает. что такое порты ввода вывода, что такое сериал...

И старайтесь искать информацию сами, в книжках и гугле. Если не получается одновременно с прграммированием - значит стоит пока программирование отложить на неделю или на месяц - и разобраться хотя бы с базовыми понятиями.

Crussherhead
Offline
Зарегистрирован: 24.12.2021

Я понял про что вы говорили. Вы все были правы. 

Ноу меня код в варианте BOOM  не работал, потому что как правильно заметил b707 у меня дисплей к пинам 1,0 оказывается подсоединен, а не к 4,5 . Когда я поменял в скетче подключение по пинам, все заработало . 

 

Большое всем спасибо. Я многому научился благодаря вашим ответам. 

b707
Offline
Зарегистрирован: 26.05.2017

Crussherhead пишет:

у меня дисплей к пинам 1,0 оказывается подсоединен, а не к 4,5 . Когда я поменял в скетче подключение по пинам, все заработало .

никто и не сомневался, что будет что-то подобное :)

Crussherhead
Offline
Зарегистрирован: 24.12.2021

b707 пишет:

надо было прерваться и почитать какой-нить гайд для чайников 

Вам про это проще говорить, потому что вы уже знаете как это делать .  Есть такое понятие как практика. Вы наверное не поверите если я скажу что я уже не одну неделю сижу и изучаю гайды , читаю книжки  и т.д. .... 

Я начинающий, мне практика нужна что б по полкам все это раскладывать. Я тоже думал, что все просто, чт о сейчас гайды и книжки почитаю, хоп  и подключу и все заработает. А как до практики дошло дело , то всё - ничего не работает, сидишь и голову ломаешь почему. Посоветоваться не с кем. Хорошо, что хоть форумы есть .