Go Down

Topic: digitare input da tastiera (Read 870 times) previous topic - next topic

leo72

Devi riunire tu quello che arriva dalla seriale. La seriale spedisce un byte alla volta.
Se tu digiti 1-5-5-invio, arriveranno i caratteri 49 (ASCII per "1"), 49, 53 e 13.

secondsky

In effetti ricordo che anche in processing andava tutto archiviato in una stringa, conoscete qualche tutorial a riguardo per arduino?

uwefed

#7
May 19, 2012, 12:12 am Last Edit: May 19, 2012, 09:55 pm by uwefed Reason: 1
Questo codice legge un numero in forma di stringa inviato dalla seriale e lo trasforma in un numero. Pó essere inviato un numero a lunghezza variabile. La trasmissione viene considerata dopo un certo tempo terminata. In questo modo puoi trasmettere "2" come "1234".

Code: [Select]

int  incomingNumber;   // numero trasmesso
char Data[8];  // buffer per la stringa trasmessa
int i;
unsigned long Tempo;
unsigned long attesa = 500;   //tempo attesa per leggere tutta la strinaga; puó essere diminuito in funzione del Baudrate  

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

void loop(){

  do {
    if (Serial.available()) {      
      Data[i] = Serial.read();
      i++;
      }    
    if(i<1)Tempo = millis();
    } while (i<6&&(millis()-Tempo) < attesa);
 
  Data[i] = 0;    
  incomingNumber = atoi(Data);  
  i=0;
  Serial.println(incomingByte);
}


Ciao Uwe

secondsky

Ti ringrazio molto, è esattamente quello che mi serviva!

uwefed

lieto di averti potuto aiutare.
Ciao Uwe

Go Up