Go Down

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

Graziano

Fatemi sapere, quando mi sono imbarcato nell'impresa non credevo che avrei avuto di questi problemi.
Se cè da cambiare sensori per me è lo stesso, ormai che ho iniziato e vorrei finire... è snervante arrivare alla fine dopo mille problemi e scoprire che non puoi fare quello che credi di fare...
Ma quindi questi sensori vanno bene solo se montati direttamente sui circuiti stampati, non possono essere remotizzati, ho capito bene ? è per una questione di perdita del segnale lungo il cavo?

qsecofr


Fatemi sapere, quando mi sono imbarcato nell'impresa non credevo che avrei avuto di questi problemi.
Se cè da cambiare sensori per me è lo stesso, ormai che ho iniziato e vorrei finire... è snervante arrivare alla fine dopo mille problemi e scoprire che non puoi fare quello che credi di fare...
Ma quindi questi sensori vanno bene solo se montati direttamente sui circuiti stampati, non possono essere remotizzati, ho capito bene ? è per una questione di perdita del segnale lungo il cavo?



il coso produce pochi mv ogni grado ed i cavi lunghi hanno i loro ohm, la loro capacità e raccolgono pure disturbi. Nel datasheet ci sono degli schemi per correggere questi fattori però non è più banale come prima...

Michele Menniti

#137
Jan 02, 2013, 10:42 pm Last Edit: Jan 02, 2013, 10:50 pm by Michele Menniti Reason: 1
bah, qui si sta facendo solo bordello; vi risparmio la mia sulle battute ]:D
Esorto Alberto ad andare avanti con le misure, segui i consigli di qsecofr e rifai le misure per 0°C e 35-36°C (sotto ascella).
@ Graziano: piombi qui come un falco e senza aver letto un minimo di post inizi a versare tutta la tua disperazione; come ti è stato detto stiamo facendo delle prove che ovviamente non sono le tue prove, ma il test di uno schema che serve proprio per compensare la lunghezza del filo, quindi dovresti correttamente rileggerti tutto, capire che stiamo facendo e poi decidere se seguire ancora questo Topic e vedere come va a finire o intraprendere una strada diversa e non se ne parla più. Se decidi di fare i nostri test sei graditissimo, leggendo il Topic non dovrai fare altro che ripetere tutte le prove di Alberto (ovviamente leggendo anche come gli sono state chieste) e postare i tuoi risultati, così avremo un ottimo doppio confronto. P.es. la prova ghiaccio ora abbiamo compreso che era un semplice prova doccia per il sensore, quindi molto probabilmente siamo già al risultato finale; ma se non risolviamo entro venerdì, nel fine settimana rientro a casa e me le faccio da solo le prove, qui passano giorni inutilmente, alberto non fa altro che bere e mangiare dai parenti e noi qui a sbavare come deficienti ]:D
@qsecofr: sul discorso alimentazione di Arduino sei fuori strada; il regolatore interno lavora solo sulle tensioni che entrano nel jack japan, che devono essere minimo di 7V; la tensione che proviene dall'USB è considerata stabilizzata e corretta e quindi passa direttamente (tramite un comparatore che comanda un mosfet) ad alimentare il circuito, quindi non può esserci una caduta di tensione così alta.
@Mauro: come già detto concordo con te sulla questione del Ref a 1,1, che sicuramente sarà la definitiva in quanto raramente supereremo 600mV, tuttavia dobbiamo prima completare i test a 5V; se hai guardato il grafico vedi che quasi ci siamo, va chiarita la situazione agli estremi di scala, i consigli di qsecofr sono utili in tal senso, il problema è quanto ci mette alberto ad eseguiri ]:D
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

Graziano

Chiedo scusa, ma io volevo sapere se la cosa fosse fattibile, perchè se dopo 10 pagine di forum se ne discute ancora è lecito pensare che la cosa non sia fattibile, preso atto che il sensore produce pochi mv ogni grado ed i cavi lunghi hanno i loro ohm, non mi resta altro da fare che rinunciare oppure se qualcuno ha delle alternative (cioè altri sensori che non hanno il problema)seguirò quelle oppure se troverete la soluzione   ne sarò felice.

Michele Menniti

Per me lo è altrimenti non stavo qui a perdere giornate, come ti ho detto questa cosa si poteva risolvere in due giorni se le cose fossero state fatte per bene e soprattutto se si fossero fatte le prove a ritmi rapidi, invece guarda quanto passa tra una prova l'altra e capisci che ci sarebbe da snervarsi, come sta succedendo a te, che ancora sei al secondo post. Trova nei post iniziali il link al circuito da realizzare, realizzalo e poi fai le misure e postale, e seguiremo anche te"
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

Graziano

