Nextion Display 3,5"

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?

Dein benutztes HMISerial passt nicht zu den Einstellungen in der Lib.
Hier gibt es ein Beispiel (am Ende)

Gruß Tommy

meisterQ:
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.

Wozu dann SoftwareSerial?

Hab alle Serials durchgetestet zum schluss. Und bin dann halt bei Softserial stehen geblieben.

Trotzdem behebt es mein problem nicht.

Wie ich bereits schrieb: Die Einstellung in der Lib und im Sketch müssen zueinander passen. Standardbaudrate ist 9600

Was machen Deine übertragenen Textfelder? funktionieren die?

Gruß Tommy

Edit: in der NexConfig.h Zeile 37

#define nexSerial Serial2

Hallo,
so richtig helfen kann ich Dir wohl nicht, aber vielleicht einen (nützlichen)
Hinweis geben…

Ich habe seid vergangenden Donnerstag mein Nextion 5". an einem Mega in Betrieb.
Bin also genau so neu- wie Du mit dem Ding.
Aber mein Nextion 5" funktioniert ohne Probleme.

Wenn Du das Nextion an einem Mega beteibst, dann soltest Du auch dessen echte
Schnittstellen nutzen- das vermeidet ne´ Menge Fehler und Probleme.

Wenn das bei Dir mit SoftSerial nicht funktioniert, dann mußt Du die NexConfig.h
anpassen, das sagten aber schon andere…
Willst Du das Nextion später einmal mit z.B. mit dem UNO bedienen, dann paßt
die NexConfig.h nicht, also wieder anpassen…

Das nächste Problem ist, das Du nicht weißt, wie aktuell die NexConfig.h
gehalten wird. Paßt sie wirklich zur Firmware Deines Nextion?

Das Problem mit der NexConfig.h ist, das "niemand" wirklich weiß, wie sie
funktioniert. Da kommst Du nur hinter, wenn Du die Dokumentation der
NextionReferenz sehr genau studiert hast…

Wenn ich Dir einen guten Rat geben darf, dann nutze das Nextion ohne
NexConfig.h!
Du kannst den Arduino mit dem Mac (DOSe) verbinden und im NextionEditor alles
simulieren, dafür wird das Display nicht- gebraucht.
Wenn mit dem Arduino und dem Editor Dein HMI funktioniert, dann überträgst
Du das File einfach auf das Display, verdrahtest es mit dem Arduino- und alles
läuft!

Wenn Du das Prinzip- Arduino<->HMI, nicht verstanden hast, dann wird das NICHTS!
Das geht nur mit ausführlicher Dokumentation zur NexConfig.h und auch der
HMI-Referenz.

Hilft Dir aber alles nicht weiter…
Wie Du siehst, haben Dir einige hier schon vor- mir geantwortet. Die Typen sind
keine Idioten (ja, jaa- kommt wieder runter), helfen konnte aber keiner-
ganz einfach aus Mangel an Informationen…

2 Buttons funktionieren nicht- wäre nicht schlecht, wenn Du mal im Sketch
auskommentieren würdest, was denn so alles mit den 2 Buttons zusammen hängt.

"recvRetCommandFinished err"

Wer liefert denn diese Fehlermeldung ab? Der Arduino, die NexConfig.h oder das
Display?
Wenn mit der Kommunikation des Display etwas schief läuft, dann liefert das
Display einen RückgabeCode. Hast Du den zufällig?
Wie sind denn die 2 Buttons im Editor deklariert, hast Du da alles fehlerfrei
am laufen? Kann es sein, das die NexConfig.h wissen will, welcher Button
gedrückt ist? Das kannst Du im Editor festlegen.

Was sollen denn die Buttons machen? Eine LED schalten? Wann, wenn sie gedrückt
sind, oder nach dem drücken?

Ich- kann Dir hier nicht helfen, weil ich von der NexConfig.h keine Ahnung
habe. Andere können das- wenn sie mehr Informationen haben.
Gruß und Spaß
Andreas

Also, ich hab jetzt auf Serial2 umgestellt wie vorher.

#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
};

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 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 aktuell mein Code. Es sind NUR die Buttons aktiv, den rest habe ich auskommentiert. Es wird also nur gewartet bis was vom Display Empfangen wird.

