Sensore di temperatura collegato con 10m di filo

Salve, ho due sensori di temperatura un LM35DZ e un LM35CAZ,bene, tutte e due funzionano molto molto bene. Ma appena lo collego con un filo dove all'interno ci sono tre fili e una bella schermatura che protegge il tutto.
Il problema è che collegando il sensore con il filo 10m mi da una temperatura poco stabile cioè a quando ho 13 gradi poi mi da 30 ecco guardate anche voi, il delay è di 1000

 Celsius, 30.27
 Celsius, 15.63
 Celsius, 19.04
 Celsius, 24.90
 Celsius, 20.02
 Celsius, 19.53
 Celsius, 19.53
 Celsius, 23.44
 Celsius, 15.63
 Celsius, 16.11
 Celsius, 15.14
 Celsius, 33.20
 Celsius, 31.74
 Celsius, 25.39
 Celsius, 31.25
 Celsius, 17.09
 Celsius, 21.00
 Celsius, 24.41
 Celsius, 21.00
 Celsius, 16.11
 Celsius, 20.51
 Celsius, 27.34
 Celsius, 16.11
 Celsius, 27.34
 Celsius, 21.00
 Celsius, 24.90
 Celsius, 17.09
 Celsius, 17.58
 Celsius, 24.41
 Celsius, 17.58
 Celsius, 18.55
 Celsius, 16.60
 Celsius, 16.11
 Celsius, 28.32
 Celsius, 20.51
 Celsius, 22.46
 Celsius, 23.44
 Celsius, 20.51
 Celsius, 16.60
 Celsius, 17.09
 Celsius, 21.48
 Celsius, 24.41
 Celsius, 23.93
 Celsius, 24.90
 Celsius, 18.07
 Celsius, 15.63
 Celsius, 22.46
 Celsius, 24.41
 Celsius, 16.11
 Celsius, 15.14
 Celsius, 30.76
 Celsius, 23.93
 Celsius, 21.00
 Celsius, 16.60
 Celsius, 19.53
 Celsius, 20.51

la domanda che vi voglio fare è perchè ho questi sbalzi di temperature?? e dovuto al filo o a che cosa?

Si probabilmente è dovuto anche al filo, però non hai detto quale schema hai seguito per connettere gli LMXX ai pin di arduino.

Es. su ogni pin analogico usato c'è un condensatore da 100nF tra GND e il pin stesso?

Dovrebbe trattarsi di interferenza legata alla lunghezza dei fili. Risolvendo questo altri problemi di precisione potrebbero emergere.

Ciao.

Ma soprattutto questo cavo schermato dove transita?

perdonami hai ragione allora io ho fatto il collegamenti seguendo il datasheet
e poi ho collegato il pin del sensore lo collegato con uscita analogica A1 e poi ecco il programma che ho fatto.

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
}

pablos:
Ma soprattutto questo cavo schermato dove transita?

sotto la finestra e basta non passa con altri fili della corrente

10 metri per pochi millivolt sono tanti...
Per le celle di carico quando ci sono tratti lunghi si usano 6 fili ossia 2 in più del necessario per "compensare" il segnale... non so se si può pensare qualcosa di simile...
In ogni caso un'idea "software" potrebbe essere quella di fare una media di molte letture....male non fa... però imho sui 10 metri devi pensare ad amplificare prima il segnale o mettere un DAC vicino al sensore e trasmettere poi il segnale digitale.... e i2c mi pare che ti tocca pure amplificarlo...

Si potrebbe risolvere usando due microcontrollori: uno vicino al sensore che legge e trasmette via seriale il valore del sensore e l'altro dall'altra parte che riceve ed elabora i dati per fare anche altre cose; per la seriale 10 metri di cavi non sono un problema

Leggiti pagina 7 di questo datasheet: http://www.ti.com/lit/gpn/lm35

Dove dice come ovviare circa la ridotta capacità di pilotare carichi capacitivi tipici di fili lunghi.

In genere basta twistarli, cioè incrociarli ma in quella pagina spiega anche come ridurre i fenomeni transitori dovuti ai campi magnetici, vedi accendi spegni motore, luce, alimentatori a commutazione, scr, ecc.

Risolvi e poi fammi sapere come fai.

Ciao.

Anche se molto più caro utilizzerei un ds18b20+ per questo tipo di misure a distanza, ti restituisce un segnale digitale che non ha problemi così spinti su quelle distanze

Ciao

stavo leggendo http://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=lm35&fileType=pdf e a pagina 2 c'è un capitolo che dice "typical applications" figura 2 nella figura dice di mettere una R di non so quando ansi dice per sapere di quando deve essere la R si deve usare questa formula R=-Vs/50uA ma io non ho capito che cosa è -Vs. Perchè poi dice che la resistenza deve essere collegata tra il segnale e -Vs?
è questo il motivo che non funziona vero??

-Vs è una tensione negativa, se Vs è 5v allora -Vs è -5v. Permette di leggere temperature negative ma necessita di una tensione negativa che spesso non si ha come usando semplicemente Arduino.

In sostanza NON puoi trasmettere con confidenza su lunghe distanze un segnale di pochi mV, non a caso la seriale usa spesso una differenza di tensione di 30 volt (+-15v) per discriminare gli 1 e gli 0.

