Nextion未与Arduino正确通信

Nextion未与Arduino正确通信,arduino,nextion,Arduino,Nextion,我目前对Nextion和Arduino有问题。我正处于项目的早期阶段,我正努力让他们交流。这似乎有效,但只是部分有效。该程序应该打开和关闭一个继电器,并更改一个文本以及一些背景颜色(文本框)。该程序确实可以工作,但不会改变显示器上的文本。此外,当您单击它时,它甚至不会发送Serial.println,就像它应该做的那样。尽管如此,继电器仍处于激活状态。代码应该没有什么大问题,所以我想知道发生了什么。我将代码包括在内:第一个是我正在谈论的代码,非常“原始”,第二个是我实际上要使用的代码。任何关于它

我目前对Nextion和Arduino有问题。我正处于项目的早期阶段,我正努力让他们交流。这似乎有效,但只是部分有效。该程序应该打开和关闭一个继电器,并更改一个文本以及一些背景颜色(文本框)。该程序确实可以工作,但不会改变显示器上的文本。此外,当您单击它时,它甚至不会发送Serial.println,就像它应该做的那样。尽管如此,继电器仍处于激活状态。代码应该没有什么大问题,所以我想知道发生了什么。我将代码包括在内:第一个是我正在谈论的代码,非常“原始”,第二个是我实际上要使用的代码。任何关于它为什么不能正确沟通的线索(更改文本、不在序列中打印等),都将不胜感激。(这件事对我来说非常重要,因为我需要他们完美地沟通,互相传递价值观和推送/弹出动作)

谢谢你抽出时间

另外,我是这个平台的新手,所以,请不要开始激怒我,而是试着解释我应该做什么/解释得更好

#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
//#包括
NexButton bOn=NexButton(0,2,“b0”);
NexButton bOff=NexButton(0,3,“b1”);
NexText ldOn=NexText(0,5,“t0”);
NexText ldOff=NexText(0,7,“t1”);
NexText FcX=NexText(0,10,“t2”);
NexTouch*nex_listen_list[]={
&邦德和波夫,
无效的
};
无符号长t1,dt;
// ------------------------------
无效设置(){
Serial.begin(9600);
序列2.开始(9600);
延迟(3500);
Serial.println(“设置”);
延迟(1500);
Serial.println(“GO!”);
nexInit();
bOn.attachPop(bton和bOn);
bOff.attachPop(btoff和bOff);
pinMode(13,输出);
pinMode(22,输出);
pinMode(27,输入\上拉);
数字写入(13,高);
数字写入(22,低);
}
// ------------------------------
void循环(){
nexLoop(nex_侦听_列表);
dt=millis()-t1;
如果(dt>25){
updateNext();
t1=毫秒();
}
}
// ------------------------------
无效bton(无效*ptr){
Serial.println();
ldOn.设置背景颜色bco(2024年);
数字写入(13,高);
数字写入(22,高);
}
// ------------------------------
无效btoff(无效*ptr){
Serial.println();
ldOff.Set_background_color_bco(63488);
数字写入(13,低);
数字写入(22,低);
}
// ------------------------------
void updateNextion(){
如果(!digitalRead(27)){
FcX.设置背景颜色bco(63488);
FcX.设置字体颜色pco(65504);
FcX.setText(“结束”);
Serial.println();
}
否则{
FcX.设置背景颜色bco(65535);
FcX.setText(“”);
Serial.println();
}
}
有用的一点是:

#include <doxygen.h>
#include <NexButton.h>
#include <NexCheckbox.h>
#include <NexConfig.h>
#include <NexCrop.h>
#include <NexDualStateButton.h>
#include <NexGauge.h>
#include <NexGpio.h>
#include <NexHardware.h>
#include <NexHotspot.h>
#include <NexNumber.h>
#include <NexObject.h>
#include <NexPage.h>
#include <NexPicture.h>
#include <NexProgressBar.h>
#include <NexRadio.h>
#include <NexRtc.h>
#include <NexScrolltext.h>
#include <NexSlider.h>
#include <NexText.h>
#include <NexTimer.h>
#include <Nextion.h>
#include <NexTouch.h>
#include <NexUpload.h>
#include <NexVariable.h>
#include <NexWaveform.h>
#include <SPI.h>
#include <SD.h>

