Problema lettura/scrittura porta seriale

Ciao, penso di avere un problema con la comunicazione seriale di arduino, vi posto il semplice sketch che ho fatto:
Molto semplicemente vado a leggere dalla porta seriale un valore immesso e lo riscrivo per controllare il corretto funzionamento, ma il valore che immetto non è quello restituito, come se venisse visto con un altra regola...vi trascrivo i valori:

0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
10 58

void setup() {
  Serial.begin(9600);
}

void loop() {
 val=Serial.read();
 delay(500);
 Serial.println(val,DEC);
 delay(2000);
}

[code]

Se invii un carattere attraverso il terminale di Arduino verrà(immagina un po') interpretato come carattere e non come numero.

lucamazzarol:
Ciao,

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:

Come detto sopra, la comunicazione è a carattere, se spedisci il carattere '0' ottieni il valore decimale 48 che è il valore ascii del carattere '0'.
Per sapere se ci sono dati in coda, si usa Serial.available().
Nel seguente codice stampiamo il carattere ricevuto sia come carattere che come valore ascii:

void loop() {
  if(Serial.available())
  { val=Serial.read();
    Serial.print(val,DEC);    // ascii code
    Serial.print(" => ");
    Serial.println((char)val);
  }
}

Se vuoi ricevere una valore è utile la Serial.parseInt()

grazie mille, ho fatto la presentazione, letto il regolamento, ho corretto il primo post e adesso inizio a studiare...che è meglio!!