Un senzor cu ieşire neliniară nu este dificil de utilizat, dacă este necesară acoperirea doar a unei mici părţi din domeniul de ieşire. În aceste cazuri, este posibilă implementarea pe un microcontroler sau microprocesor a unor algoritmi simpli de liniarizare pe porţiuni. Dacă este necesară o zonă mai largă a domeniului de ieşire, pot fi utilizate circuite analogice de liniarizare. De exemplu, o rezistenţă în serie sau paralel cu un termistor (neliniar) va conduce la liniarizarea unei porţiuni din ieşire. Cu un termistor, porţiunea liniarizată este uzual de ±25OC (precizie 10-biţi) în jurul unui punct central proiectat în circuit. Acest punct al răspunsului termistorului, poate fi reglat prin schimbarea valorii rezistenţei adăugate. Aceste tehnici de circuit pot ajuta proiectanţii să utilizeze un domeniu mai larg (dar nu complet) din ieşirea senzorului.
Tehnicile hardware, printre care şi cele de mai sus, sunt suficiente pentru numeroase aplicaţii, dar dacă cerinţele de proiectare impun utilizarea unei zone mai largi din domeniul de ieşire, se pot obţine rezultate foarte bune prin utilizarea de tehnici de programare cu microcontroler şi PGA (programmable gain amplifier).
Termenul “termistor” provine din combinaţia cuvintelor TERMic RezISTOR. Există două tipuri: coeficient negativ de temperatură (NTC) şi coeficient pozitiv de temperatură (PTC). Tipurile NTC sunt cele mai potrivite pentru măsurări precise de temperatură, în timp ce componentele PTC sunt utilizate în aplicaţii de comutaţie. Articolul de faţă va aborda o aplicaţie NTC.
Termistorii NTC sunt utilizaţi în trei moduri diferite, care apelează caracteristicile rezistenţă-temperatură, tensiune-curent, sau curent/timp ale dispozitivului.
Majoritatea aplicaţiilor utilizează primul dintre moduri. Spre deosebire de celelalte două moduri, aceste circuite rezistenţă-temperatură depind de o condiţie de operare de “putere-zero”. Aceasta implică existenţa unei autoîncălziri minime a termistorului. Figura 1 prezintă răspunsul rezistenţă-temperatură al unui termistor NTC de 10kW. Uzual 25°C pentru un termistor individual este în plaja de la 1kW până la 10MW.
Un termistor este un element rezistiv, astfel încât este necesar un curent de excitaţie, fie de la o tensiune de referinţă, fie de la un curent de referinţă. Performanţele termistorului din Figura 1 sunt repetabile atâta vreme cât puterea prin dispozitiv este păstrată sub capacitatea de disipare de putere a capsulei. Dacă regula este încălcată, termistorul se va autoîncălzi, scăzând artificial valoarea rezistenţei, oferind valori eronate ale temperaturii. Figura prezintă înaltul grad de neliniaritate al termistorului, care poate fi corectat prin utilizarea unui tabel de căutare gestionat de un microcontroler. Acest lucru va necesita un convertor de înaltă rezoluţie. Alternativ, pot fi aplicate tehnici de liniarizare hardware înaintea digitizării.
O tehnică foarte simplă, dar eficientă de liniarizare este utilizarea unei rezistenţe în serie cu termistorul şi sursa de tensiune, după cum se poate observa în Figura 2. Circuitul prezintă o cale directă de a excita termistorul cu o sursă de curent şi de a măsura variaţia rezistenţei.
Această metodă de excitare asigură o valoare a curentului pe termistor suficient de joasă pentru a preveni depăşirea constantei de disipare pe termistor şi afectarea preciziei sistemului. Dacă PGA este reglat la o amplificare de +1V/V sau este înlocuit de un amplificator buffer, acest circuit poate fi utilizat pentru a detecta un domeniu limitat de temperatură (aproximativ ±25OC). Domeniul nu este restricţionat de amplificator, ci de liniaritatea divizorului de tensiune format de combinaţia dintre termistor şi RA. Măsurarea de temperatură pe domenii mai mari impune diferenţe de tensiune prea mici pentru convertirea digitală precisă, ducând la necesitatea utilizării unor convertoare A/D de mai mare rezoluţie.
Ca exemplu, domeniul de temperatură al unui termistor tipic de la BCcomponents este de la -40°C la +125°C. În Figura 3 se poate observa că diferenţa de rezistenţă pentru o variaţie de temperatură de 10°C la o temperatură înaltă este semnificativ mai mare decât pentru o variaţie de 10°C la o temperatură joasă. Această variaţie în raportul rezistenţă-temperatură pe domeniul de lucru al termistorului creează o problemă analogică dificilă.
Este clar că, în acest exemplu, conversia A/D pe 10 biţi este ineficientă pe domeniul complet de temperatură.
Se poate creşte rezoluţia convertorului A/D sau se pot comuta câteva rezistenţe (RA) în circuit, dar ambele opţiuni adaugă costuri şi complexitate. O a treia opţiune este păstrarea componentelor aşa cum sunt prezentate în Figura 2 şi utilizarea programabilităţii câştigului în PGA.
O atentă observare a răspunsului termic din Figura 3, arată că granularitatea se pierde la temperaturi mari. Dacă câştigul PGA este crescut la temperaturi mari, semnalul de ieşire din PGA va fi readus în domeniul în care convertorul A/D poate identifica cu siguranţă temperatura.
Această abordare utilizează schimbări la nivel de cod al microcontrolerului, şi nu la nivel hardware. Astfel reglajele din circuit implică numai timpul de programare. Figura 5 prezintă schema logică a algoritmului microcontrolerului. Firmware-ul PIC16F684 realizează eşantionare în timp real. Firmware-ul citeşte valoarea dată de convertorul A/D şi o trece către rutina de histerezis a PGA, care verifică parametrii câştigului PGA. Bazat pe acesta din urmă, microcontrolerul testează punctele de trecere (vedeţi Figura 4) cu ajutorul valorii convertorului A/D. Dacă această valoare este sub valoarea unui punct de trecere, microcontrolerul reglează câştigul PGA la următoarea valoare mai mare sau mai mică. Apoi firmware-ul verifică dacă a fost modificat câştigul PGA. Dacă nu s-a produs nici o modificare, programul continuă. Dacă a apărut o modificare, firmware-ul reciteşte valoarea convertorului A/D.
Când sunt cunoscute câştigul PGA şi valorile convertorului A/D, ambele sunt trecute rutinei de interpolare liniară pe porţiuni (PwLI). Microcontrolerul stabileşte legătura cu tabelul de căutare potrivit pentru câştigul PGA. Rutina PwLI converteşte valoarea convertorului A/D pe 10-biţi într-o valoare fixă pe 16-biţi reprezentând grade Celsius. Formatul cu punct zecimal permite raportarea valorii temperaturii în zecimi de grad. Figura 6 prezintă precizia acestui sistem.
Realizând interpolarea liniară pe porţiuni în zecimi de grad se oferă o mai bună rezoluţie. În cadrul designului final, proiectantul poate alege raportarea în zecimi de grad sau valori întregi. Obţinerea de date sigure de la senzori neliniari a fost întotdeauna o provocare pentru inginerii proiectanţi. Liniarizarea poate fi o sarcină relativ simplă dacă nu este necesară pe întreg domeniul de lucru al senzorului. Combinaţia dintre un microcontroler şi un PGA poate gestiona neliniaritatea termistorului pe o gamă largă de temperatură. Această tehnică operează bine cu termistori, dar poate fi utilizată cu oricare alţi senzori cu comportare neliniară.
de Bonnie C. Baker, Microchip Technology, Inc.
Bibliografie:
“Thermistor temperature sensing with MCP6SX2 PGAs”, Blake, Bible, AN897, Microchip Technology Inc., DS00897, 2004
“2322 640 5… : NTC thermistors, accuracy line,” Product Data Sheet, BC Components, September 27, 2001 (www.bccomponents.com).
“Introduction to NTCs: NTC thermistors,” Data Sheet, BC Components, March 27, 2001 (www.bccomponents.com).
“Thermistors in single-supply temperature sensing circuits,” Bonnie C. Baker, AN685, Microchip Technology Inc., DS00685, 1999.
“Temperature sensing with a programmable gain amplifier,” Bonnie C. Baker, AN867, Microchip Technology Inc., DS00867, 2003.
“Piecewise linear interpolation on PIC12/14/16 Series microcontrollers,”John Day and Steven Bible, AN942, Microchip Technology Inc., 2004.