Salve a tutti,
ho realizzato uno sketch in cui mi collego in gprs tramite la GSM shield, leggo i valori del sensore di distanza ad ultrasuoni e li invio su plot.ly tramite le loro API. Ottengo il grafico in figura con dei valori evidentemente disturbati da qualcosa. Preciso che in uno sketch separato ho provato la sola misura del ping sensor ed i valori sono consistenti, con variazioni di +- 3 cm, valori ottimi per il monitoraggio del livello di un serbatoio. In un terzo sketch separato leggo il valore analogico di un potenziometro su A0 e lo invio su plot.ly. I valori sono precisi ed il grafico che ottengo è ottimo (avviene sempre la connessione gprs con il GSM shield). Il problema è che quando abbino la misura della distanza alla funzione di invio dei dati su plot.ly i valori sono molto disturbati e illegbibili (ho allegato un'immagine).
Effettuo la misurazione con la seguente funzione:
long distCalc() {
long durata, distanza;
digitalWrite(TRIG_PIN, LOW); // TRIG_PIN = pin 12
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
durata = pulseIn(ECHO_PIN, HIGH); //ECHO_PIN = pin 11
distanza = durata / 29.1 / 2 ;
return distanza; // in uscita la distanza in [cm]
}
La funzione di loop in cui invio i valori su plotly è la seguente:
void loop() {
long distanza;
distanza = distCalc(); //fase di calcolo distanza
Serial.print(distanza);
Serial.println("cm");
graph.plot(millis(), int(distanza), tokens[0]); //fase di invio su plot.ly
delay(20);
}
Qualcuno sa dirmi perchè succede?
Grazie e saluti,
em1lio189