INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Nextion Senden von Variablen Problem
06.11.2020, 12:12
Beitrag #1
Nextion Senden von Variablen Problem
Hallo ich kämpfe seit Tagen damit einen int Wert einer Variablen auf das Nextion Display z.b. in ein Nummernfeld oder in ein Xfloat zu übertragen.

Ich weis nicht wie ich die Variable in die Serial Anweisung packe.

1. Was klappt ist einen Text in einer Stringvariable anzuzeigen.
2. Was auch klappt ist einen Ganzzahlen Wert in ein Nummernfeld oder Xfloat zu
übertragen.

Code beider funktionierender Fälle:
Fall 1 String:

//SoftSerial.print("t2.txt=\"" + String(test) +"\"");
//KLAPPT ! zwischen den "" kann noch ein Text vorangestellt werden, danach wird die String Variable angehängt und der Inhalt an das Display übertragen.

//SoftSerial.write(0xff);
//SoftSerial.write(0xff);
//SoftSerial.write(0xff);
[/i]

Fall2 int:

// SoftSerial.print("x0.val=1234"); //klappt
//
//SoftSerial.write(0xff);
//SoftSerial.write(0xff);
//SoftSerial.write(0xff);


Wie heißt der richtige Syntax um x0.val=(VARIABLE)
zu senden?

Xfloat wäre super ich würde aber auch eine Nummernfeld nehmen.
Ich habe so viele Varianten ausprobiert, komme nicht weiter.

PS: die page1 davor macht keinen Unterschied.
Danke Euch ! Grüße Christian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.11.2020, 12:33
Beitrag #2
RE: Nextion Senden von Variablen Problem
Hallo,
du kannst nur Ganzzahlen in ein Value-Feld schreiben.
Andere Zahlen musst du in Textfelder schreiben.

Und setze Sketche, auch Fragmente immer in Code-Tags.
Damit sind die für alle besser lesbar.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.11.2020, 12:54 (Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2020 12:57 von Tesla.)
Beitrag #3
RE: Nextion Senden von Variablen Problem
Hi danke für deine Antwort. In der variablen würde eine Ganzzahl ja stehen.
In diesem Video wird ein Poti Übertragen: https://youtu.be/OhYyBpjyR14?t=711
Der Wert wird auf dem Display angezeigt. Wenn ich das so eingebe wie er, klappt es nicht. mhhh
EDIT: Hier mit Nummernfeld: https://youtu.be/OhYyBpjyR14?t=223
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.11.2020, 13:00
Beitrag #4
RE: Nextion Senden von Variablen Problem
Gib uns bitte Deinen Code (in Codetags) und eine Info, wie Du welche Felder im Nextion definiert hast.
Die Wahrscheinlichkeiut, dass sich jemand die Sachen aus einem Video raus sucht, ist sehr gering.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.11.2020, 13:06
Beitrag #5
RE: Nextion Senden von Variablen Problem
Code:
#include <Nextion.h>


#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2);

#define SoftSerial mySerial
#define C02_TX 5
#define C02_RX 6

SoftwareSerial SoftSerial(C02_RX, C02_TX);

#define AmpPin A0  // Ampere Sensor Pin
#define VoltPin A1  // Spannung Sensor
#define WattMaxButtonPin 1 //D1 Pin Resetbutton für WattMax

double Ampere = 0.00;
double Spannung =0.00;
double Watt =0.00;
double amp[5];//Ampere Einzelmessung
double volts[5];
double WattMax=0; //Welcher Leistung war die höchste die gemessen wurde.
// int Wattint=0; //Dieser wert wird an das Nextion übertragen da es wohl keine Komma kann.
int Wattint = 3511;
bool WattMaxButton=0; //Resetbutton für WattMax
String test = "lala";

void setup() {
  for (int i=0;i<5;i++) volts[i]=0;  // initalisiert das Array mit 0
  for (int i=0;i<5;i++) amp[i]=0;  // initalisiert das Array mit 0


pinMode(AmpPin, OUTPUT);
pinMode(VoltPin, OUTPUT);


Serial.begin(9600);
SoftSerial.begin(9600);

lcd.init();
lcd.backlight();

  lcd.setCursor(0,0);         // Cursor auf Beginn der 1. Zeile
  lcd.print("Heilschwingung");
  delay(1000);
  lcd.clear();
  
lcd.setCursor(0,0);         // Cursor auf Beginn der 1. Zeile
lcd.print("ENERGIE: ");
lcd.setCursor(10,0);         //
lcd.print(Watt);

lcd.setCursor(0,1);         //
lcd.print("Maximum: ");
lcd.setCursor(10,1);         //
lcd.print(WattMax);

SoftSerial.print("t2.txt=\"Hi\"");
SoftSerial.write(0xff);
SoftSerial.write(0xff);
SoftSerial.write(0xff);
delay(500);
}

void loop()

