Moin,
hab nen Problem mit meinem Nextion Display.
#include <Nextion.h>
#define nexSerial HMISerial
#define LED 45
NexPage page0 = NexPage(0, 0, "page0");
NexPage page1 = NexPage(1, 0, "page1");
NexPage page2 = NexPage(2, 0, "page2");
// Erstellt ein Objekt (SeitenID: 0, ObjektID: 2, ObjektName: "
NexText tempDisplay1 = NexText(0, 1, "tempDisplay1"); // Temperatur anzeige
NexText tempDisplay2 = NexText(0, 2, "tempDisplay2"); // Temperatur anzeige
NexText tempDisplay3 = NexText(0, 3, "tempDisplay3"); // Temperatur anzeige
NexText tempDisplay4 = NexText(0, 4, "tempDisplay4"); // Temperatur anzeige
NexText tempDisplay5 = NexText(0, 5, "tempDisplay5"); // Temperatur anzeige
NexText humDisplay1 = NexText(0, 1, "humDisplay1"); // Feuchtigkeits anzeige
NexText humDisplay2 = NexText(0, 2, "humDisplay2"); // Feuchtigkeits anzeige
NexText humDisplay3 = NexText(0, 3, "humDisplay3"); // Feuchtigkeits anzeige
NexText humDisplay4 = NexText(0, 4, "humDisplay4"); // Feuchtigkeits anzeige
NexText humDisplay5 = NexText(0, 5, "humDisplay5"); // Feuchtigkeits anzeige
NexText pDisplay1 = NexText(0, 28, "pDisplay1"); // Luftdruck anzeige
/*
NexText rtcHour = NexText(1, 3, "rtcHour"); // RTC Stunde
NexText rtcMin = NexText(1, 4, "rtcMin"); // RTC Minute
NexText rtcSec = NexText(1, 5, "rtcSec"); // RTC Sekunde
*/
NexButton LEDon = NexButton(2, 2, "LEDon"); // Button LED an
NexButton LEDoff = NexButton(2, 3, "LEDoff"); // Button LED aus
char bufferTemp[10] = {0};
char bufferHum[10] = {0};
char bufferPres[10] = {0};
NexTouch *nex_listen_list[] =
{
&LEDon,
&LEDoff,
NULL
};
SoftwareSerial HMISerial(28, 29);
int t1 = 1;
int t2 = 2;
int t3 = 3;
int t4 = 4;
int t5 = 5;
int t6;
int h1 = 1;
int h2 = 2;
int h3 = 3;
int h4 = 4;
int h5 = 5;
int h6;
int p1 = 1;
int p2 = 2;
int p3 = 3;
int p4 = 4;
int p5 = 5;
int p6;
void setup()
{
// Nextion Display
//--------------------------------------------------------------------------------------
nexInit();
// LEDon.attachPop(LEDonPopCallback);
// LEDoff.attachPop(LEDoffPopCallback);
}
void loop()
{
nexLoop(nex_listen_list);
nextionTemp();
}
void nextionTemp()
{
memset(bufferTemp, 0, sizeof(bufferTemp)); // clear buffer
itoa(t1, bufferTemp, 10);
tempDisplay1.setText(bufferTemp);
itoa(t2, bufferTemp, 10);
tempDisplay2.setText(bufferTemp);
itoa(t3, bufferTemp, 10);
tempDisplay3.setText(bufferTemp);
itoa(t4, bufferTemp, 10);
tempDisplay4.setText(bufferTemp);
itoa(t5, bufferTemp, 10);
tempDisplay5.setText(bufferTemp);
}
/*
void nextionHum()
{
memset(bufferHum, 0, sizeof(bufferHum)); // clear buffer
itoa(h1, bufferHum, 10);
humDisplay1.setText(bufferHum);
itoa(h2, bufferHum, 10);
humDisplay2.setText(bufferHum);
itoa(h3, bufferHum, 10);
humDisplay3.setText(bufferHum);
itoa(h4, bufferHum, 10);
humDisplay4.setText(bufferHum);
itoa(h5, bufferHum, 10);
humDisplay5.setText(bufferHum);
}
void nextionRTC()
{
itoa(hour, buffer, 10);
rtcHour.setText(buffer);
itoa(min, buffer, 10);
rtcMin.setText(buffer);
itoa(sec, buffer, 10);
rtcSec.setText(buffer);
}
*/
/*
void nextionPres()
{
memset(bufferPres, 0, sizeof(bufferPres)); // clear buffer
itoa(p3, bufferPres, 10);
pDisplay1.setText(bufferPres);
}
void LEDonPopCallback(void *ptr)
{
Serial.println("LED on pressed");
digitalWrite(LED, HIGH);
}
void LEDoffPopCallback(void *ptr)
{
Serial.println("LED off pressed");
digitalWrite(LED, LOW);
}
*/
Das ist mein Testcode. Die Variablen werden an das Display übersendet, aber die 2 Buttons funktionieren nicht, und ich bekomme das Klassische "recvRetCommandFinished err".
Das Display ist am Arduino Mega an Pin 28 und 29 via SoftwareSerial verbunden.
Mit Serial1 und 2 funktioniert es genau so wie mit SoftSerial.
Kann mir jemand helfen?