Vabbè visto che sono a casa in ferie fino al 7...
Domani mattina mi ci metto

qsecofr


Chiedo scusa, ma io volevo sapere se la cosa fosse fattibile, perchè se dopo 10 pagine di forum se ne discute ancora è lecito pensare che la cosa non sia fattibile, preso atto che il sensore produce pochi mv ogni grado ed i cavi lunghi hanno i loro ohm, non mi resta altro da fare che rinunciare oppure se qualcuno ha delle alternative (cioè altri sensori che non hanno il problema)seguirò quelle oppure se troverete la soluzione   ne sarò felice.


... se dovesse toccare a me un problema simile spendo 5 euro in più e prendo quel dallas che ti dicevo prima... però ripeto qui si gioca un'altra sfida.
Spero che Michele non mi sgridi: disubbidisco al suo schema mentale di prove ed aggiungo due "variabili"  "inquietanti": questo pomeriggio ho attaccato un lm35 ed un boo non mi ricordo sensore di temperatura digitale i2c smd 12 bit ... l'lm misura come temp ambiente 1,5 gradi in meno del digitale... ma ad occhio e vedendo il termostato  sul muro sembra comunque più corretto l'lm... però strano...tanto strano... comunque l'lm l'ho attaccato ad una 20ina di cm di filo, ho preso il mio palloncino e l'ho messo a mollo: sono sceso a 0,8 gradi ma vi confermo che nonostante il test l'abbia fatto accuratamente è veramente un attimo leggere anche 2 gradi in più... in meno diremo che lm non ti permette di andare negativo senza qualche partitore quindi non so se i pochi mv che ho misurato siano da lm o da "aria". Metto lo stesso sensore sotto l'ascella ed arrivo a fatica dopo 5 minuti a 35.5 gradi... ho messo anche un termometro a mercurio (36.1) ed uno digitale(36.2): il fatto è che 0,6 gradi non è in tolleranza con il datasheet.
Non so se è l'ambiente o il sensore che è così così ma constato che di sicuro misurare la temperatura con uno scarto di 0,5 gradi è abbastanza un'impresa (cosa peraltro già sospettata).
ho poi preso una basetta ed ho tentato un cablaggio allo "schema 8"...ragazzi  =(... diremo che è meglio che domani riprovo misurando bene anche le resistenze perchè non torna nulla...
...dallas forever...

Ho letto i post recenti, quelli di Graziano incluso.

Graziano si pone la domanda semplice e si aspetta una risposta semplice. Rileggendo tutti i post puoi trovare una risposta complicata da estrapolare da tutti i post, mentre la risposta semplice è:

Non puoi usare nessun sensore di temperatura e aspettarti dei risultati perfetti se non hai la competenza per realizzare il circuito e il software.

Da questa risposta può sembrare qualcosa del tipo; tu non hai le competenze io si, ma non deve essere intrpretata così.

La prima volta che ho connesso un sensore NTC avevo anche io una lettura ballerina, uno dei motivi di tale lettura è legata all'instabilità della tensione di 5V fornita dal pc tramite USB. Ora ha distanza di tempo e di esperienza e competenza acquisita i miei 6 sensori NTC da 10k mostrano valori stabili di temperatura, con solo una media di 6 lettura dall'ADC. I valori sono inchiodati anche per ore, specie per il sensore immerso nell'acqua. Non sto lavorando con la board arduino ma con un 328 alimentato a 3.3v montato su breadb, ma con arduino il funzionamento sarebbe lo stesso.

Prima di ottenere questi risultati ne è passato di tempo, tuttavia c'è ancora un errore se il valore viene confrontato con il sensore se95 i2c da 13 bit, la lettura di quest'ultimo è ancora ballerina ma le cose cambiano appena il sensore viene messo in acqua, il motivo è che la costante di tempo si allunga rendendo meno repentine le variazioni di temperatura rilevate dal sensore. Un oggetto di massa limitata viene influenzato più rapidamente dalla temperatura che lo circonda, in tal caso possiamo anche dire che la costante di tempo è inferiore a 1 secondo e quindi è normale leggere un valore ballerino. La discrepanza tra lettura se95 e NTC è dovuto al fatto che arduino ha un convertitore da 10 bit mentre il se95 è da 13 bit, inoltre per NTC uso una lookup table con la conseguenza che il valore può passare da 14.41 a 14.52 e valori intemedi non li posso apprezzare.

Noi qui ci stiamo accrescendo le nostre competenze, e un nuovo utente che vuole seguirci deve avere questo come obbiettivo principale, se per te Graziano questo è il tuo obbiettivo, sei il benvenuto, diversamente devi cercare una soluzione al tuo problema diversa da questa principalmente perchè non abbiamo certezza circa il risultato.

Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Michele Menniti

Mauro ha espresso in termini più ampi il mio pensiero, credo che Graziano abbia già capito, visto che ha intenzione di accodarsi alle prove;
@qs (ormai siamo amici, uso un diminutivo :)): io faccio questioni sulle variabili quanto tenti di infilarle nelle prove di Alberto (che intanto è sparito di nuovo ]:D), ovviamente ben vengano se le prove le fai tu, ma la ricerca (ed in questo, permettimi, penso di avere un tantino di esperienza in più, almeno così mi pare di capire), usando il termine in modo ampio, non si fa così, e la prova è che alla fine di una giornata di test ne sai meno di prima e ti sei riempito di dubbi anche tu. Infatti è caduto anche il baluardo dei 36,6°C di temperatura corporea, sul quale ti dicevo di non contare troppo ;)
L'LM35 ha una sua precisione ed anche una sua tolleranza, che ovviamente non è ai livelli riscontrati da te; nello specifico c'è un fattore di cui stiamo parlando ma che per ora stiamo trascurando, e sul quale Mauro sta facendo "santo" casino (perché ha ragione): l'alimentazione. Noi facciamo tutti i calcoli basandoci su 5V, quindi per noi ogni passo dell'ADC vale circa 0,004883V; di recente abbiamo scoperto che Alberto (ma serviva la prova su Arduino che non ha fatto) sembra stia lavorando con 4,45V, il che significa che il passo vale 0,004346V circa, una bella differenza. La situazione ideale, visto che iul nostro fondo scala è di 40°C, quindi al massimo 550-600mV, è quella di impostare l'ARef su internal, avendo circa 1,1V, ma a quel punto bisogna mettere un bel C da 100nF su quel pin e misurare come si deve quel riferimento, perché vi assicuro che non è così preciso come si dice; allora da lì bisognerebbe ripetere le misure. Ora il mio problema è: se per fare 6-7 misure dando per scontati (e per errore) 5V di alimentazione, ci sono volute tutte le vacanze di Natale ed anche più, siamo disposti a tirarla fino a Pasqua, ricominciando daccapo? Personalmente no, anche perché io a giorni ricomincio le lezioni e un paio di Consulenze e non avrò nemmeno il tempo per fare le mie cose, che sono tante.
Allora ho deciso di assumere che i 5V siano buoni e stabili (anche perché l'origine è sempre la stessa: un porta USB di un notebook), e di arrivare ad avere altri due riferimenti, che sono più o meno gli estremi della nostra scala, facendo proprio le prove che consigli tu. A quel punto avremo un quadro chiaro relativo; basterà poi rilevare la VERA tensione di alimentazione e rifare i calcoli e da lì uscirà il verdetto, se sarà positivo si passa all'internal (con relativa misura) e per Alberto siamo a posto; se sarà negativo dovremo capire se non va il metodo o se non vanno le prove e gli strumenti di Alberto, ma prima aspettiamo di arrivare alla fine. Ciò che sto sostenendo io è che ogni prova aggiuntiva che gli si vuole far eseguire eleva al quadrato ogni problematica, e visti i tempi non se ne esce più, quindi abbiate pietà e non insistete oltre :smiley-sweat: invece fate da soli tutte le prove che volete.
@ Mauro: i tuoi studi sono ormai a livello scientifico su questa materia, per cui tu stai ricercando la precisione del centesimo (se non del millesimo) di °C, chiaro che siamo su livelli assolutamente diversi; qui lo scopo è avere un'indicazione di massima della temperatura ambiente fuori casa, il range di 45°C (-5 / +40) è abbastanza ristretto e la precisione richiesta è abbastanza poca da non dover richiedere pesanti interventi sulle curve di linearità. Tempo fa (una cosa che dovrò riprendere) feci delle prove con degli NTC, trovai un programma di un tizio che si era ricostruito tutte le curve sulla base del data-sheet; avendo proprio quell'NTC lo testai e mi diede grandi soddisfazioni, ma il mio scopo era far lavorare questo NTC NON da 0 a 1000°C ma da 10 a 35, e lì c'era una bella linea dritta che mi rassicurava sui risultati. Quindi alla fine bisogna sempre operare in base al risultato, ma ciò non leva nulla al valore del tuo lavoro, sia ben chiaro!
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

qsecofr

[quote author=Michele Menniti link=topic=137489.msg1055029#msg1055029 date=1357203454
@qs (ormai siamo amici, uso un diminutivo :)): io faccio questioni sulle variabili quanto tenti di infilarle e la prova è che alla fine di una giornata di test ne sai meno di prima e ti sei riempito di dubbi anche tu. Infatti è caduto anche il baluardo dei 36,6°C di temperatura corporea, sul quale ti dicevo di non contare troppo ;)
L'LM35 ha una sua precisione ed anche una sua tolleranza, che ovviamente non è ai livelli riscontrati da te; nello specifico c'è un fattore di cui stiamo parlando ma che per ora stiamo trascurando, e sul quale Mauro sta facendo "santo" casino (perché ha ragione): l'alimentazione. Noi facciamo tutti i calcoli basandoci su 5V, quindi per noi ogni passo dell'ADC vale circa 0,004883V; [/quote]

