int incomingByte;
char Data[8];
int i;
unsigned long Tempo;
void setup()
{
Serial.begin(9600);
}
void loop(){
do {
if (Serial.available()) {
Data[i] = Serial.read();
i++;
}
if(i<1)Tempo = millis();
} while (i<5&&(millis()-Tempo) < 500);
Data[i] = 0;
incomingByte = atoi(Data);
i=0;
Serial.println(incomingByte);
}
Questo codice prende 5 caratteri dalla seriale oppure anche di meno se non arrivano entro 0,5 secondi e li converte in un int. I numeri possono andare da ca 32000 a ca -32000 (limite variabili del tipo int, visto che lavora con 16 bit.)
Se trasmetti per esempio solo 3 caratteri come 123 lo sketch te li prende e non aspetta finche hai mandato i restanti 2.
Se trasmetti piú di 5 cartteri li vede come 2 trasmissioni di cui la prima é lunga 5 caratteri e la seconda il restante .
Ciao Uwe