Wenn ich jetzt einen Button betätige, erscheint folgendes im Serial Monitor

[1131:2,2,LEDon]
[1131:2,2,LEDon]
LED on pressed
[1119:2,3,LEDoff]
[1119:2,3,LEDoff]
LED off pressed

Funktioniert soweit also. LED geht an, LED geht aus.

Allerdings beim initialisieren, also wenn das setup durchläuft, kommt im Serial monitor folgendes:

recvRetCommandFinished err
recvRetCommandFinished ok

Die NexConfig habe ich mal als txt angehangen.

Wenn ich jetzt die Auskommentierung von nextionTemp() wieder entferne, kommt folgendes:

recvRetCommandFinished err
recvRetCommandFinished ok
recvRetCommandFinished ok
recvRetCommandFinished err
recvRetCommandFinished err

usw.. wird wieder mit err vollgespamt.

Wenn ich den Button LED on oder LED off betätige, erscheint dies wieder wie oben, funktioniert auch.

Die HMI file ist folgende:

Meine Wetterdaten werden im eigentlichen Projekt (Das hier verlinkte ist ja nur der ganze Nextion kram) übertragen, allerdings ebenso mit den ganzen Errors, und die Buttons funktionieren nur gelegentlich, bis garnicht.

NexConfig.txt (1.37 KB)

Hallo,
"recvRetCommandFinished err
recvRetCommandFinished ok"

Das sieht so aus, als wenn etwas mit der Kommunikation des Display schief läuft.
Der Fehler kommt von der Lib oder dem Display- Display möchte ich fast ausschliessen.
Du könntest den Arduino mal mit dem NextionEditor verbinden und das in der Simulation laufen
lassen.
Um Programme/HMI/Sketche zu prüfen- braucht es das Display NICHT!
Der Editor gibt Dir auch aussagekräftige FehlerMeldungen (Code) aus.
Gruß und Spaß
Andreas

Wie mache ich das am besten?

Hab jetzt am Mega an RX2 und TX2 über einen FTDI am PC angeschlossen. Welchen Port, bzw was muss ich im Programm auswählen?

Den Port vom Arduino?

Hallo,
den Mega über seine USB an den PC.
Dann Dein File in den Editor.
Nun kannst Du Deine Simulation starten und wählst als Port den, an dem der Mega liegt.
Das Display brauchst Du nicht.
Gruß und Spaß
Andreas

Also hab den Mega jetzt am PC, hab in der NexConfig.h Serial wieder auf Serial gestellt (Nicht Serial1 oder Serial2) und hab die File neu hochgeladen, im Nextion Editor hab ich meine File offen, gehe auf Send command to: Nextion Device und wähle den Com 9 (ist der Mega), drücke auf Connect, dann geht er die Baudraten durch, sagt Connection failed, das wars.

Vergiss meinen letzten Post, also, Daten werden vom Arduino an den Simulator gesendet. Meine Variablen werden korrekt angezeigt. Aber das Spiel mit der LED ist das selbe. Also ob Display oder Simulator, es verhällt sich identisch.

Nach kurzer Zeit hängt sich die Verbindung auf, und ich kann im Simulator nichts mehr Steuern.
Wenn ich die Funktionen, die an das Display sende auskommentiere, läuft das Display ohne Probleme.

Irgendwie vermute ich da Probleme beim Senden vom Arduino an das Display, dass das Display mit der menge an Informationen total überfordert ist.

Liegt es evtl an den Buffern? Kann ich die Informationen irgendwie ohen Buffer ans Display senden?

Also zusammengefasst:

Input von Display zu Arduino -> Funktioniert.

Input von Arduino zu Display -> Überfordert eins der beiden Geräte.

Wenn ich jetzt nicht auf der Seite des Displays bin, wo die Daten hingesendet werden sollen, kommt immer bei Simulator Return Data:
0x1a 0xff 0xff 0xff
und Parse: Invalid Variables.

Und innerhalb kürzester Zeit kommt bei User MCU Return Data ne Menge zeug vom Arduino an.

