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.