UART mehrere Arduinos verbinden

Ich verwende für die Datenverarbeitung mehrerer Arduinos. Ein Arduino ist der Master, wo die ganzen Daten gesammlt werden.

byte val;

void setup()
{
  Serial.begin(9600);
  Serial1.begin(9600);
  Serial2.begin(9600);
  Serial3.begin(9600);

}

void loop()
{
//Master bekommt 2 Bytes jweils von jedem Slvae

 if (Serial1.available()>2)                                     
{
   val = Serial1.read();
 }

 if (Serial2.available()>2)                                     
{
   val = Serial2.read();
 }

 if (Serial3.available()>2)                                     
{
   val = Serial3.read();
 }

}

Slave TX an RX vom Master und Ground an Ground.

Doch irgendwie funktionier das nicht so, wie ich mir es wünsche. Ich will sekümndlich Daten vom Slave bekommen und auf dem Maste speichern bzw. ausgeben. Bekomme nur Werte raus, die keinen Sinn ergeben, wie z.B. der übergebene Wert ist: 5, angezeigt am Master ist 62666.

Wo könnte der Fehler sein? Ist der Code vom Master so richtig???

Wenn > 2 Byte da sind, liest Du 1 Byte. Das macht wenig Sinn.

Wenn Du 2 Bytes erwartest, solltest Du die auch >= 2 abfragen und diese auch beide abholen.

Sind das 2 unabhängige Bytes oder bilden die zusammen einen Wert?

Etwas genauere Infos wäre schon sinnvoll. Du könntest auch die Baudrate hoch setzen, z.B. auf 115200

Gruß Tommy

Hallo,
in #4 den Sketch von "Serenifly".
Der funktioniert.
Gruß und Spaß
Andreas