Go Down

Topic: LM35 con cavo 3m (Read 1 time) previous topic - next topic

lucadh

Ciao a tutti!
ho un problema con il sensore di temperatura LM35. praticamente sto facendo un piccolo termometro con delle soglie che, superate, fanno scattare 2 relè, uno per una ventola e l'altro per un riscaldatore (tutta roba per acquari). il problema è questo: finchè provo tutto su breadboard funziona tutto alla grande, ma se cambio solo il sensore e ne metto uno con un cavo schermato da 3 m mi da delle temperature strane come ad esempio 50, 18, 23 ecc... credevo fossero disturbi sul cavo e quiondi l'ho schermato. ma niente da fare. un amico mi ha consigliato un piccolo condensatore in modo da filtrare un pochino e anche col condensatore non va. come si può fare? qualcuno ha una soluzione?
Grazie!
Ciao

lesto

come nella figura 14 del datasheet?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Michele Menniti

3mt non sono così tanti da richiedere interventi specifici sull'hardware; hai adottato la media delle letture? Potresti postare lo sketch che usi? Magari si risolve via software. Inoltre hai provato a scmabiare tra loro i due sensori? Non è che uno non va di suo??
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

lucadh

dunque: oggi pomeriggio appena riesco provo con il filtro RC che consigliano sul datasheet del componente e magari si risolve.  i 2 LM35 sono perfettamente funzionanti. entrambi danno gli stessi valori su bradbord e gli stessi col cavo. ovviamente senza cavo è giusto mentre col cavo no.

non credo si possa risolvere dallo sketch perchè da dei valori folli!!! passa in un secondo da 50 a 14 gradi... anche facendo la media si otterrebbero temperature che secondo me non possono essere affidabili. lo sketch l'ho trovato su un sito(però ripeto, se non uso il cavo non ho problemi e la T è giusta):


float tempC;      //dichiarazione di variabile
int tempPin = 0;  //inizializzazione del pin di Arduino

void setup()
{
Serial.begin(9600); //apertura porta seriale, set della velocità a 9600 bps
}

void loop()
{
tempC = analogRead(tempPin);           //lettura valore del sensore
tempC = (5.0 * tempC * 100.0)/1024.0;  //conversione del dato analogico in temperatura
Serial.println(tempC);             //invia i dati alla seriale
Serial.print(" Celsius, ");

delay(1000);                           //aspetta 1 secondo prima di ripetere
}


comunque appena riesco a provare il filtro vi dico... grazie per il momento!!!

lesto

misura la ersistenza del cavo, e magari pure il suo effetto capacitanza/induttanza.
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

zoomx

Stai dicendo che i valori con il cavo sono sbagliati ma sincroni?

Io sospetto qualche disturbo, magari qualcosa che mi fa variare la tensione di alimentazione dei sensori. Un oscilloscopio aiuterebbe tanto.

Etemenanki

Disturbi ... sono dovunque ...  :smiley-eek-blue:

Seriamente, dato che comunque lo devi alimentare, usa un'operazionale ed amplifica la tensione di uscita del sensore in loco (sul sensore, non sull'arduino) ... cosi la tensione sul cavo sara' piu elevata ed anche i disturbi saranno meno influenti ... inoltre anche la bassa impedenza dell'uscita dell'opto contribuira' a diminuirne l'effetto ;)
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

zoomx

A questo punto è meglio usare un sensore in corrente invece che in tensione.

Etemenanki

In un vecchio application note dell'LM35 c'e' un'esempio di come usarlo insieme ad un LM317 per costruirci un circuito in current loop ... http://www.ti.com/lit/gpn/lm35 pagina 12 ... piu semplice di cosi ... ;)
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

cyberhs

Io credo che ci sia anche un problema software:

Code: [Select]

void loop()
{
tempC = analogRead(tempPin);           //lettura valore del sensore
tempC = (5.0 * tempC * 100.0)/1024.0;  //conversione del dato analogico in temperatura


meglio non utilizzare una variabile float per memorizzare una lettura analogica int.

lesto

non capisco come funzioni quello schema, come agisca il LM317, e del perchè quel transistor sia necessario.

lato arduino dici hce basta misurare il calo di tensione su una resistenza, o cosa?

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lucadh

tutto ok!  risolto con il filtro che indicano in figura 15 del datasheet e cavo schermato.  grazie a tutti dei consigli!

Etemenanki

> lesto: il regolatore LM317 puo essere usato sia come regolatore di tensione che come regolatore di corrente ... in quel caso e' usato proprio come regolatore di corrente, pilotato dalla differenza di potenziale creata dall'LM35 fra il suo negativo e l'uscita, che dipende dalla temperatura ... maggiore la temperatura, maggiore la differenza, e quindi maggiore la corrente regolata dal 317 ... il transistor non e' menzionato in nessun punto, ma con quella configurazione probabilmente serve da regolatore per compensare le variazioni della tensione di alimentazione ... non e' una configurazione molto comune (e neppure molto normale), ma a quanto pare funziona  (anche se probabilmente neppure chi ha scritto l'application note sa esattamente il perche' :smiley-eek-blue: XD) ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

pl_max

Una domanda da neofita: non ho a disposizione resistenza 75 ohm e condensatore 1 micro come da datasheet per cavo di collegamento lungo. Se li sostituisco con resistenza 200 ohm e 10 micro cosa cambia nel comportamento?
Grazie

leo72

Leggendo il regolamento avresti visto che, come in tutte le situazioni della vita, quando si arriva in un posto nuovo ci si presenta  ;)

Tu invece riesumi un thread di 8 mesi fa...

Go Up