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...
Ovde možete pogledati GALERIJU
fotografija uređaja

Fizički izgled uređaja |
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 |
Za detalje možete kliknuti
na sliku, pri
čemu će se otvoriti PDF fajl.
|
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.
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