Termometer Digital 4 Tampilan dg ATmega16
Proyek mikrokontroler AVR yang akan kita buat kali ini adalah Digital Thermometer dengan ATmega16. Agar lebih ‘advanced’ kita buat 4 tampilan satuan suhu-nya : Celcius (C), Farrenheit (F), Kelvin (K) dan Reamur ( R) .
Sensor suhu kita pakai yang standar saja : LM35. Selain relative murah juga mudah diperoleh. Tampilannya dengan 7 segment 4 digit, sedangkan untuk memilih mode tampilan suhu-nya kita pakai 4 push button.
Komponen “Digital Thermometer AVR 4 Tampilan Satuan Suhu” yang diperlukan :
- Mikrokontroler ATmega16 : 1
- Sensor Suhu LM35 : 1
- Modul 7 segment common anoda 4 digit : 1
- Push button (push ON) : 4 digit
Buat rangkaiannya mikrokontroler, disini kita akan membuat simulasinya, jadi untuk rangkaian Termometer Digital AVR kita pakai Proteus, dengan catatan :
- Crystal memakai internal clock ( 1 Mhz)
- 7 segment modul tidak digambar driver transistornya.
Berikut ini rangkaian digital thermometer dengan tampilan C, F, K dan R :
Baik, selanjutnya kita buat program mikrokontroler untuk Digital Termometer, pakai BASCOM-AVR ya …
$regfile = "m16def.dat" $crystal = 1000000 Declare Sub Konversi(x As Word ) Dim Data_adc As Word , Suhu As Word Dim Sat As Word , Pul As Word , Rat As Word Dim K As Byte Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Portc = Output Config Portd = Output Config Portb = Input Portb = &HFF Start Adc K = 1 Do Data_adc = Getadc(0) Suhu = Data_adc * 5 Suhu = Suhu / 10 Portd = &B00001000 If K = 1 Then Portc = &B11000110 Elseif K = 2 Then Portc = &B10001110 Suhu = Suhu * 9 Suhu = Suhu / 5 Suhu = Suhu + 32 Elseif K = 3 Then Portc = &B10001010 Suhu = Suhu + 273 Elseif K = 4 Then Portc = &B10101111 Suhu = Suhu * 4 Suhu = Suhu / 5 End If Waitus 500 Konversi Suhu Portd = &B00000100 Portc = Lookup(sat , Angka) Waitus 500 Portd = &B00000010 Portc = Lookup(pul , Angka) Waitus 500 Portd = &B00000001 Portc = Lookup(rat , Angka) Waitus 500 If Pinb.0 = 0 Then K = 1 Elseif Pinb.1 = 0 Then K = 2 Elseif Pinb.2 = 0 Then K = 3 Elseif Pinb.3 = 0 Then K = 4 End If Loop End Sub Konversi(x As Word ) Rat = X Mod 1000 Rat = Rat / 100 Pul = X Mod 1000 Pul = Pul Mod 100 Pul = Pul / 10 Sat = X Mod 1000 Sat = Sat Mod 100 Sat = Sat Mod 10 End Sub Angka: Data &HC0 , &HF9 , &HA4 , &HB0 , &H99 , &H92 , &H82 , &HF8 , &H80 , &H90 , &H7F
Simpan (Save) kemudian Compile. Pastikan tidak ada error, jika program masih terdapat error silakan diperbaiki.
Ok selanjutnya untuk simulasi mikrokontroler di Proteus, klik 2x dibagian mikrokontroler ATmega16 sehingga muncul dialog box.
Klik di bagian Program File : kemudian klik “OK”. Selanjutnya untuk menjalankannya klik tombol dibagian kiri bawah.
Sekarang kita lihat hasil Termometer Digital 4 Tampilan dengan ATmega16 di simulasi Proteus.
Program awalnya membaca sensor suhu LM 35 dengan satuan Celcius (C ). untuk konversi ke satuan yang lain tinggal tekan tombolnya saja. Tombol 1 yang terhubung dengan PORTB.0 Atmega16 untuk tampilan Celcius, tombol 2 tampilan Farrenheit (F) , Tombol 3 tampilan Kelvin (K) dan tombol 4 tampilan Reamur (R ) Microcontroller kemudian akan menyesuaikan dengan rumus konversi dari Celcius :
- Reamur (R) = (4/5) x C
- Fahrenheit (F) = (9/5) x C + 32
- Kelvin (K) = C + 273
Kita coba tekan tombol 2 maka akan tampil dalam satuan Fahrenheit (F). untuk Reamur ( R ) dan Kelvin ( K) tampilan di 7 segment tentun menyesuaikan keterbatasan segmennya sehingga hurufnya tidak dapat seperti huruf ‘K’ sebenarnya.
Alhamdulillah selesai juga proyek mikrokntroler AVR membuat Termometer Digital 4 Tampilan dengan ATmega16. Yang harus diperhatikan adalah proyek mikrokontroler ini berupa simulasi dengan Proteus, jika sahabat Ardutech menghendaki membuat proyek dengan hardware riil maka harus disesuaikan nilai crystal serta rangkaian modul 7 segment-nya.
Semoga bermanfaat…