Aiuto esercizio sensore temperatura TMP36

Buonasera,
premetto che sono un neofita di Arduino ma con tanto entusiasmo sto seguendo gli esercizi del libro dato in dotazione con lo starter kit originale che ho acquistato un paio di settimane fa.
Tutto ok finchè non mi sono impantanato sull'esercizio n°3 in cui si è per la prima volta alle prese con l'utilizzo del sensore di temperatura TMP36.
Ho seguito pedissequamente le istruzioni sia per la creazione del circuito sia per la programmazione dell'Arduino Uno ma i valori restituiti sono assolutamente sballati.
Se qualcuno potesse aiutarmi gliene sarei davvero molto grato.
In allegato la foto del circuito che ho realizzato, la schermata dei valori che Arduino mi restituisce sul monitor seriale dell'IDE e il programma che ho scritto.

Vi ringrazio
A presto

sketch progetto sensore temperatura TMP36.txt (1.16 KB)

Hai provato di misurare la tensione di uscita del TMP36 e la tensione di alimentazione direttamente sui piedini del TMP36 con un multimetro. Dovresti leggere ca 0,75V (con 25°C)
Ciao Uwe

Ho un multimetro ma non saprei come fare il test che consigli. Purtroppo sono ancora alle prime armi e sto cercando di imparare il più possibile

  • Alimenti Arduino via UsB
  • Misuri la tensione di alimentazione del TMP36 toccando con i puntali i 2 piedini GND e Vs (piedini esterni) del TMP36. Dovresti misurare una tensione intorno ai 4,5V fino a 5V.
  • misuri la tensione del piedino di uscita (quello centrale) metti un puntale su quello e l' altro su gnd. Dovresti leggere una tensione intorno a 0,75V. La tensione varia in funzione della temperatura da 0,7V a 20°C a 0,8V a 30°C

Ognitanto i fili inseriti nelle breadbord non fanno bene contatto e percui il circuito costruito non funziona.

Ciao Uwe