//#include <Nextion.h>

char str[8];

int pinCS = 53;

File settings;

/*
NexButton bOn = NexButton (0, 2, "b0");
NexButton bOff = NexButton (0, 3, "b1"); 
*/

NexButton pgUp = NexButton (1, 5, "b3");
NexButton pgDw = NexButton (1, 6, "b4");
NexText pgNb = NexText (1, 7, "t0");

NexTouch *nex_listen_list[] = { 
  /*&bOn, &bOff,*/ &pgUp, &pgDw,
  NULL
};

unsigned long t1, dt;
String filename = "file";
String txt = ".txt";
long i = 1;
String currentfile = filename+ i + txt;


// ------------------------------
void setup() {
  Serial.begin(9600);
  Serial2.begin(9600); 

  pinMode(pinCS, OUTPUT);
  

  Serial.println(currentfile);
  Serial.println("SD initialization");
  if (!SD.begin(10)) {
  Serial1.println("initialization failed!");
  while (1);
  }
  Serial.println("initialization done");
  
  SD.remove(currentfile);
  settings = SD.open(currentfile, FILE_WRITE);
  if (settings) {
    for (int i = 0; i < 15; i++) {
      settings.println(i);
      }
      settings.close();
    } else {
      Serial.println("Error"); 
    }
  nexInit();
  pgUp.attachPop(pageUp, &pgUp);
  pgDw.attachPop(pageDw, &pgDw);


 /* pinMode(13, OUTPUT);
  pinMode(22, OUTPUT);
  pinMode(27, INPUT_PULLUP);
  digitalWrite(13, HIGH);
  digitalWrite (22, LOW);
*/
}

// ------------------------------
void loop() {
  nexLoop(nex_listen_list);

  dt = millis() - t1;
  if (dt > 1000) {
    updateNextion(); // update ogni 25 msec.
    t1 = millis();
  }
}

// ------------------------------
void pageUp(void *ptr) {
  //Serial.println("up");
  i++;
}

// ------------------------------
void pageDw(void *ptr) {
  //Serial.println("down");
  i--;
}

// ------------------------------
void updateNextion() {
    Serial.println(i);
    String currentfile = filename+ i + txt;
    itoa(i, str, 10);
    pgNb.setText(str);
  }


