Go Down

Topic: Sensore di temperatura collegato con 10m di filo (Read 21165 times) previous topic - next topic

alberto39

Dec 14, 2012, 09:50 pm Last Edit: Dec 14, 2012, 09:55 pm by alberto39 Reason: 1
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
Code: [Select]
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.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

pablos

Ma soprattutto questo cavo schermato dove transita?
no comment

alberto39

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.
Code: [Select]
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
}

alberto39


Ma soprattutto questo cavo schermato dove transita?

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

qsecofr

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

pelletta

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.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

flz47655

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

alberto39

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

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..  ]:D

Ciao

alberto39


-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..  ]:D

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?

flz47655

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

alberto39


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

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

flz47655

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

Go Up