Wie kann ich mehrere Werte von Processing an Arduino über die serielle Bibliothek senden?

Ich habe einen grundlegenden Test durchgeführt, bei dem ein einzelner intWert von Processing über die Processing Serial-Bibliothek an Arduino gesendet wurde, und alles ist in Ordnung. Ich möchte mehrere Int-Werte senden, bin mir aber nicht ganz sicher, wie das am besten geht.

Gemäß der Dokumentation Serial.write

schreibt bytes, chars, ints, bytes[], Strings auf die serielle Schnittstelle

Eine Möglichkeit wäre also, eine Zeichenfolge zu senden, die ich aufteilen und die Werte abrufen kann:

arduino.write(intValue1+","+intValue2);

aber ich bin mir nicht sicher, wie ich die Datenkonvertierung lesen würde, wenn ich sie in Arduino erhalte.

Eine andere Sache, die mir in den Sinn kommt, ist die Verwendung von a, byte[]da ich mehrere Werte sende, aber ich habe nicht viel mit Bytes gearbeitet, daher wäre jeder Ratschlag, wie zwei in a byte[]und zurück gepackt/entpackt werden, sehr praktisch.

Danke!

Antworten (1)

Erstellen Sie ein Byte-Array mit Ihren Daten. Denken Sie daran, dass jedes Byte nur bis zu 255 gehen kann. Wenn Ihr int also größer ist, müssen Sie mehrere Bytes pro int verwenden.

Dann auf dem Arduino

while (Serial.available() > 0) {
  Serial.read() //now do something with this byte
}

Dies wird eine Schleife durchlaufen, bis keine Bytes mehr zu lesen sind, und jedes Mal wird ein Byte gelesen.

das habe ich gemacht, also hatte für 4 werte so etwas wiewhile (Serial.available() >= 4) { for(int i = 0 ; i < 4; i++) data[i] = Serial.read();//etc. }