{

amp[0] = analogRead (AmpPin) ;
amp[1] = analogRead (AmpPin) ;
amp[2] = analogRead (AmpPin) ;
amp[3] = analogRead (AmpPin) ;
amp[4] = analogRead (AmpPin) ;

Ampere = ( map ( ( ( ( ( amp[0] + ( amp[1] + ( amp[2] + ( amp[3] + amp[4] ) ) ) ) / 5.0 ) * 100.0 ) - 0000.0 ) , 0 , 102300 , 0 , 500 )  / 100.0 ) ;
Serial.print("Gemessene Ampere: ");
Serial.println(Ampere);
Serial.println(" ______ ");
//lcd.setCursor(1,0);         //
//lcd.print("A: ");
//lcd.setCursor(1,4);         //
//lcd.print(Ampere);

volts[0] = analogRead (VoltPin) ;
volts[1] = analogRead (VoltPin) ;
volts[2] = analogRead (VoltPin) ;
volts[3] = analogRead (VoltPin) ;
volts[4] = analogRead (VoltPin) ;

Spannung = ( map ( ( ( ( ( volts[0] + ( volts[1] + ( volts[2] + ( volts[3] + volts[4] ) ) ) ) / 5.0 ) * 100.0 ) - 0000.0 ) , 0 , 102300 , 0 , 1250 )  / 100.0 ) ;
Serial.print("Gemessene Spannung: ");
Serial.println(Spannung);
Serial.println(" ______ ");

//lcd.setCursor(1,10);         //
//lcd.print("V: ");
//lcd.setCursor(1,13);         //
//lcd.print(Volt);


Watt=(Spannung)*(Ampere);
Serial.print("Watt: ");
Serial.println(Watt);
Wattint = ((Watt)*(100));
lcd.setCursor(10,0);         // Cursor auf Beginn der 2. Zeile
lcd.print(Watt);

//Wattmax
//

if ((Watt) >= (WattMax))
{
  ((WattMax)=(Watt));
}


Serial.print("WattMax: ");
Serial.println(WattMax);

//
lcd.setCursor(9,1);         //
lcd.print(WattMax);

//SoftSerial.print("t2.txt=\"" + String(test) +"\"");            //KLAPPT ! zwischen den "" kann noch ein Text vorrangestellt werden, danach wird die String Variable angehängt und der Inhalt an das Display übertragen.

//SoftSerial.write(0xff);
//SoftSerial.write(0xff);
//SoftSerial.write(0xff);


// SoftSerial.print("x0.val=1234"); //klappt
//
//SoftSerial.write(0xff);
//SoftSerial.write(0xff);
//SoftSerial.write(0xff);

  SoftSerial.print("x0.var=");  // das klappt in verschieden Varianten überhaupt nicht...
  SoftSerial.print(Wattint);  //hilfsvariable hier soll später (Watt) stehen.
    
  SoftSerial.write(0xff);
  SoftSerial.write(0xff);
  SoftSerial.write(0xff);

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.11.2020, 13:57 (Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2020 13:58 von hotsystems.)
Beitrag #6
RE: Nextion Senden von Variablen Problem
Du hast die nextion-Lib eingebunden, nutzt diese aber nicht. Warum ?

Und das kann nicht funktionieren:
Code:
SoftSerial.print("x0.var=");
SoftSerial.print(Wattint);
SoftSerial.write(0xff);
SoftSerial.write(0xff);
SoftSerial.write(0xff);

So muss das da stehen:

Code:
SoftSerial.print("x0.val=");
SoftSerial.print(Wattint);
SoftSerial.write(0xff);
SoftSerial.write(0xff);
SoftSerial.write(0xff);

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.11.2020, 00:21
Beitrag #7
RE: Nextion Senden von Variablen Problem
Hallo,

zumindest meine Nextions können keine float. Float muss also wie oben gesagt auf dem Arduino in einen String gewandelt werden, der dann an ein Textfeld auf dem Nextion gesendet wird.

Ich habe das aber noch nie gebraucht! Auch bei Deiner Leistungsmessung halte ich "double" für überflüssig. Map arbeitet mit integer, wandelt also Deine amp[..] vor jeder Rechnung in integer um und das Ergebnis wieder in double.

Lieber alles als integer oder long. Overflow musst Du selbst im Auge behalten. Aber man kann auch in 1/10 A rechnen, das ergibt dann 1/10 W und Du hast mit wert/10 und wert%10 sofort Vor- und Nachkommaanteil für die Anzeige in einem Textfeld des Nextions.

Viele Grüße
GuaAck
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.11.2020, 18:34
Beitrag #8
RE: Nextion Senden von Variablen Problem
(07.11.2020 00:21)GuaAck schrieb:  Hallo,

zumindest meine Nextions können keine float. Float muss also wie oben gesagt auf dem Arduino in einen String gewandelt werden, der dann an ein Textfeld auf dem Nextion gesendet wird.
.....

Ist auch bei allen mir bekannten Nextion so. So steht es auch in der Dokumentation. Beim TO scheint es aber wohl noch andere Problem zu geben.
Und das mit der Ausgabe auf ein Textfeld ist je tatsächlich auch kein Problem.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  RS485-Verbindung aufbauen und Befehle an Schrittmotormodul senden. Irek 24 1.040 17.11.2020 14:23
Letzter Beitrag: Irek
  Problem Arduino Mega und Nextion Touch Display pds14 9 473 28.10.2020 11:20
Letzter Beitrag: hotsystems
  IR Code senden mit IRremote BanditBandeh 7 3.576 23.10.2020 20:41
Letzter Beitrag: offler
  Nextion Spezialist gesucht night022 10 621 07.10.2020 06:04
Letzter Beitrag: night022
  Master-Slave-Problem - 2 juergen001 23 877 06.10.2020 10:23
Letzter Beitrag: juergen001
  Problem mit AnotherIFTTTWebhook | cannot convert 'const char*' to 'char*' dani 3 260 02.10.2020 11:21
Letzter Beitrag: dani
  Master-Slave-Problem juergen001 10 645 24.09.2020 13:34
Letzter Beitrag: Tommy56
  Nextion an Arduino und umgekehrt ohne Bibliothek night022 23 1.043 17.09.2020 04:59
Letzter Beitrag: night022
  Werte im Sketch in Variablen speichern Bitklopfer 4 466 06.09.2020 10:25
Letzter Beitrag: Bitklopfer
  Zeit-Server-Problem 182 21 7.132 27.08.2020 15:05
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste