Ciao a tutti, mi è venuta una curiosità.
Con processing mi era riuscito di digitare dei numeri a più cifre sulla porta seriale e, all'invio, a trasformarli in variabili.
È tanto difficile da fare semplicemente con arduino?
Vi ringrazio.
puoi connettere una tastiera ps2 direttamente ad arduino (c'è una libreria apposita) ma senza vedere quello shce scrivi diventa difficile ti ci vuole un "monitor" che potresti costruire con un lcd.
No ma infatti intendevo tramite il monitor del computer, connettendo l'arduino con l'usb.
il semplice hyperterminal non ti piace?
o putty?
o realterm?
o qualsiasi altro terminale seriale.
In realtà non li conosco, mi ero limitato a digitare nel terminale dell'ide e dare invio, ma mi scompone le parole nei vari caratteri che legge come numeri, credo ascii. Volevo capire come tenere uniti i valori che inserisco e intermpretarli per come sono scritti. Tipo: se scrivo 155, una variabile dovrebbe diventare 155.
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.
In effetti ricordo che anche in processing andava tutto archiviato in una stringa, conoscete qualche tutorial a riguardo per arduino?
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".
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
Ti ringrazio molto, è esattamente quello che mi serviva!
lieto di averti potuto aiutare.
Ciao Uwe