Sari la conținut
ELFORUM - Forumul electronistilor

Citire temperatura cu "sensor de temperatura"


Vizitator

Postări Recomandate

Aceasta intrebare de fapt nu e stric legat de arduino. Totusi, o sa pastrez tema.

 

Doresc sa citesc temperatura cu ajutorul unui senzor de temperatura. Plaja de citire ce ma intereseaza este 20-280°C, dar ca punct de referinta este Max 280°C. Cu siguranta nu voi putea folosi cunoscutul LM35 in aceasta situatie, si nici nu doresc sa folosesc o sonda K. Pana acum am citit temperaturi cu NTC sau sonda K. Dar..

 

Am ales sensorul PT106053 ceramic, care are totusi urmatoarele specificatii:

Tip: senzor de temperaturăRezistenţă: 1kΩ Toleranţă cl.B 0,2% Dimensiuni exterioare: Ø3 x 6mm Coeficient de temperatură 3.85nppm/°C Temperatura de lucru -50...500°C

Cam asta este tot despre el. Am facut niste masuratori la ~25°C si am 1,100kΩ; creste rezistenta la cald.

Intrebare. Care este demersul in cazul unui senzor, cum si ce trebuie calculat sa pot folosi acest senzor folosind datele tehnice sau nu neaparat.

 

Nota: probabil e nevoie si de LM324N ..?

 

Sa presupunem totusi ca vrem sa limitam intervalul citit de 100-280°C. In asa caz cum procedez fara AO?

Editat de Vizitator
Link spre comentariu
  • Răspunsuri 22
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • UDAR

    4

  • ventzel

    4

  • godFather89

    3

  • XAN77

    2

Top autori în acest subiect

Se folosește în principiu similar cu un termistor. Injectezi un curent constant prin el suficient de mic încât să-l încălzească neglijabil și citești tensiunea la borne - cu sau fără operațional , în funcție de ce-ți iese,  respectiv ce gamă vrei să folosești penttru ADC. Pentru conversia tensiune astfel obținută - temperatură ai mai multe soluții :

- să calculezi simplu cu coeficientul mediu dat , presupunând o variație liniară

- să implementezi un polinom de gradul doi sau trei cu coeficienții din DS

- să creezi un ”look-up-table” cu valorile din DS

Link spre comentariu

Depinde ce precizie vrei si daca ai timp de probe si cu ce-l etalona , neavand macar o foaie de catalog  . Variatia 3,85 nppm/grad ca la orice senzor de genul asta nu e ceva constant in toata gama , mai trebuie si alte corectii

Operational nu trebuie daca alegi corespunzator sursa de curent sau rezistenta inseriata cu el , pentru ca nu e sursa de tensiune care trebuie amplificata ca la un termocuplu

Editat de Depanatoru
Link spre comentariu

ok, ne-am lamurit pana acum din punct de vedere electronic.

intrebarea era mai mult pe latura programarii..la nivel de "laborator"

adica, ce ati face voi daca ati vrea sa folositi acest senzor.

 

Exemplu:

 

  as masura la 25 de grade rezistenta, la 50, si 100.

  as calculat asa, sau bla bla.

 

 

pana una alta nu am gasit niciodata termistori mai mult de 125 grrade.

daca cei recomandati merg, m-as bucura. nu am lucrat niciodata la temperaturi mai joase de 200 , si ma dispera pretul sondelor K

Editat de Vizitator
Link spre comentariu

In primul rand trebuie sa decizi ce ai nevoie: ce precizie, pe ce domeniu de temperatura, pe tot domeniul, doar intre 100-150C sa fie precizia maxima, etc.

Dupa ce ai stabilit asta trebuie sa stabilesti schema: cu o rezistenta simpla (ce valoare?), cu o sursa de curent, cu op-amp, ce ADC, ce erori sunt tolerate, etc.

Pe urma se discuta si softul (eventual se ajusteaza si schema daca mai e nevoie): ce compensari sunt necesare, ce viteza de conversie, etc.

 

Evident ca daca nu te intereseaza precizie si vrei doar sa afisezi o temperatura (asa in mare) atunci poti folosi parametrii standard (Pt1000) pt ecuatie (Callendar-Van Dusen) si obtii temperatura din rezistenta.

 

http://en.wikipedia.org/wiki/Resistance_thermometer

http://en.wikipedia.org/wiki/Callendar%E2%80%93Van_Dusen_equation

Editat de godFather89
Link spre comentariu

Deci avem valori tipice pt1000:

150C: 1573 ohmi

200C: 1758 ohmi

 

Daca faci cu divizor rezistiv  R = 1600 ohmi, Vadc = 5V

150C -> 2.479V

200C -> 2.618V

 

Diferenta de 139mV pentru 50 C (aprox 2.78 mV/C). Daca ADC-ul e pe 12 biti, avem LSB = 5V / 4096 = 1.22 mV. Suficient pentru 1C.

 

Daca faci un singur montaj:

