Hallo Gemeinde
da ich bischen viele Baustellen habe, nehme ich sie mir jetzt Stück für Stück vor, dass ich mal auf nen Grünen Zweig komme. Ich habe jetzt gerade mal zum wieder auffrischen der Kommunkikation Arduino - Nextion, ein Nexition 3,5 Zoll an einen Arduion Mega an die Serial2 angehängt. Und die Kommunikation klappt natürlich.
So viel ich weiß, kann man keine Kommazahlen direkt zum Arduino übetragen und diese darauf darstellen. Also muss man die Zahlen Teilen in vor dem Komma und nach dem Komma ? Ich habe mir den Aufbau am Nextion schon klar gemacht.
Ein Zahlenfeld für die Zahl vor dem Komma, ein Textfeld für das Komma, ein Zahlenfeld für die Zahl hinter dem Komma, ein Textfeld für das “V” dahinter, das für Volt steht.
Oder hat sich in den 5 Jahren, wo ich das Nextion nicht mehr in Arbeite hatte, da was geändert, dass man KommaZahlen jetzt darstellen kann ?
Der zweite Punkt wäre. Kann ich Text auch aufs Nextion übertragen und in einem Textfeld darstellen ?
Ich vermute du willst aus dem Arduino Daten auf dem Nextion darstellen. Du kannst deine Zahl mit Komma und V als ein String im Arduino konvertieren und dann nur den String in ein Textfeld senden.
Wieso geändert?
Die Nextion Displays haben schon immer Text- und Zahlenfelder.
Und damit geht das ohne Probleme auch mit Komma im Textfeld.
Wurde dir ja auch schon geschrieben.
Ich setzte hier mal das Programm rein. Ist natürlich nur eine Momentaufnahme, weil ich ja alles Mögliche testen will.
#include <Wire.h>
byte NexT[3] = { 255, 255, 255 }; // global deklarieren
/*
Wird dann so benutzt:
Serial2.write(NexT, 3);
*/
byte Seite = 0; // Nextion Startseite einstellen
int Messung = 35;
int ads_mv0 = 30;
String Text31 = "Ein Test";
unsigned long Sekundenablauf01 = 0;
const unsigned long Pausezeit01 = 5000;
//
void setup() {
Serial.begin(115200);
Serial2.begin(9600);
Serial2.print("Volt1.val="); // Messung in Anzeigefeld "Volt1" ausgeben.
Serial2.print(Messung);
Serial2.write(NexT, 3);
Serial2.print("Volt2.val="); // ads_mv0 in Anzeigefeld "Volt2" ausgeben.
Serial2.print(ads_mv0);
Serial2.write(NexT, 3);
}
//
void loop() {
kommunikation();
}
//
void kommunikation() {
Serial2.print("page 3");
Serial2.write(NexT, 3);
Serial2.print("Daten_suchen.Textfeld1.txt=Ein_Test");
Serial2.write(NexT, 3);
delay(3000);
Serial2.print("page 0");
Serial2.write(NexT, 3);
Serial2.print("Volt3.val="); // Messung in Anzeigefeld "Volt1" ausgeben.
Serial2.print(Messung);
Serial2.write(NexT, 3);
Serial2.print("Volt4.val="); // ads_mv0 in Anzeigefeld "Volt2" ausgeben.
Serial2.print(ads_mv0);
Serial2.write(NexT, 3);
delay(1000);
Serial2.print("Volt4.val=34"); // ads_mv0 in Anzeigefeld "Volt2" ausgeben.
Serial2.write(NexT, 3);
delay(1000);
Serial2.print("Volt4.val=37"); // ads_mv0 in Anzeigefeld "Volt2" ausgeben.
Serial2.write(NexT, 3);
delay(1000);
Serial2.print("Volt4.val=32"); // ads_mv0 in Anzeigefeld "Volt2" ausgeben.
Serial2.write(NexT, 3);
delay(1000);
Serial2.print("Volt3.val=34"); // ads_mv0 in Anzeigefeld "Volt2" ausgeben.
Serial2.write(NexT, 3);
delay(1000);
Serial2.print("Volt4.val=39"); // ads_mv0 in Anzeigefeld "Volt2" ausgeben.
Serial2.write(NexT, 3);
}
Klappt übrigens noch immer nicht. Also denText ausgeben auf Seite 3 “Daten_suchen” Textfeld1.
Wire.h wird noch nicht benötigt. habe ich nur schon mal rein, dass ich es nicht vergesse, wenn ich das Abfragen von Nachrichten Nextion → Arduino testen will.