Soluzioni:

  • metti il micro vicino al sensore
  • usa un sensore con uscita digitale
  • amplifica il segnale prima di trasmetterlo => attenzione, è la strada del dolore in quanto potresti aver bisogno di equalizzare il segnale per compensare le distorsioni introdotte dal cavo, se sono non lineari allora auguri.. ]:smiley:

Ciao

flz47655:
-Vs è una tensione negativa, se Vs è 5v allora -Vs è -5v. Permette di leggere temperature negative ma necessita di una tensione negativa che spesso non si ha come usando semplicemente Arduino.

In sostanza NON puoi trasmettere con confidenza su lunghe distanze un segnale di pochi mV, non a caso la seriale usa spesso una differenza di tensione di 30 volt (+-15v) per discriminare gli 1 e gli 0.

Soluzioni:

  • metti il micro vicino al sensore
  • usa un sensore con uscita digitale
  • amplifica il segnale prima di trasmetterlo => attenzione, è la strada del dolore in quanto potresti aver bisogno di equalizzare il segnale per compensare le distorsioni introdotte dal cavo, se sono non lineari allora auguri.. ]:smiley:

Ciao

e se compro un sensore digitale è sicuro che posso fare questo progetto??
che modello devo prendere?
e di questo che ho che cosa posso fare?

Prova a dare un'occhiata al ds18b20+, quello che hai mettilo nel cassetto

flz47655:
Prova a dare un'occhiata al ds18b20+, quello che hai mettilo nel cassetto

che indenti dire per "prova a dare un'occhiata al ds...."

E' un sensore, questo è il suo datasheet http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf semplicemente valuta se va bene per la tua applicazione, su internet trovi n-mila articoli, è un sensore molto utilizzato anche con Arduino

Ciao

ok ok ma il sensore che ho lo posso usare per misurare la temperatura sotto zero cosi come è??
cioè abbiamo capito che è il filo che da problemi, ma se metto arduino fuori con il sensore lui mi misura la temperatura sotto zero o devo fare qualcosa altro??cioè applicare una conversione o devo mettere una R?

sono stato chiaro?

http://cinquetau.altervista.org/blog/2010/02/28/usare-un-lm35-per-misurare-temperature-negative-con-arduino/

Scusate se mi intrometto, solo vorrei capire come mai avete ignorato l'intervento di MauroTec, a me sembra che abbia dato la soluzione a tutti i problemi, a meno che quel data-sheet non dica caxxate oppure che non sia io a capire una cosa per un'altra.
La Fig. 8 di pagina 7 del data-sheet (pag. 8 del pdf) parla di un sensore remnoto di temperatura con due fili e l'uscita riferita a massa, per misurare temperature da -5°C a +40°C. La prova si fa in modo molto semplice: basta creare una micro-schedina su millefori con il sensore, le 4 resistenze, il condensatore (io lo metterei assolutamente), e arrivarci con un cavo twisted (quelli che all'interno sono avvolti tra loro in modo elicoidale: i tre fili avranno la solita funzione: 5V, GND e OUT sensore, la calza si può provare a collegarla alla messa a terra di casa, anche solo dal lato Arduino. Per la prova non è nemmeno necessario usare le R di precisione, in quanto per il momento è sufficiente verificare se i dati si stabilizzano in qualche modo, poi comunque quelle R andranno ricalcolate per essere adattate al range tipico in cui dovrà operare il sensore (p.es. da me 0°C capitano una volta ogni 2-3 anni, -1°C anche di più, quindi me ne fregherei, ma magari da lui ci stanno anche -17°C...).
Penso che allo stato delle cose sia l'operazione più semplice da fare. Se le R le devi comprare compra proprio quelle all'1%, altrimenti usa 2k2 e 220 al 5%, se le hai in casa. Se la cosa non dovesse andare a buon fine avrai perso mezzora... Credo che fondamentale sia il cavo twisted, ma credo che comunque vada usato anche con sensori con segnali più "potenti", i disturbi fanno pessimi scherzi anche sul digitale, mi ci sto limando le dita da un bel po' di tempo con questa cosa. Baci...

be è verissimo... meriterebbe una prova quantomeno... anche perchè sono una manciata di componenti...però imho se vogliamo la precisione assoluta che questi sensori possono offrire dobbiamo cambiare quel segnale da analogico a digitale... quindi imho è un'ottima soluzione i sensori dallas 1-wire che fino a 20-30 metri dovrebbero farcela o in alternativa mettere un sensore di temperatura i2c (che costano pochissimi euro di solito) ed unirli a un coso tipo questo:
http://it.rs-online.com/web/p/i-o-expanders/0821784/
...diremo che siccome sognare non costa nulla tanto vale pensare in grande :slight_smile:
Si avrebbe anche il vantaggio di poterli disseminare per mezza casa collegati con 2 fili.

scusate ma non ho capito il materiare che devo avere per fare la prova??
io a casa ho le resistenze del kit workshop, e ho delle resistenze da 220 ohm delle resistenze da 2.2komh vanno bene.
Se è no, ditemi cosa devo comprare

quindi non devo usare il cavo che ho ma devo andare a comprare un cavo lan?