Ciao,
sto realizzando un semplice prototipo che acquisce dati da più sensori contemporaneamente.
Vorrei che lo sketch chiedesse all'utente, prima di partire, quante letture eseguire e l'intervallo di tempo tra una lettura e l'altra.
Ho pensato di utilizzare dei cicli while consecutivi all'interno del codice, ma il codice non si interrope quando dovrebbe (sotto il codice il risultato).
//Numero di letture da eseguire
int NoR;
//ridardo tra letture
int ReadTime;
//Definisco oggetti e pin input
int SENSOR_analogIN = A8;
float SENSOR_VAL;
//Messages
String msg1 = "Please, insert the number of reads: ";
String msg2 = "Please, insert the time (ms) among reads: ";
void setup() {
//Definizione comportamento dei pin
pinMode(SENSOR_analogIN, INPUT);
Serial.begin(9600);
//Chiede il numero di reads da eseguire
Serial.println(msg1);
while(Serial.available() ==0){}
NoR = Serial.parseInt()-1;
//Chiede il ritardo tra le reads
Serial.println(msg2);
while(Serial.available() ==0){}
ReadTime = Serial.parseInt();
}
void loop() {
//Lettura da sensore
for(ii; ii<=NoR;ii=ii+1){
SENSOR_VAL = analogRead(SENSOR_analogIN);
Serial.print(SENSOR_VAL);;
delay(ReadTime);
}
}
Il risultato è che mi viene richiesto il numero di letture e viene eseguito correttamente, ma subito dopo aver ricevuto la risposta e senza fermarsi per chiedere anche il tempo tra una lettura e l'altra.
Immagino che il problema sia causato da Serial.available() == 0 che nel secondo ciclo While non è più uguale a 0.
Avete qualche suggerimento?
Grazie.