LM35 con cavo 3m

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

come nella figura 14 del datasheet?

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??

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!!!

misura la ersistenza del cavo, e magari pure il suo effetto capacitanza/induttanza.

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.

Disturbi ... sono dovunque ... :fearful:

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 :wink:

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

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 ... :wink:

Io credo che ci sia anche un problema software:

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.

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?

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

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' :fearful: XD) ...

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

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

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

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

cmabia la frequanza di taglio, nel primo caso a 2100Hz circa nel secono ad 80 Hz circa

Superficialità, non volevo mancare di rispetto a nessuno. Scusate.


Quindi per la mia applicazione (datalogger temperatura con intervallo di registrazione superiore a 1 s) non dovrebbe cambiare nulla. Non devo registrare transienti molto veloci.
Grazie!