Go Down

Topic: temperatura ballonzolante TMP36 (Read 1 time) previous topic - next topic

gpb01

Mi sembra un po' ... prolisso e spreca memoria ...

Cosa salvi a fare le letture in un vettore? :o  Sommale ad ogni lettura della temperatura e alla fine dividi per il numero di letture.

Ricordati una lettura a vuoto ogni volta che passi da un pin analogico ad un altro ...

Guglielmo
Search is Your friend ... or I am Your enemy !

vince59

Grazie Guglielmo. Proverò a modificare il codice come da te suggerito. Mi sono reso conto che in effetti spreca memoria...
Pe la lettura a vuoto ho cercato ma non ho trovato nulla.

gpb01

#17
Feb 17, 2018, 09:01 am Last Edit: Feb 17, 2018, 09:01 am by gpb01
Grazie Guglielmo. Proverò a modificare il codice come da te suggerito. Mi sono reso conto che in effetti spreca memoria...
... ricordati che esiste l'operatore  +=  che fa la somma ed assegna assieme ;)

Pe la lettura a vuoto ho cercato ma non ho trovato nulla.
... credo fosse nel datasheet o in qualche application note.  Tu comunque, ogni volta che passi da un canale all'altro, fai semplicemente una analogRead() del nuovo canale a vuoto (senza assegnarla a nulla) e poi inizi il tuo FOR di N letture.

Guglielmo
Search is Your friend ... or I am Your enemy !

vince59

Guglielmo, puoi per favore darmi qualche indicazione su come "ricostruire" il codice utulizzando l'operatore +=.
NOn mi è chiaro come va costruito... grazie

uwefed

#19
Feb 18, 2018, 12:49 am Last Edit: Feb 18, 2018, 12:51 am by uwefed
A = A+2;

A+=2;

Sono equivalenti.
Non c'é bisogno di ripetere la variabile una seconda volta.

Ciao Uwe


vince59

#20
Feb 18, 2018, 08:34 pm Last Edit: Feb 18, 2018, 08:35 pm by vince59
Ciao Uwe,

l'utilizzo penso di arrivarci, è il criterio applicato al codice che non riesco a comprendere....cioè ora lavoro su due array (anzi ne ho appena eliminata una) in cui memorizzo le letture, che logica devo seguire invece con l'operatore +=   ?

gpb01

#21
Feb 18, 2018, 11:01 pm Last Edit: Feb 18, 2018, 11:02 pm by gpb01
Faccio un esempio banale e poi tu lo applichi al tuo caso ...
... media della somma dei numeri da 1 a 10:

Code: [Select]
...
somma = 0;
for (i = 1; i < 11; i++) {
   somma += i;     // sommo mano mano i 10 numeri
}
somma /= 10;       // divido per 10 per calcolare la media dei numeri sommati
...

Guglielmo
Search is Your friend ... or I am Your enemy !

vince59

#22
Feb 19, 2018, 11:20 am Last Edit: Feb 19, 2018, 11:22 am by vince59
Grazie ad entrambi. Ero sulla strada giusta...vediamo se riesco ad implementarlo.

vince59

...sera a tutti. Riporto un attimo questo thread in vita...avendo un nuovo dispaly I2C ho aggiornato la libreria ed i corrispondenti comandi....e nn funziona più.
 Che minch... succede con la nuova libreria?

vince59

risolto...collegavo erroneamente sui piedini SDA/SCL mentre voleva il 4 e 5. Magari può servire a qualcun'altro

Go Up