Wenn ich auf der Seite bin, die die Daten auch ausgeben kann, kommt z.b.
0x65 0x00 0x01 0x01 0xff 0xff.
Parse: Page: 0 Component:1 Touch Press.

Also, Seitenwechsel ok.

Selbst ich erkenne ja jetzt, dass es irgendwie am Empfang der Daten liegen muss!

Hallo,
"Nach kurzer Zeit hängt sich die Verbindung auf"

Dann kannst Du davon ausgehen, das Du ein serielles Problem hast.
Was das ist? Keine Ahnung. SoftSerial nutze ich nicht.
Ich habe den Editor auf einem Mac unter echtem Win7 am laufen, den halte
ich für sicher und stabil.

"dass das Display mit der menge an Informationen total überfordert ist. "

Kann ich mir nicht vorstellen, ich sende 48 Variablen und zeichne ein
aufwändiges Diagramm mit den Daten- das dauert nur den bruchteil einer
Sekunde.

"Wenn ich die Funktionen, die an das Display sende auskommentiere"

Das sagt es doch schon- Du sendest Müll zum Display.

"0x1a 0xff 0xff 0xff"
Da wird ein VariableName, der Inhalt oder das Format falsch übertragen.

"0x65 0x00 0x01 0x01 0xff 0xff"

Wenn mich nicht alles täuscht, steht am Ende immer- 0xff 0xff 0xff

Wenn ich das so lese, dann würde ich die SoftSerial in die Tonne klobben-
und die NextionLib hinterher.

Du hast einen Mega der 100%tig mit dem Editor funktioniert.
Das Display brauchst Du noch nicht.

Wenn ich das richtig sehe, dann willst Du 5mal Temp, 5mal Feuchte, Druck,
Std, Min, Sek und ne´Led schalten.

Von den Werten und der Menge her ist das doch lächerlich!
Fange doch mit einem ganz kleinen Brötchen an:
Einen Button der am Arduino eine LED ein und ausschaltet.

Die Nextion sind gut dokumentiert und es gibt auch gute deutsche Seiten dazu.
Ich kann Dir mit Deinem Sketch wohl nicht weiterhelfen.
Gruß und Spaß
Andreas

Gut, ein Serielles Problem.

Software Serial nutze ich ja wie oben beschrieben nicht mehr. Ich nutze wieder ganz normal den Serial2 vom Mega.

Wie sendest du deine Variablen? Nur bei änderung, oder permanent mit jedem Programmdurchlauf?

Ich sende aber meine Daten entsprechend DIESEM Video an meine Textfelder.

Du sagtest ja, ich sollte erstmal versuchen mit dem Display (BZW der Sim) eine LED zu schalten. Habe ich gemacht. Funktioniert aus der Simulation, ebenso vom Display.

Sobald ich aber jetzt anfange auch nur eine Variable zu senden, stört das Senden vom Arduino ans Display(Sim) den Empfang der Seriellen Daten vom PC/Sim. Mit zunehmender Variablen wird es immer schlimmer.

Bei 1-2 Variablen funktioniert das Ein-und Ausschalten der LED noch FAST problemlos. Manchmal reagiert es nicht. Aber sobald ich die 11 Variablen PERMANENT sende, Reagiert der Arduino nicht mehr auf die Befehle zum ein,- und ausschalten der LED.

Hallo,
"Sobald ich aber jetzt anfange auch nur eine Variable zu senden, stört das Senden vom Arduino ans Display(Sim) den Empfang der Seriellen Daten vom PC/Sim. Mit zunehmender Variablen wird es immer schlimmer."

Keine Ahnung was das ist...

Nextion:
Seite aufrufen
Variable anklicken
das Ding hat dann den Namen "va1!

Arduino:

int Wert;

Serial2.print("va1.val=");
Serial2.print(Wert);


Serial2.write(0xff); 
   Serial2.write(0xff);
   Serial2.write(0xff);

die Variablen kannst Du auch zählen lassen

