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…