non volevo tediarvi con info inutili ma ho settato l'internal reference a 2.56V .. soprattutto mi sono assicurato con tester di nota marca tettesca che il piedino dell'lm producesse la tensione che l'arduino traduceva (correttamente) e che la tensione di alimentazione fosse effettivamente a 5v (4,98 per la precisione).
Non ci ho dedicato una giornata... i 36 gradi corporei sono garantiti dalla misurazione con gli altri due termometri (36.1 e 36.2)...ho misurato 35.5 ma anche il tester gli dava ragione... è 0,6 gradi non è tanto non è poco ma possiamo sicuramente dire che il mio lm per qualche motivo sbagliava di 0,6 gradi: il mio corpo era a 36.1 gradi questo è certo. il mio intervento era per dire che comunque un mezzo grado di differenza sulla misurazione è un attimo sballarlo: basta un'alitata, una porta aperta, un maglione, l'acqua stratificata...


Michele Menniti

Ma era quello che intendevo dire io, nei primi post tu parlavi di un valore assoluto che alla fine non sei riuscito a leggere, comunque che Arduino stai usando? Un'altra curiosità: per quanto ne so l'ARef può lavorare con una tensione esterna tra 0,5 (mi pare) e 5V, o con la tensione di alimentazione di default, o con un riferimento interno di 1,1V, tu parli di un riferimento interno di 2,56V, come lo hai ottenuto?
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

