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 an Arduino und umgekehrt ohne Bibliothek
16.09.2020, 12:15 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2020 12:16 von hotsystems.)
Beitrag #17
RE: Nextion an Arduino und umgekehrt ohne Bibliothek
Ok, dann sollte es ja jetzt funktionieren.

Wobei du auch die Beschreibung in der ersten Zeile ändern solltest.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.09.2020, 12:48
Beitrag #18
RE: Nextion an Arduino und umgekehrt ohne Bibliothek
(16.09.2020 12:15)hotsystems schrieb:  Ok, dann sollte es ja jetzt funktionieren.

Wobei du auch die Beschreibung in der ersten Zeile ändern solltest.

Ja stimmt, habs schon gemacht Danke, habs nur nicht hochgeladen.

Wie bekomme ich jetzt die Daten von meinem Slider in den Arduino?

Ich hab auf der Nextion Seite schon mal alles lt. Boecker Anleitung vorbereitet, aber ich muss ja jetzt über die serielle Schnittstelle das Ganze einlesen...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.09.2020, 13:00
Beitrag #19
RE: Nextion an Arduino und umgekehrt ohne Bibliothek
Ich würde im Nextion den Wert in ein gekoppeltes Feld schreiben und das vom Arduino aus mit get abfragen. Du bekommst ein 0x71 als Kennbyte für numerische Daten
Wenn Du die Standardfunktionen benutzt, hat sich diese Leseroutine bewährt:
Code:
// nach Whandall 05.09.2019 forum.arduino.cc
// https://forum.arduino.cc/index.php?topic=634382.15
const byte bufferSize = 15;
uint8_t buffer[bufferSize];

void setup() {
  Serial.begin(115200);
  Serial2.begin(9600);
}

bool readNex(Stream &s) {
  static uint8_t bIndex = 0;
  bool allesDa = false;
  if (s.available()) {
    uint8_t inChar = s.read();
    buffer[bIndex++] = inChar;
        // 0x71 bei diesen Paketen können drei 0xFF Bestandteil des Pakets sein,
    // also ergibt es nur Sinn auf die Delimiter hinter dem Wert zu testen
    if (inChar == 0xFF && (bIndex >= (*buffer == 0x71 ? 8 : 3)) &&
        buffer[bIndex - 2] == 0xFF && buffer[bIndex - 3] == 0xFF) {
      allesDa = true;
    } else {
      allesDa = (bIndex == bufferSize);
    }
  }
  if (allesDa) bIndex = 0; // Index zurücksetzen
  return allesDa;
}

void loop() {

unsigned long varVomNextion =0;
bool fertig = readNex(Serial2);
  if (fertig && buffer[0] == 0x71) { // numerische Daten
    varVomNextion = buffer[1]+buffer[2]*256+buffer[3]*65536+buffer[4]*16777216;
      Serial.println(varVomNextion);
    }
}

Wenn Du eigene Daten senden willst, solltest Du trotzdem das Grundschema beibehalten:
Code:
Kennbyte Daten 0xFF 0xFF 0xFF
mit einem freien Kennbyte für die eigene Routine.

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
16.09.2020, 13:18
Beitrag #20
RE: Nextion an Arduino und umgekehrt ohne Bibliothek
(16.09.2020 13:00)Tommy56 schrieb:  Ich würde im Nextion den Wert in ein gekoppeltes Feld schreiben und das vom Arduino aus mit get abfragen. Du bekommst ein 0x71 als Kennbyte für numerische Daten
Wenn Du die Standardfunktionen benutzt, hat sich diese Leseroutine bewährt:
Code:
// nach Whandall 05.09.2019 forum.arduino.cc
// https://forum.arduino.cc/index.php?topic=634382.15
const byte bufferSize = 15;
uint8_t buffer[bufferSize];

void setup() {
  Serial.begin(115200);
  Serial2.begin(9600);
}

bool readNex(Stream &s) {
  static uint8_t bIndex = 0;
  bool allesDa = false;
  if (s.available()) {
    uint8_t inChar = s.read();
    buffer[bIndex++] = inChar;
        // 0x71 bei diesen Paketen können drei 0xFF Bestandteil des Pakets sein,
    // also ergibt es nur Sinn auf die Delimiter hinter dem Wert zu testen
    if (inChar == 0xFF && (bIndex >= (*buffer == 0x71 ? 8 : 3)) &&
        buffer[bIndex - 2] == 0xFF && buffer[bIndex - 3] == 0xFF) {
      allesDa = true;
    } else {
      allesDa = (bIndex == bufferSize);
    }
  }
  if (allesDa) bIndex = 0; // Index zurücksetzen
  return allesDa;
}

void loop() {

unsigned long varVomNextion =0;
bool fertig = readNex(Serial2);
  if (fertig && buffer[0] == 0x71) { // numerische Daten
    varVomNextion = buffer[1]+buffer[2]*256+buffer[3]*65536+buffer[4]*16777216;
      Serial.println(varVomNextion);
    }
}

Wenn Du eigene Daten senden willst, solltest Du trotzdem das Grundschema beibehalten:
Code:
Kennbyte Daten 0xFF 0xFF 0xFF
mit einem freien Kennbyte für die eigene Routine.

Gruß Tommy

Vielen Dank, hab das jetzt geändert
print setTempNr0.val des Number Feldes gesetzt...inkl Haken Set Component ID

