Aquisizione di valori errata

Ciao ragazzi sto effettuando delle letture si in sensore tmp36 ma mi legge le letture sbagliate,cioe se ci sono 20 gradi nella stanza per (esempio) 10 letture legge 20 poi per 1 lettura legge (esempio) 16.... cosa puo essere secondo voi

Ciao ragazzi sto effettuando delle letture si in sensore tmp36 ma mi legge le letture sbagliate,cioe se ci sono 20 gradi nella stanza per (esempio) 10 letture legge 20 poi per 1 lettura legge (esempio) 16.... cosa puo essere secondo voi

Hai inserito un condensatore da 100nF tra ground (pin 1) ed alimentazione (pin 3)?

La lettura analogica può essere errata se il condensatore del convertitore AD interno non ha avuto tempo sufficiente per caricarsi.

Alle volte può bastare inserire nel loop un piccolo ritardo di 10ms - delay(10) tra le letture.

Altrimenti devi eseguire una media di 10 letture.

IL TMP36 ha una impedenza d'uscita abbastanza alta, è minore dei 10k massimi richiesti dal ADC del 328 però è alta quanto basta per captare facilmente disturbi lungo il cavo che collega Arduino al sensore, sono questi a causare le false letture.
Soluzioni possibili, capacità da 100 nF applicata sia su i terminali di alimentazione del sensore sia tra GND e il pin di input del ADC, usare cavo schermato, va bene quello sottile per applicazioni audio con due conduttori più calza.
Soluzione ottimale collegare un opamp subito dopo il sensore e pilotare l'ADC tramite questo.

Visto che la cosa interessa anche a me, intendi un OpAmp in una configurazione del genere:

Va bene un 358?

SukkoPera:
Va bene un 358?

Va bene come voltage follower, ancora meglio se usato con amplificazione 4X, in questo modo con 100° si ottengono 4V invece di 1V.
Per questa applicazione il LM358 va bene solo se usato come voltage follower o con amplificazione non maggiore di 3, questo perché non è un rail to rail, sul lato GND arriva senza problemi a pochi mV, sul lato Vcc, con alimentazione a 5V, non va oltre i 3.5 V.