Digitalni merač – regulator temperature do 1000°C

Revizija: 1.0
Datum: 20.09.2005. Ovaj projekat je objavljen u 66. broju časopisa InfoElektronika

UREĐAJ JE NAMENJEN ZA MERENJE I REGULACIJU TEMPERATURA I DO 1000°C. KAO SENZOR UPOTREBLJAVA SE TERMOPAR K TIPA, A NA IZLAZU SE NALAZI RELEJ KOJI RADI U ON/OFF REŽIMU…

Obično smo navikli da pišemo o široko-rasprostranjenim silicijumskim davačima temperature. Međutim činjenica je da su ovi senzori nemoćni za potrebe merenja temperatura iznad 150 °C, što je čest slučaj u praksi. Hajde da vidimo jedan od načina za rešavanje ovog problema….. MAX6675.

Karakteristike uređaja:

Napajanje: 12V AC/DC (50mA)
Temperaturna sonda: Termopar K-tipa (Hromel-Alumel)
Opseg merenja temperatura: 0 – 999°C
Prikaz: trocifarski LED displej
Podešavanje: pomoću dva tastera (MENI, SET), mogu se podešavati temperatura (1 – 999°C) i histerezis preklapanja izlaznog releja (1-20°C), a podešeni parametri ostaju sačuvani u internoj EEPROM memoriji i nakon nestanka napona napajanja.

Industrijske potrebe za merenjem temperature idu i do 2000°C. Međutim poluprovodnički senzori temperature imaju barijeru da mere temperature do maksimalnih vrednosti od 150°C. Izuzetak čini jedino KTY84 za koga proizvođač, Philips, tvrdi da može meriti i do 300°C. Praksa je pokazala da se za potrebe merenja mnogo većih temperatura najčešće koriste već dobro provereni metodi sa termoparovima. Termopar je prilično jednostavne konstrukcije, sastoji se od spoja dva različita provodnika (npr: za K tip, negativna elektroda je Alumel, a pozitivna Hromel). Osnovni problem na koji nailazimo pri konkretnoj primeni termopara je njegov jako mali izlazni napon reda 40μV/°C. Kako savremeni trendovi projektovanja uglavnom podrazumevaju upotrebu mikrokontrolera, osvrtom na današnju ponudu uglavnom srećemo integrisane (u sam mikrokontroler) AD konvertore maksimalne rezolucije od 12bita. Čak štaviše najpristupačniji mikrokontroleri imaju uglavnom 10bitne AD konvertore, što ni u kom slučaju nije dovoljno za opsluživanje merenja ovog senzorskog elementa. Jedan od načina koji se često sreće je upotreba operacionih pojačavača kojima se napon sa izlaza termopara izdiže na neku merljivu vrednost (obično 100 puta) i tako prilagođen vodi na AD konvertor. Ovim se obično sužava merni opseg. Drugi takođe bitan problem pri upotrebi termoparova je kompenzacija temperature hladnog kraja. Naime, pod hladnim krajem podrazumeva se temperatura okoline na priključku termopar kabla i mernog uređaja, i naročito dolazi do izražaja na nižim temperaturama merenja. Rešenje se ogleda u dodatnom merenju temperature okoline u samom uređaju i zatim kompenzacije sa temperaturom koju merimo na termoparu. Svi ovi problemi rešeni su u jednom čipu proizvođača Maxim, MAX6675 koji čije su najbitnije karakteristike:

  • ugrađen 12bitni AD konvertor koji omogućava merenje temperature 0-1024°C, sa rezolucijom od 0.25°C
  • interna kompenzacija temperature hladnog kraja
  • digitalni SPI (serijski) interfejs za priključenje na mikrokontroler
  • detekcija prekida termopara
  • 8 pina SMD kućište
  • 5V napon napajanja

Korišćenjem ovog čipa, projektantu preostaje jedino da u firmveru mikrokontrolera napiše rutine za komunikaciju sa ovim čipom i da opsluži izlazno/ulazne uređaje, kao što su interakcija sa korisnikom i prikaz temperature, i konačno da kontroliše izlazni član za eventualnu regulaciju temperature. U trenutku pisanja ovog članka cena MAX6675 čipa iznosila je oko 10 Eura na komad.


Električna šema uređaja

Hardver:

Obzirom da sam MAX6675 odrađuje većinu zadatka, za potrebe ovog uređaja, mogli smo da odaberemo i neki od jednostavnijih (jeftinijih) mikrokontrolera. Odlučeno je da to bude PIC16F628A mikrokontroler. Njega karakteriše niska cena i to da se lako može nabaviti. Poseduje 2 kworda (2048 x 14bita) FLASH programske memorije, 224 bajta memorije za podatke, i 128 bajta EEPROM memorije. Od dodatnih osobina poseduje interni RC oscilator na 4Mhz, i 16 I/O pinova. Pa je iz tog razloga iz uređaja izostavljen kvarc oscilator na koga smo obično navikli u mikrokontrolerskim sklopovima. Sam mikrokontroler smešten je u 18 pinsko kućište. Zahvaljujući ovim karakteristikama jednostavnost uređaja je na zavidnom nivou, pa je od eksternih komponenti upotrebljeno još par kondenzatora, otpornika, tastera, kao i trocifreni multipleksirani LED displej. Za kontrolu grejača namenjen je RELE. Šemu veza kompletnog uređaja možete videti na slici 1, dok je jednostrana štampana pločica namenjena ovom uređaju data na slici 2. Posebnu pažnju treba obratiti na to da se LED displej i tasteri na štampanoj pločici montiraju sa strane štampanih veza, radi lakše ugradnje u kutiju. Tasteri koje koristimo su TS1 i TS3, dok je TS2 ostavljen za buduće implementacije dodatnih opcija, pa ga u ovom trenutku možete izostaviti. Ukoliko imate problema da pronađete specifični trosegmentni LED displej LEDBRIGHT BT-N406RI, njega možete zameniti i sa tri standardna, tako što ih povežete kao na slici 3.