Purtroppo ho notato varie volte questo problema (e se fai un po' di ricerche se ne è già parlato sul forum) ...
... prova a mettere un bel condensatore, dai 220 μF in su, tra il GND e il Vcc e vedi se la misura diviene un po' più stabile.

Altro suggerimento, NON ti limitare ad una lettura, ma fai sempre la media più letture (es. leggi 10 valori e fai la media).

Guglielmo

in ogni caso hai un errore nel calcolo, nell'immagine che hai allegato il primo valore in volt è 0,42 cioè 420 mV

dal datasheet

tmp37.jpg

dice che sono 20mV/C° quindi 420 / 20= 21 gradi

tmp37.jpg

Patrick_M:
in ogni caso hai un errore nel calcolo, nell'immagine che hai allegato il primo valore in volt è 0,42 cioè 420 mV

dal datasheet

tmp37.jpg

dice che sono 20mV/C° quindi 420 / 20= 21 gradi

Peccato che lui ha un TMP36 non un TMP37
Ciao Uwe

ops... svista :slight_smile: siccome il datasheet è unico ne ho perso un pezzetto :smiley:

tmp36.jpg

quindi a 750 mV sono 25 gradi

a 420 dovrebbero essere circa 13

c'è comunque qualche cosa che non torna

tmp36.jpg

mi auto-replico :slight_smile:

rivedendo il datasheet

il tmp36 ha un range da -40 a +125 gradi

e la variazione lineare di tensione va da 100 mV a 2000 mV

quindi -40°C =100mV
per cui i 420 mV trovati sono in effetti -8 gradi
questo per dire che il calcolo è giusto :slight_smile: e il sensore funziona
per cui come dicono Uve e guglielmo il problema è nell'hardware :smiley:

alla fine ci arrivo anch'io :wink:

Intanto ringrazio tutti dell'aiuto e della disponibilità.
Mi sono messo a lavoro ed i risultati sono che testando con il multimetro il sensore, rilevo i seguenti valori:

5,08V - due piedini esterni
0,22V - piedino centrale e GND

Sul multimetro entrambi i valori sono praticamente fissi mentre sulla schermata seriale dell'IDE i valori cambiano di continuo e sono tutti valori sballati (come da screenshot allegato nel primo post).
Una delle righe restituite dava i seguenti valori:

Valore Sensore:46 , Volt:0.22 , Temperatura:-27.54 C°

In questo caso anche se per mezzo secondo, è stato rilevato il voltaggio giusto (0.22V) ma:

[/quote]

uwefed:
Hai provato di misurare la tensione di uscita del TMP36 e la tensione di alimentazione direttamente sui piedini del TMP36 con un multimetro. Dovresti leggere ca 0,75V (con 25°C)
Ciao Uwe

-se 0,750V=25C° allora 0,220V=7,33C° e non -27.54C°

Patrick_M:
mi auto-replico :slight_smile:

rivedendo il datasheet

il tmp36 ha un range da -40 a +125 gradi

e la variazione lineare di tensione va da 100 mV a 2000 mV

quindi -40°C =100mV
per cui i 420 mV trovati sono in effetti -8 gradi
questo per dire che il calcolo è giusto :slight_smile: e il sensore funziona
per cui come dicono Uve e guglielmo il problema è nell'hardware :smiley:

alla fine ci arrivo anch'io :wink:

-se 0,100=-40C° allora 0,220V=-88C°

Giusto?

A questo punto, considerando che probabilmente a casa mia ci sarà una temperatura che oscilla al massimo tra i 15C° ed i 25C° e che quindi siamo ben lontani da quelle finora rilevate o presunte (-27.54C° / 7,33C° / -88C°) sulla base dei 220mV misurati col multimetro; vi domando quale potrebbe essere il problema.

gpb01:
Purtroppo ho notato varie volte questo problema (e se fai un po' di ricerche se ne è già parlato sul forum) ...
... prova a mettere un bel condensatore, dai 220 μF in su, tra il GND e il Vcc e vedi se la misura diviene un po' più stabile.

Altro suggerimento, NON ti limitare ad una lettura, ma fai sempre la media più letture (es. leggi 10 valori e fai la media).

Guglielmo

Guglielmo purtroppo ancora non sono arrivato all'uso dei condensatori e sinceramente non so se nello starter kit ce n'è uno come dici te e se sono in grado di collegarlo nel giusto modo.
In tutti i casi, è possibile che su un esercizio base come questo, l'autore si sia scordato o non abbia considerato d'inserire questo ulteriore elemento?

marvincibel:
Sul multimetro entrambi i valori sono praticamente fissi mentre sulla schermata seriale dell'IDE i valori cambiano di continuo e sono tutti valori sballati (come da screenshot allegato nel primo post).
Una delle righe restituite dava i seguenti valori:

Valore Sensore:46 , Volt:0.22 , Temperatura:-27.54 C°

In questo caso anche se per mezzo secondo, è stato rilevato il voltaggio giusto (0.22V) ma:

-se 0,750V=25C° allora 0,220V=7,33C° e non -27.54C°

-se 0,100=-40C° allora 0,220V=-88C°

Giusto?

col multimetro non vedi le oscillazioni veloci dei valori per cui ti sembra stabile

se 0,100 = -40°
0,200 = -30°
0,220 = -27°-28° <-------- è corretto il -27
0,300 = -20°
0,400 = -10°
0,500 = 0°
0,600 = +10°
0,700 = +20°
0,750 = +25°

Patrick_M:
col multimetro non vedi le oscillazioni veloci dei valori per cui ti sembra stabile

se 0,100 = -40°
0,200 = -30°
0,220 = -27°-28° <-------- è corretto il -27
0,300 = -20°
0,400 = -10°
0,500 = 0°
0,600 = +10°
0,700 = +20°
0,750 = +25°

-27° è un valore errato però. Qui in camera la temperatura non va mai al di fuori dei 15°/25°.
Non capisco se è il sensore che non funziona per qualche motivo o è il calcolo di conversione mV/C° che ho impostato nello sketch che non è giusto ::slight_smile:

no, ti confermo che il calcolo è giusto con quei valori :slight_smile:

dovresti avere un valore di tensione compreso tra 0,650 e 0,750 mV per 15-25° quindi la lettura del pin a0 dovrebbe darti valori dai 130 a 160 circa

Ragazzi ho capito qual era il problema: stavo utilizzando un Transistor BC547 al posto del sensore TMP36.
Purtroppo agli occhi di un neofita come me sono molto simili e mi sono sbagliato.
Perdonatemi!
Grazie mille a tutti per l'aiuto e a presto su questo forum :wink:


E io che ho pensato che non dovevo chiederlo se il TMP36 era veramente un TMP36 e non un transistore.
Ciao Uwe

porc*#??*##@@@@@