int zlvar; // Zähler für Variablen
int Nexppm // Wert für die variable


  for (int zlvar=0; zlvar<47;zlvar++)
  {
    Nexppm = map(ppmMessung[zlppmvar],400,2200,0,360);
Serial2.print("Co2.C");
Serial2.print(zlvar);
Serial2.print(".val=");
 Serial2.print(Nexppm);
  
Serial2.write(0xff); 
   Serial2.write(0xff);
   Serial2.write(0xff);
   zlppmvar++;
   }

Ich sende alle 30min, beim Testen alle 5 Sekunden, das funktioniert so schnell, wie die "Serielle"
hinterher kommt.
Hier zum testen geht das, da müssen aber noch Status und Fehler abgefangen werden.
Gruß und Spaß
Andreas

Ja dein code geht...

Liegt mein Problem evtl daran, dass ich permanent an ein "Textfeld" anstelle eines Numberfeldes sende?

Wie nutze ich den die Komponente Variable gescheit? Kann ich diese Variable nicht vom Arduino beschreiben, und diese dann auf einem Numberfeld darstellen?

Gibt es dazu irgendwie ein gescheites Tutorial?

Hallo,
lasse mich heute bloß mit diesen drecks TextFeldern in Ruhe…

Fakt ist, in Textfelder gehört Text, in NummerFelder gehört Zahl und in Pic
gehört Bild.

"Wie nutze ich den die Komponente Variable gescheit?"
Wie beim Arduino? So als Tip…

Du mußt das Prinzip in den Kopf bekommen. Die Nextion sind blöd, können nichts.
Sie können nur darstellen. Was sie darstellen sollen, erkennst Du im Editor.
Die Komponenten sind von haus aus auch blöd.

Stelle es Dir so vor:
Ich gebe Dir eine Scheibe Toast, und- trocken, dröge und blöd.
Jetzt schiebst Du die Scheibe Toast in den Toaster.
Dann mit Butter bestreichen, nicht zu knapp
Dann eine Scheibe Wildlachs drauf
Auf den Lachs lecker Rührei
Dill, Salz und Pfeffer- fertig ist ein lecker Toast.

So funktioniert eine Komponente des Nextion. Sie kann nur das, was Du daraus
machst. Du mußt völlig umdenken.

Das aber nur am Rande…
Variablen kannst Du mit dem Arduino beschreiben und lesen, deren Inhalt kannst
Du an jede Komponente übergeben.

"Gibt es dazu irgendwie ein gescheites Tutorial?"

lesenA

lesenB

lesenC

lesenD

lesenE

Gruß und Spaß
Andreas

@meisterQ: Du hast zwar in Posting #6 behauptet, auf Serial2 umgestellt zu haben, in dem dort gezeigten Code inclusive der NexConfig steht immer noch SoftSerial.

Gruß Tommy

Ich hab mich damit jetzt ein wenig auseinander gesetzt.

Mein Problem war folgendes:

Ich habe die Variablen der Text und Nummerfelder nicht auf Global gestellt, also habe ich permanent ans Display gesendet, damit wenn ich von einer Seite auf dem Display auf die Seite gehe, wo die Umweltdaten angezeigt werden, auch Werte sehe... Brauche ich ja garnicht. Ich hab die Variablen alle auf Global gestellt, dann bleiben die Werte ja vorhaben.

Als 2. Punkt habe ich den Code so abgeändert, dass er die Werte nur 1x sendet, und dann erst wieder bei änderung Sendet.

Hier ein auszug.

void nextionTemp()
{
  if (t1 != old_t1)
  {
    itoa(t1, bufferTemp, 10);
    tempDisplay1.setText(bufferTemp);
    old_t1 = t1;
  }
}

Jetzt funktioniert auch die Anzeige aller Werte UND die Steuerung der LED via Display. Damit haben sich alle Probleme erledigt. Ich weiss nicht wieso ich da nicht früher drauf gekommen bin...

@SkobyMobil: Danke für deine Ratschläge! Diese haben mich erst richtig zum Denken angeregt. :smiley:

@Tommy56: Ja, hab ich auch gemerkt, aber der Aktuelle Code nutzt Serial2.

Ich hab während des Erstellen des Posts verschiedene sachen geändert, und oben nicht alles ergänzt. Ebenso habe ich den Post mehrfach editiert.

Ich glaube der Thread kann als [gelöst] makiert werden.