Translate

Cara Mengakses Sensor Humidity / kelembaban dan Suhu / temperature SHT11 Dengan Bascom AVR

Cara Mengakses Sensor Humidity / kelembaban dan Suhu SHT11 Dengan Bascom AVR


         Pada kesempatan yang berbahagia kali ini saya akan menjelaskan tentang sensor yang sangat bagus dipakai untuk pendeteksi suhu dan kelembapan, yaitu SHT11. sensor ini memang agak mahal dibanding sensor suhu - kelembaban pada umumnya namun akurasi dan sensitifitasnya sangat baik dan biasanya untuk alat-alat industri memakai sensor ini. Output sensor ini tidak berupa tegangan melainkan sebuah pulsa dan angka, sehingga cara mengaksesnya tidak lagi menggunakan ADC namun menggunakan port I/O. untuk lebih jelasnya berikut program dan skemanya.



a. Minimum System




b. Sensor SHT11 ( suhu dan kelembaban )




c. Program Bascom AVR

    $regfile = "m16def.dat"
    $crystal = 11059200
    $baud = 9600

    Config Lcdpin = Pin , Rs = Porta.2 , E = Porta.3 , Db4 = Porta.4
    Config Lcdpin = Pin , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.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 output pada port C.0
    Sck Alias Portc.0
    Dataout Alias Portc.1

    Datain Alias Pinc.1
    Declare Sub Kirim()
    Ddrc = &B11111111

    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

    'main program
    Do

    Gosub Data_suhu
    Print "Data suhu: " ; Suhu
    Print "Data kelembaban: " ; Kelembaban
    Waitms 200
    Gosub Tampil

    Loop

    Tampil:
    Cls
    Cursor Off

    Upperline
    Lcd "Suhu= " ; Suhu ; " " ; Chr(1) ; "C"
    Lowerline
    Lcd "Rh  = " ; Kelembaban ; " " ; "%"
    Wait 1

    Return

    Data_suhu:
    Command = &B00000011

    Call Kirim

    Tempc = S * Dataword
    Tempc = Tempc - 40
    Suhu = Fusing(tempc , "#.##")
    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



d. Cara Penggunaan Alat

           Untuk menggunakan alat ini langkah pertama yaitu hubungkan supply 12 volt ke minimum system, kemudian akan tertera nilai suhu dan kelembaban dari sensor, sebelumnya pastikan dulu port yang dipakai untuk SDA-SCL adalah benar yaitu SCK di PortC.0 dan Dout di PortC.1. jika sudah benar maka akan terlihat nilainya di LCD display. Untuk melihat via komputer bisa menggunakan kabel RS232 dan software Hyperterminal.











1 comment:

  1. Saya belajar microcontroller dengan bascom avr. Saya menerapkan code di atas pada avr atmega 128 dengan Crystal 16000.Tetapi kok suhu yang ditampilkan Suhu: 287.67 c
    R: -992.5%

    ReplyDelete