Braincode
11th November 2011, 02:05 PM
salam kenal
pagi gan ada yang bisa bantu baca sensor sht75 ke lcd g gan pake bahasa basic?
mohon bimbinganya soalnya msh baru gan
rencana mau ngukur suhu ma klembaban trus ditampilin ke lcd
gw pake atmega8535 kalo ada tlong kirim ke [email protected].
terima kasih
ini coding saya tp msh eror.tlong di jlasin kaslahne
$regfile = "m8535.dat"
$crystal = 80000000
Config Lcdpin = Pinb , Db4 = Port.4 , Db5 = Port.5 , Db6 = Port.6 , Db7 = Port.7 , E = Portb.1 , Rs = Portb.3 , Rw = Portb.2
Config Lcd = 16 * 2
Dim Ctr As Byte
Dim Dataword As Word
Dim Command As Byte
Dim Dis As String * 20
Dim Calc As Single
Dim Calc2 As Single
Dim Rhlinear As Single
Dim Rhlintemp As Single
Dim Tempc As Single
Dim Tempf As Single
Dim C As Integer
Dim Pul As Integer , Sat As Integer , Kom As Integer
Dim Tpul As Integer , Tsat As Integer , Tkom As Integer
Dim Hpul As Integer , Hsat As Integer , Hkom As Integer
Dim Vt As Single , Vpul As Single , Vkom As Single
Dim Svtemp As Single , Svhumi As Single
Dim Svt As Eram Single
Dim Svh As Eram Single
Const C1 = -4
Const C2 = 0.0405
Const C3 = -0.0000028
Const T1c = 0.01
Const T2 = 0.00008
Const T1f = 0.018
Sck Alias Portb.1
Dataout Alias Portb.0
Datain Alias Pinb.0
Declare Sub Getit()
Declare Sub Getsv()
Ddrb = &B11111111 "port.b sebagai output"
Config Pinb.0 = Output
Config Pinb.1 = Output
Ddrd = &B11110000 "lsb sebagai input msb sebagai output"
Portd = &B00001111 "nilai portd adalah 00001111"
C = 0
Tpul = 0
Tsat = 0
Tkom = 0
Hpul = 0
Hsat = 0
Hkom = 0
Vpul = 0
Vkom = 0
Vt = 0
Set Dataout
For Ctr = 1 To 12
Set Sck
Waitus 2
Reset Sck
Waitus 2
Next Ctr
Do
Cls
Cursor Off
Command = &B00000011 "command untuk membaca temperatur"
Call Getit
Tempf = T1f * Dataword
Tempf = Tempf - 40
Tempc = T1c * Dataword
Tempc = Tempc - 40
Dis = Fusing(tempc , "##.##")
Locate 1 , 1
Lcd Dis ; "C "
Command = &B00000101 "command untuk membaca humidity"
Call Getit
'menghitung Rh linier
Calc = C2 * Dataword
Calc2 = Dataword * Dataword
Calc2 = C3 * Calc2
Calc = Calc + C1
Rhlinear = Calc + Calc2
'menghitung kompensasi suhu pada Rh linier
Calc = T2 * Dataword
Calc2 = Calc + T1c
Calc2 = Tempc - 25
Calc = Calc2 * Calc
Rhlintemp = Calc + Rhlinear
Dis = Fusing(rhlintemp , "##.##")
Locate 1 , 9
Lcd Dis ; " Rh"
Dis = Fusing(tempc , "##.##")
Locate 2 , 1
Lcd Dis ; " C"
Dis = Fusing(svhumi , "##.##")
Locate 2 , 9
Lcd Dis ; " Rh"
Waitms 500
Loop
'proses pembacaan Sensor sht11
Sub Getit()
Local Datavalue As Word
Local Databyte As Byte
'mulai yuk "transmission start"
Set Sck
Reset Dataout
Reset Sck
Set Sck
Set Dataout
Reset Sck
'Send Command
Shiftout Dataout , Sck , Command , 1
Ddrb = &B11111110 'set datain sebagai input
Config Pinb.0 = Input
Set Sck 'ACK
Reset Sck
Waitus 10
Bitwait Pinb.0 , Reset 'tunggusampai sht mereset datain
Shiftin Datain , Sck , Databyte , 1 'get MSB
Datavalue = Databyte
Ddrb = &B11111111
Config Pinb.0 = Output
Reset Dataout
Set Sck
Reset Sck
Ddrb = &B11111110 ' set datain sebagai input
Config Pinb.0 = Input
Shiftin Datain , Sck , Databyte , 1
Shift Datavalue , Left , 8 'get LSB
Datavalue = Datavalue Or Databyte
Dataword = Datavalue
Ddrb = &B11111111
Config Pinb.0 = Output
Reset Dataout
Set Sck
Reset Sck
Ddrb = &B11111110 "set datain sebagai input"
Config Pinb.0 = Input
Shiftin Datain , Sck , Databyte , 1 'CRC tidak digunakan
Ddrb = &B11111111
Config Pinb.0 = Output
Set Dataout
Set Sck
Reset Sck
End Sub
End
</div>
pagi gan ada yang bisa bantu baca sensor sht75 ke lcd g gan pake bahasa basic?
mohon bimbinganya soalnya msh baru gan
rencana mau ngukur suhu ma klembaban trus ditampilin ke lcd
gw pake atmega8535 kalo ada tlong kirim ke [email protected].
terima kasih
ini coding saya tp msh eror.tlong di jlasin kaslahne
$regfile = "m8535.dat"
$crystal = 80000000
Config Lcdpin = Pinb , Db4 = Port.4 , Db5 = Port.5 , Db6 = Port.6 , Db7 = Port.7 , E = Portb.1 , Rs = Portb.3 , Rw = Portb.2
Config Lcd = 16 * 2
Dim Ctr As Byte
Dim Dataword As Word
Dim Command As Byte
Dim Dis As String * 20
Dim Calc As Single
Dim Calc2 As Single
Dim Rhlinear As Single
Dim Rhlintemp As Single
Dim Tempc As Single
Dim Tempf As Single
Dim C As Integer
Dim Pul As Integer , Sat As Integer , Kom As Integer
Dim Tpul As Integer , Tsat As Integer , Tkom As Integer
Dim Hpul As Integer , Hsat As Integer , Hkom As Integer
Dim Vt As Single , Vpul As Single , Vkom As Single
Dim Svtemp As Single , Svhumi As Single
Dim Svt As Eram Single
Dim Svh As Eram Single
Const C1 = -4
Const C2 = 0.0405
Const C3 = -0.0000028
Const T1c = 0.01
Const T2 = 0.00008
Const T1f = 0.018
Sck Alias Portb.1
Dataout Alias Portb.0
Datain Alias Pinb.0
Declare Sub Getit()
Declare Sub Getsv()
Ddrb = &B11111111 "port.b sebagai output"
Config Pinb.0 = Output
Config Pinb.1 = Output
Ddrd = &B11110000 "lsb sebagai input msb sebagai output"
Portd = &B00001111 "nilai portd adalah 00001111"
C = 0
Tpul = 0
Tsat = 0
Tkom = 0
Hpul = 0
Hsat = 0
Hkom = 0
Vpul = 0
Vkom = 0
Vt = 0
Set Dataout
For Ctr = 1 To 12
Set Sck
Waitus 2
Reset Sck
Waitus 2
Next Ctr
Do
Cls
Cursor Off
Command = &B00000011 "command untuk membaca temperatur"
Call Getit
Tempf = T1f * Dataword
Tempf = Tempf - 40
Tempc = T1c * Dataword
Tempc = Tempc - 40
Dis = Fusing(tempc , "##.##")
Locate 1 , 1
Lcd Dis ; "C "
Command = &B00000101 "command untuk membaca humidity"
Call Getit
'menghitung Rh linier
Calc = C2 * Dataword
Calc2 = Dataword * Dataword
Calc2 = C3 * Calc2
Calc = Calc + C1
Rhlinear = Calc + Calc2
'menghitung kompensasi suhu pada Rh linier
Calc = T2 * Dataword
Calc2 = Calc + T1c
Calc2 = Tempc - 25
Calc = Calc2 * Calc
Rhlintemp = Calc + Rhlinear
Dis = Fusing(rhlintemp , "##.##")
Locate 1 , 9
Lcd Dis ; " Rh"
Dis = Fusing(tempc , "##.##")
Locate 2 , 1
Lcd Dis ; " C"
Dis = Fusing(svhumi , "##.##")
Locate 2 , 9
Lcd Dis ; " Rh"
Waitms 500
Loop
'proses pembacaan Sensor sht11
Sub Getit()
Local Datavalue As Word
Local Databyte As Byte
'mulai yuk "transmission start"
Set Sck
Reset Dataout
Reset Sck
Set Sck
Set Dataout
Reset Sck
'Send Command
Shiftout Dataout , Sck , Command , 1
Ddrb = &B11111110 'set datain sebagai input
Config Pinb.0 = Input
Set Sck 'ACK
Reset Sck
Waitus 10
Bitwait Pinb.0 , Reset 'tunggusampai sht mereset datain
Shiftin Datain , Sck , Databyte , 1 'get MSB
Datavalue = Databyte
Ddrb = &B11111111
Config Pinb.0 = Output
Reset Dataout
Set Sck
Reset Sck
Ddrb = &B11111110 ' set datain sebagai input
Config Pinb.0 = Input
Shiftin Datain , Sck , Databyte , 1
Shift Datavalue , Left , 8 'get LSB
Datavalue = Datavalue Or Databyte
Dataword = Datavalue
Ddrb = &B11111111
Config Pinb.0 = Output
Reset Dataout
Set Sck
Reset Sck
Ddrb = &B11111110 "set datain sebagai input"
Config Pinb.0 = Input
Shiftin Datain , Sck , Databyte , 1 'CRC tidak digunakan
Ddrb = &B11111111
Config Pinb.0 = Output
Set Dataout
Set Sck
Reset Sck
End Sub
End
</div>