// ------------------------------
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
//#包括
char-str[8];
int-pinCS=53;
文件设置;
/*
NexButton bOn=NexButton(0,2,“b0”);
NexButton bOff=NexButton(0,3,“b1”);
*/
NexButton pgUp=NexButton(1,5,“b3”);
NexButton pgDw=NexButton(1,6,“b4”);
NexText pgNb=NexText(1,7,“t0”);
NexTouch*nex_listen_list[]={
/*&苯教、波夫、*/&pgUp和pgDw,
无效的
};
无符号长t1,dt;
字符串filename=“file”;
字符串txt=“.txt”;
长i=1;
字符串currentfile=filename+i+txt;
// ------------------------------
无效设置(){
Serial.begin(9600);
序列2.开始(9600);
pinMode(pinCS,输出);
Serial.println(当前文件);
Serial.println(“SD初始化”);
如果(!SD.begin(10)){
Serial1.println(“初始化失败!”);
而(1),;
}
Serial.println(“初始化完成”);
删除(当前文件);
设置=SD.open(当前文件、文件写入);
如果(设置){
对于(int i=0;i<15;i++){
设置。println(i);
}
设置。关闭();
}否则{
Serial.println(“错误”);
}
nexInit();
pgUp.attachPop(pageUp和pgUp);
pgDw.attachPop(pageDw和pgDw);
/*pinMode(13,输出);
pinMode(22,输出);
pinMode(27,输入\上拉);
数字写入(13,高);
数字写入(22,低);
*/
}
// ------------------------------
void循环(){
nexLoop(nex_侦听_列表);
dt=millis()-t1;
如果(dt>1000){
updateNext();//更新ogni 25毫秒。
t1=毫秒();
}
}
// ------------------------------
作废分页(作废*ptr){
//序列号。打印号(“up”);
i++;
}
// ------------------------------
无效页面DW(无效*ptr){
//序列号。打印号(“向下”);
我--;
}
// ------------------------------
void updateNextion(){
序列号println(i);
字符串currentfile=filename+i+txt;
itoa(i,str,10);
pgNb.setText(str);
}
// ------------------------------
#include <doxygen.h>
#include <NexButton.h>
#include <NexCheckbox.h>
#include <NexConfig.h>
#include <NexCrop.h>
#include <NexDualStateButton.h>
#include <NexGauge.h>
#include <NexGpio.h>
#include <NexHardware.h>
#include <NexHotspot.h>
#include <NexNumber.h>
#include <NexObject.h>
#include <NexPage.h>
#include <NexPicture.h>
#include <NexProgressBar.h>
#include <NexRadio.h>
#include <NexRtc.h>
#include <NexScrolltext.h>
#include <NexSlider.h>
#include <NexText.h>
#include <NexTimer.h>
#include <Nextion.h>
#include <NexTouch.h>
#include <NexUpload.h>
#include <NexVariable.h>
#include <NexWaveform.h>
#include <SPI.h>
#include <SD.h>

//#include <Nextion.h>

char str[8];

int pinCS = 53;

File settings;

/*
NexButton bOn = NexButton (0, 2, "b0");
NexButton bOff = NexButton (0, 3, "b1"); 
*/

NexButton pgUp = NexButton (1, 5, "b3");
NexButton pgDw = NexButton (1, 6, "b4");
NexText pgNb = NexText (1, 7, "t0");

NexTouch *nex_listen_list[] = { 
  /*&bOn, &bOff,*/ &pgUp, &pgDw,
  NULL
};

unsigned long t1, dt;
String filename = "file";
String txt = ".txt";
long i = 1;
String currentfile = filename+ i + txt;


// ------------------------------
void setup() {
  Serial.begin(9600);
  Serial2.begin(9600); 

  pinMode(pinCS, OUTPUT);
  

  Serial.println(currentfile);
  Serial.println("SD initialization");
  if (!SD.begin(10)) {
  Serial1.println("initialization failed!");
  while (1);
  }
  Serial.println("initialization done");
  
  SD.remove(currentfile);
  settings = SD.open(currentfile, FILE_WRITE);
  if (settings) {
    for (int i = 0; i < 15; i++) {
      settings.println(i);
      }
      settings.close();
    } else {
      Serial.println("Error"); 
    }
  nexInit();
  pgUp.attachPop(pageUp, &pgUp);
  pgDw.attachPop(pageDw, &pgDw);


 /* pinMode(13, OUTPUT);
  pinMode(22, OUTPUT);
  pinMode(27, INPUT_PULLUP);
  digitalWrite(13, HIGH);
  digitalWrite (22, LOW);
*/
}

// ------------------------------
void loop() {
  nexLoop(nex_listen_list);

  dt = millis() - t1;
  if (dt > 1000) {
    updateNextion(); // update ogni 25 msec.
    t1 = millis();
  }
}

// ------------------------------
void pageUp(void *ptr) {
  //Serial.println("up");
  i++;
}

// ------------------------------
void pageDw(void *ptr) {
  //Serial.println("down");
  i--;
}

// ------------------------------
void updateNextion() {
    Serial.println(i);
    String currentfile = filename+ i + txt;
    itoa(i, str, 10);
    pgNb.setText(str);
  }


// ------------------------------