Trebuie masurata valoarea la 150C si la 200C (pe intervalul acela va fi suficient de liniara caracterstica rezistenta/temperatura pentru valori exacte).

Trebuie filtrare buna la alimentare (separat analogica), rezistenta de precizie buna (sau masurata pentru o precizie cat mai buna), mai multe masurari + mediere.

Link spre comentariu

sunt așa scumpe sondele K de nu vrei să folosești una?

Recuperezi una dintr-un letcon de 25 de lei eventual. Aia sigur merge la 300 grade și un LM358 e de ajuns.

 

Letcon ? Poate o statie de lipit...letconul nu are nici o sonda, e legat direct.

Oricum nu prea ajunge o statie de lipit la vechituri. Doar pentru ca e pe fix mana unui electronist. Parerea mea.

Si daca te refereai prin cutia cu maimute a mea, nu am asa ceva, am doar una...cu care lucrez..

 

Am testat varianta asta pana acum cu  cu un LMC6482 configurat asa:

 

 

sau cu varianta cu R2 = 100K

sau R2 = 9k

 

in ambele variante ADC mi-a citit doar aiureli..la 23C aveam 2 / 1023. sau 0 / 1023

 

In plus, termocupla K nu este lineara, si nu am gasit inca un exemplu (in arduino) ceva sa ma lamuresc cum trebuie facut..

Am folosit pana acum pe valoarea ADC pur si simplu, sau mapate 2 valori , pentru ca am nevoie decat de un anume prag, dar asta nu este prea ok.

Editat de Vizitator
Link spre comentariu

Nu ai ținut cont de offset și de tensiunea de ieșire nenulă a amplificatorului. Normal , la o astfel de schemă se adaugă un offset pozitiv ( dacă offsetul AO este negativ , dar se poate adăuga pentru orice eventualitate ) care se compensează apoi din soft .

Amplificarea trebuie , evident , să fie destul de mare încât la 1°C de exemplu să avem o variație de minim 1 LSB la intrarea ADC . Exemplu Vcc = 5V , 10 biți deci 1LSB = 5mV ; termocuplu K cu 41µV / °C rezultă amplificare de minim 125 deci în niciun caz 9kΩ pentru R2.

 

Și încă ceva ADC-urile ( sunt sigur că și cele de la Atmel ) au și ele un offset care poate fi de 2-3 LSB . Dacă aceasta este pozitiv se poate compensa software , dacă este negativ - nu .  Unele ADC-uri sunt făcute să nu aibă offset negativ - cu prețul unui offset pozitiv mai mare , PIC16F886 de exemplu , cu care am acum un proiect , are offset de la 0 la 3LSB în loc de +/- 1,5LSB de plidă.

Editat de UDAR
Link spre comentariu

Nu ai ținut cont de offset și de tensiunea de ieșire nenulă a amplificatorului. Normal , la o astfel de schemă se adaugă un offset pozitiv ( dacă offsetul AO este negativ , dar se poate adăuga pentru orice eventualitate ) care se compensează apoi din soft . 

 

Vrei te rog sa dezvolti ? E vorba de hardware ? de soft ? Daca te referi la OP unde sa-i fac offset ?

 

 

 

PS: poate sunt eu prea necunoscator, dar uneori chiar nu inteleg nimic...

Editat de Vizitator
Link spre comentariu

Offset-ul unui OpAmp este o eroare de simetrie a etajului de intrare care se traduce în schema echivalentă cu o tensiune de la fracțiuni de mV ( sau chiar mai puțin la OpAmp de precizie )  la zeci de mV. Aceasta face ca , deși avem zero la intrare ( legată la masă ) să avem la ieșire o tensiunea care reprezintă offset-ul * amplificarea .

În cazul schemei pe care ai postat-o amplificarea este 331 . La un offset chiar foarte bun cum are LMC6482 , de 0,1mV putem avea la ieșire +/- 33 mV. La asta se adaugă sau se scade offset-ul ADC. Acum , problema este că la schemele cu o singură alimentare nu putem avea ieșire negativă. De aceea offset-ul negativ se traduce printr-un interval ”orb” la intrare. Pot să cresc tensiunea la intrare fără să observ creșterea ieșirii până când înving offset-ul. 

 

La schema ta , cel mai simplu adaugi un offset pozitiv punând o rezistență de , să zicem 100Ω în serie cu intrarea pozitivă și una de 1MΩ de la intrarea pozitivă la +5V . ai adăugat astfel un offset de 0,5mV . Asta la ieșire se va traduce prin 165 mV - dacă OpAmp nu are offset , în realitate va fi între 100 și 200mV , sau ceva pe-acolo. 

Se subânțelege că suntem cu intrarea în scurt . Măsori cu µC această valoare și o memorezi în EEPROM - asta va fi corecția de offset . La măsurătorile reale , scazi valoarea asta.

Mai sus am prezentat doar ideea . Desigur forma de implementare poate diferi atît hard , cât , mai ales , soft.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări