Membaca suhu (thermometer) dengan sensor suhu LM35
Dikalangan mahasiswa ataupun praktisi dibidang mikrokontroler sensor suhu LM 35 sangat familier karena disamping harganya yang murah juga keluaran (output) dari sensor ini yang cukup linier terhadap perubahan suhu. Sensor ini berfungsi sebagai pengubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10 mV /°C yang berarti bahwa kenaikan suhu 1° C maka akan terjadi kenaikan tegangan sebesar 10 mV. Kalau tidak salah sensor ini mampu mendeteksi suhu minus 50 drajat sampai 100 derajat celcius (keterangan lengkap silahkan lihat di datasheet).
Sensor LM35 ini dikemas dalam bentuk transistor (TO-220)
Karena keluaran sensor ini adalah tegangan maka untuk dapat membaca data dari sensor ini kita memerlukan ADC (analog to digital converter), dan kita ketahui bersama sekarang mikrokontroler sudah banyak sekali yang dilengkapi dengan ADC seperti dalam aplikasi kali ini menggunakan mikrokontroler AVR ATMega16. ADC pada mega16 ini mempunyai resolusi 10-bit, atau bisa juga dipakai cuma 8-bit atau tergantung kebutuhan dari sistem yang dibangun. Berikut adalah seting ADC 10-bit default settingan dari codevisionAVR:
#define ADC_VREF_TYPE 0x00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
Dan program utamanya adalah sebagai berikut:
while(1)
{
suhu = read_adc(7);
suhu_celcius = (float)suhu*500/1023;
sprintf(baris1,"Suhu LM 35 ");
sprintf(baris2,"Suhu= %3d ",suhu_celcius);
lcd_gotoxy(0,0);
lcd_puts(baris1);
lcd_gotoxy(0,1);
lcd_puts(baris2);
lcd_gotoxy(10,1) ;
lcd_putchar(0xdf); // untuk menampilkan karakter derajat
lcd_gotoxy(11,1) ;
lcd_putsf("C");
}
Pada program utama diatas terlihat bahwa lm53 masuk ke ADC chanel 7 pada mikrokontroler mega16, kemudian hasil pembacaan disimpan dalam variabel dengan nama suhu, tetapi suhu tersebut belum dalam satuan derajat. Kemudian untuk merubah kedalam derajat celcius digunakan persamaan (float)suhu*500/1023 dan hasilnya disimpan dalam variabel suhu_celcius. Dan setelah itu baru ditampilkan ke LCD display. rangkaian lengkap dari aplikasi diatas adalah:
Semoga bermanfaat, dan jika ada pertanyaan silahkan tinggalkan komentar atau kirimkan ke email microvision.jogja@gmail.com
2 Comments
sip mas, menarik sekali....ukuran xtalnya brp mas? tlg kl bisa kirim file ulasan lengkapnya ke: andicahyoprihantoro@gmail.com. teeerimakasiiiiihhhhh.
ReplyDeletemas bisa kirimkan contohnya menggunakan atmega8535 dan outputnya melalui LCD grafik??
ReplyDeletenizarmokodeseho@gmail.com
Silahkan Tinggalkan Komentar Anda