Graziano

#146
Jan 03, 2013, 10:42 am Last Edit: Jan 03, 2013, 10:44 am by Graziano Reason: 1
Salve a tutti
Ho letto tutti i post e ho capito che prima di tutto il mio sensore è differente, infatti il mio è LM35DT

http://pdf1.alldatasheet.com/datasheet-pdf/view/8876/NSC/LM35DT.html

E' più o meno simile, ma lo schema per remotizzarlo (la famosa figura 8 ) da quanto ho capito (correggetemi se sbaglio)riduce il range di rilevazione da (-55 a + 150) a (-5 + 40) il che riduce notevolmente il campo, tra l'altro ho letto in questo post (e credo che nessuno l'abbia smentito) che dato che arduino non ha tensioni negative il sensore non potrà comunque rilevare temperature sottozero è corretto ?

Michele Menniti

E' corretto se lo alimenti normalmente (5v e GND); nel caso dello schema che stiamo applicando l'interpretazione a quanto scritto nel documento è che la lettura minima che ci si aspetta è 100mV, che coincidono con -5°C, a motivo che cambia il riferimento a massa in virtù dei partitori usati in quello schema; quindi se a te va bene il range -5/+40 puoi procedere con le prove, anche se non so se i valori in uscita coincidono con il modello che sta usando Alberto; devi verificarlo confrontando i data-sheet
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

Graziano

Io ora ho provato in condizione normale (5v e GND) ed effettivamente non scende sotto 0°.

Tutti gli lm 35 con la D finale non sono in grado di misurare temperature sotto 0 °C e non superiori a 100 °C, così dice il datasheet suggerito da Graziano, che poi è lo stesso degli altri che abbiamo visionato, ma questo è l'originale National, prima che diventasse Texas. Devo dire che l'acquisizione di National da parte di Texas mi è sfuggita e nulla so, tanto che non so se si tratta veramente di una acquisizione.

Graziano il tuo lm35DT dovrebbe essere allora in contitore TO220, cioè lo stesso contenitore usato per i classici 7805, confermi?

Il fatto che nel datasheet viene dato il range di temperature per ogni versione non significa che non possa del tutto misurare
temperature negative, ma invece potrebbe dire che il DT non rileva temperature con precisione o linearità nel range 0 to 100.

Quote

Ma era quello che intendevo dire io, nei primi post tu parlavi di un valore assoluto che alla fine non sei riuscito a leggere, comunque che Arduino stai usando? Un'altra curiosità: per quanto ne so l'ARef può lavorare con una tensione esterna tra 0,5 (mi pare) e 5V, o con la tensione di alimentazione di default, o con un riferimento interno di 1,1V, tu parli di un riferimento interno di 2,56V, come lo hai ottenuto?


La UNO/2009 hanno solo il riferimento a 1.1, mentre la mega ce lo ha anche a 2.56, come pure il 644 e 1284, forse qsecofr usa la MEGA.

Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Go Up