Translate

Membuat Thermometer Digital Dengan DS1820

Membuat Thermometer Digital Dengan DS1820

             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