Slika 2 – Izgled štampane pločice (PCB download)

Softver:

Ovde ćemo prikazati samo deo programa namenjen SPI komunikaciji sa MAX6675 čipom. Rutina za SPI komunikaciju pisana je na standardni način i ne koristi hardverski ugrađene SPI periferije pa se samim tim može upotrebiti na bilo kom mikrokontroleru uz neznatne prepravke. Procedura read_MAX6675(); vraća izmerenu temperaturu u formatu xxxxyy gde je xxxx celobrojna vrednost temperature, a yy decimalni deo. Jednostavno rečeno da bi prikazali na displeju samo celobrojnu vrednost, potrebno je da dobijenu vrednost podelimo sa 100, i time smo „odsekli” decimalni deo. Obratite pažnju da su SPI_DAT, SPI_CS, SPI_CLOCK u stvari I/O pinovi na koje je povezan MAX6675, i njih ćete definisati u zavisnosti od kompajlera koga koristite.

unsigned long read_MAX6675() // Procedura za SPI komunikaciju sa MAX6675 cipom
{
unsigned int sekvenca, bits;
unsigned char k; SPI_CS = 0; // SPI bus is ON
bits = 32768;
sekvenca = 0;
for(k=0; k<=15; k++) // petlja
{
if(SPI_DATA) sekvenca+=bits; //
bits >>= 1; // SPI Clock signal
SPI_CLOCK = 1;
SPI_CLOCK = 0;
}
SPI_CS = 1; // SPI bus is OFF
  // provera otvorenog kola TERMOPARA 
if(sekvenca & 0b100)
{
return(0xFFFFFFFF); // vrati MAX vrednost ako je otvoreno  kolo
}
else
{
return((sekvenca >> 3) * 25); // vracamo izmerenu  temperaturu u formatu
}         // 123456, gde su 56 decimalne   cifre
}

Izgled kodne sekvence koje MAX6675 šalje mikrokontroleru dat je na slici 4, i njen sadržaj smešten je u promenljivu sekvenca. Za više informacija o ovom čipu i njegovom radu možete saznati na sajtu proizvođača na adresi http://www.maxim-ic.com


Slika 4 – Kodna sekvenca na izlazu MAX6675 čipa

Ukoliko ste zainteresovani za kompletan kod, HEX fajl ili isprogramirani mikrokontroler, možete se javiti na email .

Podešavanje i prikaz uređaja:

Kako je uređaj namenjen i regulaciji temperature, potrebno je vršiti podešavanje zadate temperature i histerezisa. Ovo je moguće upotrebom samo dva tastera i to na sledeći način: pri startu uređaj će prikazivati merenu temperaturu i pritom blinka treća tačka na LED displeju. Ukoliko sada pritisnemo TS1 (MENI taster) ulazimo u meni za podešavanje temperature. To indiciraju i sve tri upaljene tačkice na LED displeju. Podešavanje ovog parametra vršimo tasterom TS3 (SET taster), kratkim pritiskom uvećavamo za jedan, dok dužim držanjem ubrzavamo korak uvećanja radi lakšeg podešavanja celog opsega 10 – 999°C. Ponovnim pritiskom na taster TS1, prelazimo u meni za podešavanje histerezisa (1 – 20°). Isto kao i u prethodnom meniju pritiskom na taster TS3 povećavamo parametar za jedan. Ukoliko smo zadovoljni podešavanjem, i tasteri budu neaktivni duže od 10 sekundi, na uređaju će se vratiti osnovni prikaz merene temperature. Slikovit prikaz menija i funkcije tastera možet evideti na slici 5.

Napomena: Ukoliko su pri osnovnom prikazu merene temperature na displeju prikazane tri crtice, to znači da je termopar u prekidu ili da je temperatura prekoračila 999°C, i tada je relej na izlazu u isključenom stanju.


Slika 5 – Grafički prikaz menija za podešavanje uređaja

Zaključak:

Ovim uređajem smo hteli da prikažemo jednostavnost izrade jednog ozbiljnog regulatora temperature primenom MAX6675 čipa, uz relativno malo potrebih komponenti. Sam uređaj ima još prostora za doradu i proširenje funkcija, a za neke od njih uplanirano je prostora već pri projektovanju trenutno prikazanog hardvera. Takođe, sam kapacitet kodne memorije mikrokontrolera nije popunjen i to omogućava implementaciju dodatnih algoritama održavanja temperature, kao i evetualna poboljšanja u vidu dodatka tajmera rada grejača i slično. Ali, to ostavljamo za neku narednu priliku…..

Ukoliko ima nekih nejasnoca javite se na: npejcic@epraktikum.iz.rs

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

86 − = 83

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>