Go Down

Topic: Arduino Gsm shield + hc-sr04 + plotly (Read 403 times) previous topic - next topic

em1lio189

Jul 03, 2015, 10:39 am Last Edit: Jul 03, 2015, 10:46 am by em1lio189
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:


Code: [Select]

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:

Code: [Select]

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

nid69ita

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- qui le pinout delle varie schede by xxxPighi: Pinout
- qui una serie di link generali utili: Link Utili
my name is IGOR, not AIGOR

em1lio189

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- qui le pinout delle varie schede by xxxPighi: Pinout
- qui una serie di link generali utili: Link Utili
Ciao nid69ita, mi sono presentato nella discussione che mi hai indicato.
In realtà avevo un altro account ma non ricordo più le credenziali ed ho preferito farne uno nuovo.

nid69ita

my name is IGOR, not AIGOR

em1lio189

E' possibile secondo voi che la fase di misurazione tramite la funzione pulseIn venga disturbata dagli interrupt necessari per la comunicazione softwareserial che usa la libreria del GSM Shield?

Nel caso fosse possibile, posso disabilitare gli interrupt prima del calcolo della distanza e dopo riattivarli?

Grazie,
emilio189

Go Up