Mehre Sensordaten übertragen

Hallo zusammen , ich habe folgendes Problem .... ich habe einen arduino Uno mit TFT Display shield ... dieser ist fest verbaut. Jetzt möchte ich von einem arduino mega mehrere Sensordaten seriell übertragen .... grundsätzlich funktioniert das mit serial.print etc ohne Probleme solange ich nur einen Sensor benutze .

Wenn ich jetzt allerdings mehrere Daten übertragen möchte , bekomme ich diese nicht am empfangenen arduino "getrennt" . Wie kann ich das Programm mässig so Beinflüssen , das der empfangenen arduino "weiß" ob jetzt z.b. die ankommenden Daten z.b. Temperatur , Luftfeuchte oder auch Abstandsdaten sind ? Und ich hoffe man keine Anfrage einigermaßen verstehen :smiling_face:

Hallo michael_stst

Nimm am Besten eine Suchmaschine deiner Wahl und befrage das WWW mit 'versenden von datastructs +arduino'.

Die Suchergebnisse sortieren, bewerten und umsetzen.

Ich wünsche Ihnen einen schönen Tag und viel Spaß beim Programmieren in C++.

Einfachste Möglichkeit:

// Als Text Kennung=Wert mit Semikolon getrennt, am Ende ein \n (NewLine)
"t=2.5;f=43;a=120\n"
// in einen Puffer einlesen, anstelle von \n ein \0 schreiben, 
// mit strtok_r trennen an ; und dann an = und die Zahlen umwandeln mit atoi bzw. atof

Gruß Tommy

Ist ja nicht so das ich schon wie ein Weltmeister gegoogelt habe ... aber mit dem Wort datastructs bekommt man sogar gute antworten bei der Suche :wink: danke

Vielen Dank auch das hilft mir !
LG Michael

ich schicke Zahlen mit Leerzeichen oder Tabulator getrennt, ohne Kommastellen, am Ende '\n'. Da ich die Reihenfolge kenne, kann ich auslesen:

if(Serial.available()>2){
  display.Text("Temperatur");
  display.Float(Serial.parseInt()/10);
  display.Text("Feuchte");
  display.Int(Serial.parseInt());
  display.Text("Abstand");
  display.Int(Serial.parseInt());
}

wie sehen denn die Daten aus?

Variante 1: Alles in einem Rutsch versuchen zu übertragen mit einer Kennung am Anfang und einer Kennung am Ende.
Variante 2: Jeden Wert einzeln mit einer eigenen Kennung übertragen.

In jedem Fall musst Du auf der Empfängerseite sicherstellen, das Du empfange Werte immer zuordnen kannst, egal ob während der Übertragung etwas "verloren" geht oder eine Unterbrechung eintritt.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.