Pada halam ini akan dibahas mengenai bagaimana
cara untuk membuat alat yang bisa digunakan untuk mengukur suhu suatu benda
atau kondisi atau kata lainya membuat thermometer digital, namun thermometer
digital yang akan dibuat sekarang berbeda dengan thermometer digital pada
pembahasan sebelumnya, kali ini membahas thermometer digital menggunakan device
DS1820 yang berbentuk seperti thermocouple, untuk lebih jelasnya berikut adalah
gambar alatnya.
Alat ini menggunakan mikrokontroller ATMega16
sebagai pusat pengendali dan pengolahan data dari sensor, sensor suhu yang
digunakan yaitu DS1820, sensor ini tidak mengeluarkan output tegangan seperti LM35
namun sensor ini menghasilkan pulsa digital sebagai indikatornya, jadi output
dari sensor ini sudah berbentuk digital, maka dari itu perlunya program khusus
untuk mengolahnya agar data digital tersebut dapat dikonversi menjadi suatu
nilai yang menggambarkan tingkat suhu suatu benda atau ruangan dengan maksimal
suhu ruangan yang bisa terukur yaitu 125 0C.
Tampilan DS1820
Menurut datasheet,
output yang dikeluarkan sensor DS1820 berupa konfigurasi angka 1 dan 0, yang
mana mengindikasikan suatu suhu tertentu, berikut adalah tabel yang menjelaskan
output sensor DS1820 beserta level pengukurannya.
-Tabel Suhu / Data yang terukur
Program BASCOM AVR
$regfile =
"m16def.dat"
$crystal =
12000000
Config Lcdpin
= Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin
= Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd =
16 * 2
Dim I1 As
Integer , Ss As String * 6
Dim Id1(8) As
Byte
Dim A As Byte
Dim W As Byte
Deflcdchar 0
, 8 , 20 , 11 , 4 , 4 , 4 , 3 , 32
Config 1wire
= Portb.1
Cursor Off
Cls
W =
1wirecount()
Upperline
Lcd
"Sensor = "
Waitms 500
Lcd W
Wait 3
Cls
Id1(1) =
1wsearchfirst()
'CRC
If Id1(8) =
Crc8(id1(1) , 7) Then
Locate 1 , 1
Lcd "CRC OK "
Wait 1
Locate 2 , 1
Lcd "ID:"
For A = 1 To 8
Cls
Upperline
Lcd "ID Sensor = " ; Hex(id1(a));
Next
End If
Wait 2
Cls
'---------------
Do
1wreset
1wwrite &H55
1wwrite &HCC
1wverify Id1(1)
1wwrite &HBE
I1 = 1wread(2)
1wreset
1wwrite &HCC
1wwrite &H44
'---------------------------------
Wait 1
'-------
I1 = I1 * 10
I1 = I1 / 16
Ss = Str(i1)
Ss = Format(ss , " 0.0")
Locate 1 , 1
Lcd "Tmp = " ; Ss ; Chr(0) ;
'-------
Loop
No comments:
Post a Comment