Posts Tagged ‘sht11’
SHT11 dengan bascom AVR
Posted Desember 30, 2010
on:Sensor SHT11 penampakannya seperti ini:
Rangkaian skematik SHT11 (sistemnya i2c):
Listing programnya:
- $regfile = “m8535.dat” ‘mikrokontroler ATMega8535, jenis mikro yang dipakai bebas, tapi konfigurasi dan yang dipakai harus sama
- $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
- 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 ‘menampilkan pada komputer
- Print “Data kelembaban: “; Kelembaban
- ‘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
Tag: sht11, sht11 bascom