Kao što sam već pisao za KTY81 i 2,7k kao razdelnik napona ti ne treba linearizacija.
Konkretno rešenje u kombinaciji sa ICL7107 je bilo da se posebnim trimerima
podešavala nula i maksimalni otklon.
To je rađeno tako da se prvim trimerom(nula) podešavao negativni referentni napon(Vref-)
na vrednost koju bi davao KTY81 i 2,7k na 0°C a drugim trimerom bi se podešavao napon Vref+
na vrednost koju bi davao KTY81 na 100°C. S time bi pri 100°C na displeju stajalo 100.0
a pri 0°C 0.0. Time načinom je moguće meriti i temperature manje od °C.
Gore od mene naveden primer koji ja koristim sa uC ima istu mogućnost podešavanja Vref+
a nula se "podešava" perko #define NULA 296, tj. uzima se ona vrednost koju daje ADC pri °C.
Primer u C-u:
Code:
#define NULA 288
signed int read_KTY(unsigned char kanal)
{
return read_adc(kanal)-NULA;
}
Kao µC sam koristio jedan ATmega8 sa 10bit ADC a referentni napon za ADC sam podesio na vrednost
iz Excel tabele, tako da se za poromenu temperature od 0,5°C vrednost ADC-a promeni za 1LSB.
U tom slučaju bi deo programa za pokazivanje na LCD displeju izgledao ovako:
Code:
void show_KTY(unsigned char kanal)
{
signed int Temperatura;
Temperatura=read_KTY(kanal);
itoa(Temperatura/2,Buffer,10); // Prikazuje "cele" °C, zato deljenje za 2
lcd_puts(Buffer);
lcd_puts("."); // Decimalna tačka
itoa(abs(5*(Temperatura%2)),Buffer,10); // Prikazuje decimalnu vrednost
lcd_puts(Buffer); // itoa pretvara integer broj u string
lcd_puts("\xde\x43 "); Prikazuje "°C"
}
Nadam se da sam ti ovim odgovorom pomogao.
Pozdrav Branko