PWM 0-255 via seriale

Salve a tutti, a scopo didattico vorrei controllare l'intensità luminosa (tramite PWM) dal pc sfruttando la porta seriale. Ho scritto queste righe:

#define led 3
int val=0;

void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop() {
  while (Serial.available() ==0);
  val=Serial.read()-'0';
  Serial.print("Duty=");
  Serial.println(val);
  analogWrite(led,val);
}

Il problema è dato dal fatto che se io scrivo ad esempio 50 arduino lo interpreta come un 5 e poi uno 0. Leggendo un po' ho capito che questo è dovuto al fatto che il read legge un byte solo... Non ci sarebbe una soluzione alternativa in modo che quello che scrivo venga let tutto insieme?
Grazie, Theiden.

Esatto, la seriale viene letta un byte alla volta per cui devi gestire la trasmissione in maniera diversa.

O spedisci un byte che rappresenta il valore numerico oppure spedisci il numero in cifre sapendo però che sulla seriale viaggerà scomposto nei singoli caratteri che lo compongono.

PS:
ho scritto un articolo, tempo fa, proprio sulla gestione dei dati tra PC e Arduino, ti potrà aiutare.

temevo questa risposta :~ speravo in qualcosa di semplice tipo un comando apposito a me sconosciuto, cmq ti ringrazio molto, ho dato un'occhiata al tuo articolo e sembra molto esauriente, ora me lo leggo per bene :smiley:
grazie, Theiden.