Zwei Variablen Seriell übrtragen Arduino

Hallo,

habe zwei Variablen, insgesamt 32Bit, welche ich gerne von einem Arduino zu einem anderen senden will.

a=word(Byte1,Byte2);
b=word(Byte3,Byte4);

diese zwei Variablen will ich nun Seriall verschicken, jedoch funktioniert das nicht so:

Sender: 
...
void loop{
Serial.write(a); 
Serial.write(b);
}
Empfänger: 

void Setup(){
Serial.begin(9600);
}
void loop{
  if(Serial.avaible()>0){
     a=Serial.read(); 
     b=Serial.read();
  }

Wie könnte ich das am besten machen?=

Fkcm95:
diese zwei Variablen will ich nun Seriall verschicken, jedoch funktioniert das nicht so:

Ja, auch wenn man nur 32 Bits übertragen möchte, braucht man dafür ein Übertragungsprotokoll mit Sinn und Verstand.

Und mit Idiotenkram "funktioniet das nicht".

Eine Möglichkeit wäre:

Du bastelst Dir Deine 32 Bits zu einer uint_32_t Variablen zusammen und sendest diese in dezimaler ASCII-Formatierung mit abschließenden Steuerzeichen für Carriage Return und Linefeed einfach mit:
Serial.println(Variable);

Auf Empfängerseite sammelst Du dann so lange ASCII-Ziffern ein, bis die Steuerzeichen für das Zeilenende kommen.

Andere Möglichkeit: Du sendest zwei ^16-Bit Variablen als Hiword und Loword, und wenn Du die 8-Bit Bytes geschcickt zu 16-Bit Hiword und Loword zusammengepackt hast, kann der Empfänger beim Empfangen leicht erkennen, ob der letzte empfqene Wert ein Hiword oder ein Loword war.

Noch andere Möglichkeit: Du sendest nicht in ASCII-Formatierung mit Zeilenende-Steuerzeichen.

Es ginge auch so:

Du sendest einfach die vier Bytes als Binärwerte mit einer anschließenden Sendepause.

Dr Empränger braucht dann eine Timeout-Erkennung:

Er liest einfach die einteffenden Werte, merkt sich die letzten vier, und immer wenn ein Timeout auftritt, wertet er die letzten vier empfangenen Bytes aus.

Im wesentlichen sehe ich also diese zwei Möglichkeiteen:

Übertragung von ASCII-Zeichen "mit Zeilenende-Trennzeichen"

Oder "Übertragung von Binärwerten §mit Timeout-Sendepause"

Für die "Übertragung in "ASCII mit Trennzeichen" gibt es in diesem Forum wohl weit über hundert Codebeispiele aus den letzten 10 Jahren, seit dieses Forum besteht.
Woran scheitert es?
Kannst Du wirklich kein funktionierendes Code-Beispiel finden?
Soll ich Dir im Forum was heraussuchen?

Oder bekommst Du Deine vier Bytes nicht zu einer uint32_t Variablen zusammengepackt?

Fkcm95:
Wie könnte ich das am besten machen?=

Was ist "am besten"?

Evtl. so: Der CmdMessenger
Einfach, schnell und schön vorgekaut.
? ? ?

Hallo,
es ist ja jedesmal köstlich...

das funktioniert

Jetzt hast Du alle Informationen die Du brauchst.
Gruß und Spaß
Andreas