DS1820 Bascom AVR

DS1820 Temperature adalah sensor suhu pabrikan Dallas semiconductor, tidak seperti sensor lainnya yang mempergunakan ADC untuk membaca data hasil pembacaaan temperatur semisal LM35 buatan National. DS1820 menggunakan 1wire communication dimana pada sensor ini terdapat ROM untuk menyimpan hasil pembacaan temperature. Untuk pembacaan data temperature dari sensor ini microcontroller harus mengirimkan data Hexa CC dan Hexa 44 untuk membaca memory DS1820


Sensor ini menggunakan 3 kabel yaitu merah, hitam dan kuning dimana merah dihubungkan pada Vcc 5Vdc, hitam dihubungkan pada Ground, untuk kabel kuning saya hubungkan pada portb.0 yaitu digital pin 8 pada arduino UNO karena saya mempergunakan arduino uno. Berikut adalah baris program dalam Bascom AVRnya.

1:  $regfile = "m328pdef.dat"  
2:  $crystal = 16000000  
3:  $baud = 9600  
4:  Config 1wire = Portb.0  
5:  Dim B As Byte , S As String * 5  
6:  Dim W As Word , Dg As Integer  
7:  Dim Dsid1(8) As Byte  
8:  Dim Sc(9) As Byte  
9:  Declare Sub Conv  
10:  Declare Function Decigrades(byval Sc(9) As Byte) As Integer  
11:  Print "DS1820 Waterproof Sensor"  
12:  W = 1wirecount()  
13:  Print "Found :" ; W ; " sensor Connected"  
14:  Dsid1(1) = 1wsearchfirst()  
15:  Print "Checking Sensor ID CRC"  
16:  If Dsid1(8) = Crc8(dsid1(1) , 7) Then  
17:   Print "CRC OK Sensor 1 ID"  
18:   Wait 1  
19:  End If  
20:  Do  
21:   Conv  
22:   Waitus 800  
23:   1wverify Dsid1(1)  
24:   If Err = 1 Then  
25:   Print "Error Measure"  
26:   Elseif Err = 0 Then  
27:   1wwrite &HBE  
28:   Sc(1) = 1wread(9)  
29:   If Sc(9) = Crc8(sc(1) , 8) Then  
30:   Dg = Decigrades(sc(9))  
31:   S = Str(dg)  
32:   S = Format(s , "00.0")  
33:   Print "Temperature :"  
34:   Print S ; " Celcius"  
35:   End If  
36:   End If  
37:   Wait 1  
38:  Loop  
39:  End                               
40:  Sub Conv  
41:   1wreset                           
42:   1wwrite &HCC                         
43:   1wwrite &H44                         
44:  End Sub  
45:  Function Decigrades(byval Sc(9) As Byte)  
46:   Decigrades = 0  
47:   Decigrades = Makeint(sc(1) , Sc(2))  
48:   Decigrades = Decigrades * 10  
49:   Decigrades = Decigrades / 16  
50:  End Function  

Seperti terlihat pada kode diatas pembacaan temperature dari DS1820 akan dikirimkan secara serial pada komputer jadi untuk melihat outputnya anda dapat membuka bascom terminal untuk melihat hasil pembacaan data temperaturenya, atau jika anda ingin menampilkan pada LCD anda dapat memodifikasi programnya. sendiri.

Semoga bermanfaat, happy coding.
DS1820 Bascom AVR DS1820 Bascom AVR Reviewed by cahyohertanto on September 18, 2016 Rating: 5

No comments:

close