Ada dua pin yang digunakan pada SHT11 untuk berkomunikasi dengan mikrokontroler, yaitu pin SCK dan pin DATA. Pin SCK berfungsi untuk mensinkronisasikan komunikasi antara SHT11 dan mikrokontroler, sedangkan pin DATA berfungsi untuk mentransfer data in dan out pada SHT11.
Rangkaian skematik sensor SHT11 ini sebagai berikut:
Listing programnya sebagai berikut:
'===============================================
' Tutorial Sensor Suhu dan Kelembaban SHT11
' Programmer: Wahyu Rahmaniar
' Company: Technologination
'===============================================- $regfile = "m8535.dat"
- 'mikrokontroler ATMega8535
- $crystal = 11059200
- $baud = 9600
- 'baud rate utk pengiriman data serial
- Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
- 'pin-pin lcd yang digunakan
- Config Lcd = 16 * 2
- Deflcdchar 1 , 28 , 20 , 28 , 32 , 32 , 32 , 32 , 32
- 'membuat karakter derajat
- Dim Dataword As Word
- Dim Command As Byte
- Dim Calc As Single
- Dim Calc2 As Single
- Dim Rhlinear As Single
- Dim Rhlintemp As Single
- Dim Tempc As Single
- Dim Ctr As Byte
- Dim X As Word
- Dim Y As Single
- Dim Z As Single
- Dim Suhu As String * 10
- Dim Kelembaban As String * 10
- Dim Tekanan As String * 10
- Const C1 = -4
- Const C2 = 0.0405
- Const C3 = -0.0000028
- Const S = .01
- Const H = .00008
- Sck Alias Portc.0
- 'sck output pada port C.0
- Dataout Alias Portc.1
- 'ketika memanggil dataout portc.1 menjadi output
- Datain Alias Pinc.1
- 'ketika memanggil datain portc.1 menjadi input
- Declare Sub Kirim()
- Ddrc = &B11111111
- 'port c sebagai output
- Config Pinc.0 = Output
- Config Pinc.1 = Output
- Wait 1
- Set Dataout
- For Ctr = 1 To 12
- Set Sck
- Waitus 2
- Reset Sck
- Waitus 2
- Next Ctr
- Do
- Gosub Data_suhu
- Print "Data suhu: "; Suhu
- 'mengirimkan data suhu ke komputer
- Print "Data kelembaban: "; Kelembaban '
- 'mengirimkan data kelembaban ke komputer
- 'Waitms 100
- Gosub Tampil
- Loop
- Tampil:
- 'sub program untuk menampilkan pada LCD
- Cls
- Cursor Off
- Upperline
- Lcd "Suhu= " ; Suhu ; " " ; Chr(1) ; "C"
- Lowerline
- Lcd "Rh = " ; Kelembaban ; " " ; "%"
- Wait 1
- Return
- Data_suhu:
- 'sub program untuk mengambil data suhu dan kelembaban dari sht11
- Command = &B00000011
- Call Kirim
- 'memanggil fungsi kirim
- Tempc = S * Dataword
- Tempc = Tempc - 40
- Suhu = Fusing(tempc , "#.##")
- 'mengubah data single menjadi string dengan 2 angka dibelakang koma
- Command = &B00000101
- Call Kirim
- Calc = C2 * Dataword
- Calc2 = Dataword * Dataword
- Calc2 = C3 * Calc2
- Calc = Calc + C1
- Rhlinear = Calc + Calc2
- Calc = H * Dataword
- Calc = Calc + S
- Calc2 = Tempc - 25
- Calc = Calc2 * Calc
- Rhlintemp = Calc + Rhlinear
- Kelembaban = Fusing(rhlintemp , "#.##")
- Return
- Sub Kirim()
- Local Datavalue As Word
- Local Databyte As Byte
- Set Sck
- Reset Dataout
- Reset Sck
- Set Sck
- Set Dataout
- Reset Sck
- Shiftout Dataout , Sck , Command , 1
- Ddrc = &B11111101
- Config Pinc.1 = Input
- Set Sck
- Reset Sck
- Waitus 10
- Bitwait Pinc.1 , Reset
- Shiftin Datain , Sck , Databyte , 1
- Datavalue = Databyte
- Ddrc = &B11111111
- Config Pinc.1 = Output
- Reset Dataout
- Set Sck
- Reset Sck
- Ddrc = &B11111101
- Config Pinc.1 = Input
- Shiftin Datain , Sck , Databyte , 1
- Shift Datavalue , Left , 8
- Datavalue = Datavalue Or Databyte
- Dataword = Datavalue
- Ddrc = &B11111111
- Config Pinc.1 = Output
- Reset Dataout
- Set Sck
- Reset Sck
- Ddrc = &B11111101
- Config Pinc.1 = Input
- Shiftin Datain , Sck , Databyte , 1
- Ddrc = &B11111111
- Config Pinc.1 = Output
- Set Dataout
- Set Sck
- Reset Sck
- End Sub
- End
Program diatas berfungsi untuk menampilkan data suhu dan kelembaban dari sensor SHT11 ke LCD display 16x2 dan mengirimkan data suhu dan kelembaban tersebut ke komputer.
Rangkaian lengkapnya sebagai berikut:
Datasheet sensor suhu dan kelembaban SHT11 dapat didownload disini.
Data suhu dan kelembaban bisa ditampilkan dengan program antarmuka pada Tutorial Interface Microcontroller and Computer using Visual Basic.
Data suhu dan kelembaban bisa ditampilkan dengan program antarmuka pada Tutorial Interface Microcontroller and Computer using Visual Basic.
Sumber : http://technologination.blogspot.com
Tidak ada komentar:
Posting Komentar