Sollte der von dir angefügt Sketch nun eine Ausgabe auf dem seriellen Monitor bewirken?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.09.2020, 13:27
Beitrag #21
RE: Nextion an Arduino und umgekehrt ohne Bibliothek
Der ist nur ein Beispiel und auf eine Standardausgabe mit Kennbyte 0x71 ausgelegt.
Ich glaube nicht, das Du das sendest. Schau Dir in dem Link an, wie die Antworten vom Nextion aufgebaut sind.

Du kannst natürlich auch so senden, wie Du es machst, dann brauchst Du aber eine andere Empfangsroutine. Ich würde dann an Deiner Stelle den numerischen Wert mit '\n' abschließen (println), damit Du weißt, wann Ende ist.
Du kannst in diesem Fall aber keinerlei Standardantworten vom Nextion mehr empfangen.

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
16.09.2020, 13:48
Beitrag #22
RE: Nextion an Arduino und umgekehrt ohne Bibliothek
(16.09.2020 13:27)Tommy56 schrieb:  Der ist nur ein Beispiel und auf eine Standardausgabe mit Kennbyte 0x71 ausgelegt.
Ich glaube nicht, das Du das sendest. Schau Dir in dem Link an, wie die Antworten vom Nextion aufgebaut sind.

Du kannst natürlich auch so senden, wie Du es machst, dann brauchst Du aber eine andere Empfangsroutine. Ich würde dann an Deiner Stelle den numerischen Wert mit '\n' abschließen (println), damit Du weißt, wann Ende ist.
Du kannst in diesem Fall aber keinerlei Standardantworten vom Nextion mehr empfangen.

Gruß Tommy

Das war schon mal Hammer oder in deinem Falle eher AXT ;-)
Danke!!!!
Bekomme jetzt über den seriellen Monitor die Temperaturen an den Arduino
YESSSS
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.09.2020, 13:58 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2020 14:45 von Tommy56.)
Beitrag #23
RE: Nextion an Arduino und umgekehrt ohne Bibliothek
Schön, dass es funktioniert.

Gruß Tommy

Edit: Es wäre schön, wenn Du die von Dir gewählte Lösung noch vorstellen würdest.

"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
17.09.2020, 04:59
Beitrag #24
RE: Nextion an Arduino und umgekehrt ohne Bibliothek
(16.09.2020 13:58)Tommy56 schrieb:  Schön, dass es funktioniert.

Gruß Tommy

Edit: Es wäre schön, wenn Du die von Dir gewählte Lösung noch vorstellen würdest.

Gerne
Hex 0x71 war in meinem Fall die ID von meinem Number Feld, Interessanterweise wird der HexCode erst übertragen/gesetzt wenn ich meinen Slider bewege und dann auf das verknüpfte Number Feld tippe. Ist aber für mich OK.

Code:
// nach Whandall 05.09.2019 forum.arduino.cc
// https://forum.arduino.cc/index.php?topic=634382.15
const byte bufferSize = 15;
uint8_t buffer[bufferSize];

void setup() {
  Serial.begin(9600);
  Serial2.begin(9600);
}

bool readNex(Stream &s) {
  static uint8_t bIndex = 0;
  bool allesDa = false;
  if (s.available()) {
    uint8_t inChar = s.read();
    buffer[bIndex++] = inChar;
        // 0x71 bei diesen Paketen können drei 0xFF Bestandteil des Pakets sein,
    // also ergibt es nur Sinn auf die Delimiter hinter dem Wert zu testen
    if (inChar == 0xFF && (bIndex >= (*buffer == 0x71 ? 8 : 3)) &&
        buffer[bIndex - 2] == 0xFF && buffer[bIndex - 3] == 0xFF) {
      allesDa = true;
    } else {
      allesDa = (bIndex == bufferSize);
    }
  }
  if (allesDa) bIndex = 0; // Index zurücksetzen
  return allesDa;
}

void loop() {

unsigned long varVomNextion =0;
bool fertig = readNex(Serial2);
  if (fertig && buffer[0] == 0x71) { // numerische Daten
    varVomNextion = buffer[1]+buffer[2]*256+buffer[3]*65536+buffer[4]*16777216;
      Serial.println(varVomNextion);
    }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ständiger Programmablauf ohne Funktion AnjinSan 9 646 06.12.2020 14:10
Letzter Beitrag: AnjinSan
  Arduino reagiert umgekehrt (also falsch) nimbus-high 3 372 09.11.2020 14:42
Letzter Beitrag: hotsystems
  Nextion Senden von Variablen Problem Tesla 10 687 08.11.2020 13:13
Letzter Beitrag: Tesla
  Servos ohne delay juergen001 23 1.575 30.10.2020 16:49
Letzter Beitrag: MicroBahner
  Problem Arduino Mega und Nextion Touch Display pds14 9 706 28.10.2020 11:20
Letzter Beitrag: hotsystems
  Nextion Spezialist gesucht night022 10 882 07.10.2020 06:04
Letzter Beitrag: night022
  Objekt ohne Rückgabewert? BR03.10 9 627 21.09.2020 14:40
Letzter Beitrag: Tommy56
  Nextion Fehler king_MJ 3 861 27.06.2020 17:36
Letzter Beitrag: Tommy56
Question Sketch compilieren und testen ohne hochladen? Triax16 18 2.321 02.05.2020 12:48
Letzter Beitrag: Bitklopfer
  Daten auf Nextion abfragen Lampe 24 3.116 30.04.2020 15:37
Letzter Beitrag: hotsystems

Gehe zu:


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