Technologination

Posts Tagged ‘sht11

Sensor SHT11 penampakannya seperti ini:

sht11

Rangkaian skematik SHT11 (sistemnya i2c): skematiksht11

Listing programnya:

  1. $regfile = “m8535.dat”           ‘mikrokontroler ATMega8535, jenis mikro yang dipakai bebas, tapi konfigurasi dan yang dipakai harus sama
  2. $crystal = 11059200
  3. $baud = 9600                                     ‘baud rate utk pengiriman data serial
  4. Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
  5. Config Lcd = 16 * 2
  6. Deflcdchar 1 , 28 , 20 , 28 , 32 , 32 , 32 , 32 , 32   ‘membuat karakter derajat
  7. Dim Dataword As Word
  8. Dim Command As Byte
  9. Dim Calc As Single
  10. Dim Calc2 As Single
  11. Dim Rhlinear As Single
  12. Dim Rhlintemp As Single
  13. Dim Tempc As Single
  14. Dim Ctr As Byte
  15. Dim X As Word
  16. Dim Y As Single
  17. Dim Z As Single
  18. Dim Suhu As String * 10
  19. Dim Kelembaban As String * 10
  20. Dim Tekanan As String * 10
  21. Const C1 = -4
  22. Const C2 = 0.0405
  23. Const C3 = -0.0000028
  24. Const S = .01
  25. Const H = .00008
  26. Sck Alias Portc.0                                       ‘sck output pada port C.0
  27. Dataout Alias Portc.1                              ‘ketika memanggil dataout portc.1 menjadi output
  28. Datain Alias Pinc.1                                ‘ketika memanggil datain portc.1 menjadi input
  29. Declare Sub Kirim()
  30. Ddrc = &B11111111                                  ‘port c sebagai output
  31. Config Pinc.0 = Output
  32. Config Pinc.1 = Output
  33. Wait 1
  34. Set Dataout
  35. For Ctr = 1 To 12
  36. Set Sck
  37. Waitus 2
  38. Reset Sck
  39. Waitus 2
  40. Next Ctr
  41. Do
  42. Gosub Data_suhu
  43. Print “Data suhu: “; Suhu             ‘menampilkan pada komputer
  44. Print “Data kelembaban: “; Kelembaban
  45. ‘Waitms 100
  46. Gosub Tampil
  47. Loop
  48. Tampil:                       ‘sub program untuk menampilkan pada LCD
  49. Cls
  50. Cursor Off
  51. Upperline
  52. Lcd “Suhu= ” ; Suhu ; ” ” ; Chr(1) ; “C”
  53. Lowerline
  54. Lcd “Rh  = ” ; Kelembaban ; ” ” ; “%”
  55. Wait 1
  56. Return
  57. Data_suhu:            ‘sub program untuk mengambil data suhu dan kelembaban dari sht11
  58. Command = &B00000011
  59. Call Kirim                                               ‘memanggil fungsi kirim
  60. Tempc = S * Dataword
  61. Tempc = Tempc – 40
  62. Suhu = Fusing(tempc , “#.##”)     ‘mengubah data single menjadi string dengan 2 angka dibelakang koma
  63. Command = &B00000101
  64. Call Kirim
  65. Calc = C2 * Dataword
  66. Calc2 = Dataword * Dataword
  67. Calc2 = C3 * Calc2
  68. Calc = Calc + C1
  69. Rhlinear = Calc + Calc2
  70. Calc = H * Dataword
  71. Calc = Calc + S
  72. Calc2 = Tempc – 25
  73. Calc = Calc2 * Calc
  74. Rhlintemp = Calc + Rhlinear
  75. Kelembaban = Fusing(rhlintemp , “#.##”)
  76. Return
  77. Sub Kirim()
  78. Local Datavalue As Word
  79. Local Databyte As Byte
  80. Set Sck
  81. Reset Dataout
  82. Reset Sck
  83. Set Sck
  84. Set Dataout
  85. Reset Sck
  86. Shiftout Dataout , Sck , Command , 1
  87. Ddrc = &B11111101
  88. Config Pinc.1 = Input
  89. Set Sck
  90. Reset Sck
  91. Waitus 10
  92. Bitwait Pinc.1 , Reset
  93. Shiftin Datain , Sck , Databyte , 1
  94. Datavalue = Databyte
  95. Ddrc = &B11111111
  96. Config Pinc.1 = Output
  97. Reset Dataout
  98. Set Sck
  99. Reset Sck
  100. Ddrc = &B11111101
  101. Config Pinc.1 = Input
  102. Shiftin Datain , Sck , Databyte , 1
  103. Shift Datavalue , Left , 8
  104. Datavalue = Datavalue Or Databyte
  105. Dataword = Datavalue
  106. Ddrc = &B11111111
  107. Config Pinc.1 = Output
  108. Reset Dataout
  109. Set Sck
  110. Reset Sck
  111. Ddrc = &B11111101
  112. Config Pinc.1 = Input
  113. Shiftin Datain , Sck , Databyte , 1
  114. Ddrc = &B11111111
  115. Config Pinc.1 = Output
  116. Set Dataout
  117. Set Sck
  118. Reset Sck
  119. End Sub
  120. End

 

 


Kategori