ich schicke vom PC einige Nachrichten an den Arduino Baustein, die das Ziel haben von verschiedenen Pins das PWM Ausgangssignal zu setzen. Die Nachricht ist folgend ausgebaut:
SET;1;255
SET = was soll arduino machen
1 = pin
255 = pwm wert
Arduino soll diese Nachricht zerlegen, und dann also Pin 1 auf Wert 255 setzen. Wie empfange und zerlege ich die Message auf Arduino am besten?
Nachdem die SerialLib des Arduino die Daten byteweise empfängt, schickst Du am besten einfach 3 Bytes.
Byte 1: Befehlscode (z.B. 1 für SET)
Byte 2: Pin Nummer
Byte 3: PWM Wert
Nachdem Du bei PWM eh nur max. 255 einstellen kannst, sollte das die einfachste Lösung sein.
Wozu das Ganze als Text übertragen?
Du kannst doch die Nachricht als Ganzes schicken. Die Nachricht besteht aus 3 Bytes und landet komplett im Eingangspuffer des Arduino (Größe: 128 Byte).
Das Auslesen der Übertragung geht aber nicht anders weil Serial.read() nur ein einzelnes Byte aus dem Puffer liest.
Wo ist das Problem?
Wie kann ich die gesamte Nachricht auf Arduino empfangen und in eine String Variable einlesen?
Woran erkennst du, daß eine Nachricht zu Ende ist? Sobald das klar ist, einfach auf das Ende der Nachricht warten und die Nachricht erst bearbeiten, wenn die ganz da ist. Dann funktioniert alles ganz einfach.