اطلاعیه

Collapse
No announcement yet.

dht22

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : dht22

    سلام
    بفرمایید این هم لینک جدید:
    http://gameelec.persiangig.com/DHT22.rar/download

    دیدگاه


      #17
      پاسخ : dht22

      برنامه منم تقریبا همینه ولی همیشه سنسور 0 نشون میده

      تجربه ای در مورد داری؟؟

      دیدگاه


        #18
        پاسخ : dht22

        برای من تا حالا همچین مشکلی پیش نیومد.
        در این سنسور, سنسور پایداری نیست و زمانی که رطوبت به 100 درصد میرسه وبعد پایین میاد خروجی همون 100 رو به ما نشون میده اگر هم خیلی تند تند دیتا خروجی رو بخونی هنگ میکنه.
        بندازش دور به جای این از SHT10 یا SHT11 یا SHT15 استفاده بکن

        دیدگاه


          #19
          پاسخ : dht22




          کد:
          [VB]
          "regfile[/VB]
          کد:
          [VB][/VB]
          کد:
          [VB][/VB]
          کد:
          [VB][/VB]
          کد:
          [VB][COLOR=#FF0000][FONT=Courier]=[/FONT][/COLOR][COLOR=#008080][FONT=Courier]"m8def.dat$[/FONT][/COLOR]
          [COLOR=#000000][FONT=Courier][B][COLOR=#000080] crystal[/COLOR][/B][/FONT][/COLOR][COLOR=#FF0000][FONT=Courier]=[/FONT][/COLOR][COLOR=#000000][FONT=Courier] 16000000[/FONT][/COLOR]
          
          [COLOR=#000000][FONT=Courier][B][COLOR=#000080]Config[/COLOR][/B][/FONT][/COLOR][B][COLOR=#000080]Lcd[/COLOR] [COLOR=#FF0000]=[/COLOR] 16 [COLOR=#FF0000]*[/COLOR] 2
          [B][COLOR=#000080]Config[/COLOR][/B] Lcdpin [COLOR=#FF0000]=[/COLOR] Pin[COLOR=#FF0000],[/COLOR]Rs[COLOR=#FF0000]=[/COLOR][COLOR=#800000]Portc[/COLOR][COLOR=#FF0000].[/COLOR]5[COLOR=#FF0000],[/COLOR]E[COLOR=#FF0000]=[/COLOR][COLOR=#800000]Portc[/COLOR][COLOR=#FF0000].[/COLOR]4[COLOR=#FF0000],[/COLOR]Db4[COLOR=#FF0000]=[/COLOR][COLOR=#800000]Portc[/COLOR][COLOR=#FF0000].[/COLOR]3[COLOR=#FF0000],[/COLOR]Db5[COLOR=#FF0000]=[/COLOR][COLOR=#800000]Portc[/COLOR][COLOR=#FF0000].[/COLOR]2[COLOR=#FF0000],[/COLOR]Db6[COLOR=#FF0000]=[/COLOR][COLOR=#800000]Portc[/COLOR][COLOR=#FF0000].[/COLOR]1[COLOR=#FF0000],[/COLOR]Db7[COLOR=#FF0000]=[/COLOR][COLOR=#800000]Portc[/COLOR][COLOR=#FF0000].[/COLOR]0
          [B][COLOR=#000080]Cursor[/COLOR][/B] [B][COLOR=#000080]Off[/COLOR]
          [B][COLOR=#000080]Cls[/COLOR][/B]
          
          [B][COLOR=#000080]Declare[/COLOR][/B] [B][COLOR=#000080]Sub[/COLOR] Get_th[COLOR=#FF0000]([/COLOR]t [B][COLOR=#000080]As[/COLOR] [B][COLOR=#000080]Byte[/COLOR] [COLOR=#FF0000],[/COLOR] H [B][COLOR=#000080]As[/COLOR] [B][COLOR=#000080]Byte[/COLOR][COLOR=#FF0000])[/COLOR]
          
          [B][COLOR=#000080]Config[/COLOR][/B] Serialin [COLOR=#FF0000]=[/COLOR] Buffered [COLOR=#FF0000],[/COLOR] Size [COLOR=#FF0000]=[/COLOR] 128
          [B][COLOR=#000080]Config[/COLOR][/B] Serialout [COLOR=#FF0000]=[/COLOR] Buffered [COLOR=#FF0000],[/COLOR] Size [COLOR=#FF0000]=[/COLOR] 128
          
          Dht_put [B][COLOR=#000080]Alias[/COLOR] [COLOR=#800000]Portd[/COLOR][COLOR=#FF0000].[/COLOR]6
          Dht_get [B][COLOR=#000080]Alias[/COLOR] [COLOR=#800000]Pind[/COLOR][COLOR=#FF0000].[/COLOR]6
          Dht_io_set [B][COLOR=#000080]Alias[/COLOR] [COLOR=#800000]Ddrd[/COLOR][COLOR=#FF0000].[/COLOR]6
          
          [B][COLOR=#000080]Dim[/COLOR][/B] T [B][COLOR=#000080]As[/COLOR] [B][COLOR=#000080]Byte[/COLOR]                        [COLOR=#008000]'перееменная для хранения температуры[/COLOR]
          [B][COLOR=#000080]Dim[/COLOR][/B] H [B][COLOR=#000080]As[/COLOR] [B][COLOR=#000080]Byte[/COLOR]                        [COLOR=#008000]'переменная для хранения влажности[/COLOR]
          [B][COLOR=#000080]Dim[/COLOR][/B] Crc [B][COLOR=#000080]As[/COLOR] [B][COLOR=#000080]Byte[/COLOR]                      [COLOR=#008000]'переменная для хранения байта четности[/COLOR]
          [B][COLOR=#000080]Dim[/COLOR][/B] Mybyte [B][COLOR=#000080]As[/COLOR] [B][COLOR=#000080]Byte[/COLOR]
          [B][COLOR=#000080]Dim[/COLOR][/B] Sensor_data [B][COLOR=#000080]As[/COLOR] [B][COLOR=#000080]String[/COLOR] [COLOR=#FF0000]*[/COLOR] 40    [COLOR=#008000]'сюда будут записываться данные отсылаемые датчиком[/COLOR]
          [B][COLOR=#000080]Dim[/COLOR][/B] Tmp_str8 [B][COLOR=#000080]As[/COLOR] [B][COLOR=#000080]String[/COLOR] [COLOR=#FF0000]*[/COLOR] 8
          [B][COLOR=#000080]Dim[/COLOR][/B] Count [B][COLOR=#000080]As[/COLOR] [B][COLOR=#000080]Byte[/COLOR]                    [COLOR=#008000]'переменная для подсчета принятых бит[/COLOR]
          
          [B][COLOR=#000080]Enable[/COLOR][/B] [B][COLOR=#000080]Interrupts[/COLOR]
          
          [B][COLOR=#000080]Set[/COLOR][/B] Dht_io_set
          [B][COLOR=#000080]Set[/COLOR][/B] Dht_put
          
          [B][COLOR=#000080]Lcd[/COLOR][/B] [COLOR=#008080]"AVRproject.ru"[/COLOR]
          [B][COLOR=#000080]Lowerline[/COLOR][/B]
          [B][COLOR=#000080]Lcd[/COLOR][/B] [COLOR=#008080]"DHT11 sensor"[/COLOR]
          
          [B][COLOR=#000080]Do[/COLOR][/B]
             [B][COLOR=#000080]Waitms[/COLOR] 1500
             [B][COLOR=#000080]Call[/COLOR] Get_th[COLOR=#FF0000]([/COLOR]t [COLOR=#FF0000],[/COLOR] H[COLOR=#FF0000])[/COLOR]
             [B][COLOR=#000080]Cls[/COLOR]
             [B][COLOR=#000080]Lcd[/COLOR] [COLOR=#008080]"TMP: "[/COLOR] [COLOR=#FF0000];[/COLOR] T [COLOR=#FF0000];[/COLOR] [COLOR=#008080]"C"[/COLOR]
             [B][COLOR=#000080]Lowerline[/COLOR]
             [B][COLOR=#000080]Lcd[/COLOR] [COLOR=#008080]"PHP: "[/COLOR] [COLOR=#FF0000];[/COLOR] H [COLOR=#FF0000];[/COLOR] [COLOR=#008080]"%"[/COLOR]
          
          [B][COLOR=#000080]Loop[/COLOR][/B]
          
          [B][COLOR=#000080]Sub[/COLOR][/B] Get_th[COLOR=#FF0000]([/COLOR]t [B][COLOR=#000080]As[/COLOR] [B][COLOR=#000080]Byte[/COLOR] [COLOR=#FF0000],[/COLOR] H [B][COLOR=#000080]As[/COLOR] [B][COLOR=#000080]Byte[/COLOR][COLOR=#FF0000])[/COLOR]
          
           Count [COLOR=#FF0000]=[/COLOR] 0
           Sensor_data [COLOR=#FF0000]=[/COLOR] [COLOR=#008080]""[/COLOR]
           [B][COLOR=#000080]Set[/COLOR] Dht_io_set                                         [COLOR=#008000]'делаем PD.6 выходом[/COLOR]
           [B][COLOR=#000080]Reset[/COLOR] Dht_put                                          [COLOR=#008000]'прижимаем шину к земле[/COLOR]
           [B][COLOR=#000080]Waitms[/COLOR] 25                                              [COLOR=#008000]'ждем не менее 18мс[/COLOR]
          
           [B][COLOR=#000080]Set[/COLOR] Dht_put                                            [COLOR=#008000]'отпускаем шину[/COLOR]
           [B][COLOR=#000080]Waitus[/COLOR] 40
           [B][COLOR=#000080]Reset[/COLOR] Dht_io_set                                       [COLOR=#008000]'делаем PD.6 входом[/COLOR]
           [B][COLOR=#000080]Waitus[/COLOR] 40                                              [COLOR=#008000]'ждем 40 мкс[/COLOR]
           [B][COLOR=#000080]If[/COLOR] Dht_get [COLOR=#FF0000]=[/COLOR] 1 [B][COLOR=#000080]Then[/COLOR]                                    [COLOR=#008000]'если на нем по прежнему 1[/COLOR]
              H [COLOR=#FF0000]=[/COLOR] 1                                               [COLOR=#008000]'значит датчик не ответил[/COLOR]
              [B][COLOR=#000080]Exit[/COLOR] [B][COLOR=#000080]Sub[/COLOR]                                            [COLOR=#008000]'выходим из подпрограммы[/COLOR]
           [B][COLOR=#000080]End[/COLOR] [B][COLOR=#000080]If[/COLOR]
          
          [COLOR=#008000]'если датчик ответил и прижал шину к земле продолжаем работу[/COLOR]
            [B][COLOR=#000080]Waitus[/COLOR] 80                                             [COLOR=#008000]'ждем еще 80 мкс[/COLOR]
            [B][COLOR=#000080]If[/COLOR] Dht_get [COLOR=#FF0000]=[/COLOR] 0 [B][COLOR=#000080]Then[/COLOR]                                   [COLOR=#008000]'если на линии по прежнему 0[/COLOR]
              H [COLOR=#FF0000]=[/COLOR] 2                                               [COLOR=#008000]'значит датчик сошел с ума[/COLOR]
              [B][COLOR=#000080]Exit[/COLOR] [B][COLOR=#000080]Sub[/COLOR]                                            [COLOR=#008000]'выходим из подпрограммы[/COLOR]
            [B][COLOR=#000080]End[/COLOR] [B][COLOR=#000080]If[/COLOR]
          
          [COLOR=#008000]'если все нормально и датчик ответил правильно, тогда продолжаем[/COLOR]
          
            [B][COLOR=#000080]While[/COLOR] Dht_get [COLOR=#FF0000]=[/COLOR] 1 [COLOR=#FF0000]:[/COLOR] [B][COLOR=#000080]Wend[/COLOR]                [COLOR=#008000]'ждем пока на шине появится 1[/COLOR]
          
             [B][COLOR=#000080]Do[/COLOR]                                     [COLOR=#008000]'начинаем принимать 40 бит данных[/COLOR]
              [B][COLOR=#000080]While[/COLOR] Dht_get [COLOR=#FF0000]=[/COLOR] 0 [COLOR=#FF0000]:[/COLOR] [B][COLOR=#000080]Wend[/COLOR]              [COLOR=#008000]'ждем появления на шине 0[/COLOR]
              [B][COLOR=#000080]Waitus[/COLOR] 30                             [COLOR=#008000]'после появления 0 ждем 30мкс
           [B][COLOR=#000080]If[/COLOR][/B][COLOR=#000000] Dht_get [/COLOR][COLOR=#FF0000]=[/COLOR][COLOR=#000000] 1 [/COLOR][B][COLOR=#000080]Then[/COLOR][/B]'если на шине 1
          [COLOR=#000000]       Sensor_data [/COLOR][COLOR=#FF0000]=[/COLOR][COLOR=#000000] Sensor_data [/COLOR][COLOR=#FF0000]+[/COLOR][COLOR=#008080]"1"[/COLOR]'записываем в переменную эту единицу
          [B][COLOR=#000080]While[/COLOR][/B][COLOR=#000000] Dht_get [/COLOR][COLOR=#FF0000]=[/COLOR][COLOR=#000000] 1 [/COLOR][COLOR=#FF0000]:[/COLOR][B][COLOR=#000080]Wend[/COLOR][/B]'и ждем пока датчик отправит следующий бит
          [B][COLOR=#000080]Else[/COLOR][/B]'иначе, если там был 0
          [COLOR=#000000]       Sensor_data [/COLOR][COLOR=#FF0000]=[/COLOR][COLOR=#000000] Sensor_data [/COLOR][COLOR=#FF0000]+[/COLOR][COLOR=#008080]"0"[/COLOR]'записываем этот 0 в переменную
          [B][COLOR=#000080]End[/COLOR][/B][B][COLOR=#000080]If[/COLOR][/B]
          [B][COLOR=#000080]Incr[/COLOR][/B][COLOR=#000000] Count                            [/COLOR]'увеличиваем счетчик на 1
          [B][COLOR=#000080]Loop[/COLOR][/B][B][COLOR=#000080]Until[/COLOR][/B][COLOR=#000000] Count [/COLOR][COLOR=#FF0000]=[/COLOR][COLOR=#000000] 40                  [/COLOR]'повторяем пока счетчик не досчитает до 40
          
          [B][COLOR=#000080]Set[/COLOR][/B][COLOR=#000000] Dht_io_set[/COLOR]
          [B][COLOR=#000080]Set[/COLOR][/B][COLOR=#000000] Dht_put[/COLOR]
          
          'начинаем раскладывать полученные данные
          
          [COLOR=#000000]   Tmp_str8 [/COLOR][COLOR=#FF0000]=[/COLOR][B][COLOR=#000080]Left[/COLOR][/B][COLOR=#FF0000]([/COLOR][COLOR=#000000]sensor_data [/COLOR][COLOR=#FF0000],[/COLOR][COLOR=#000000] 8[/COLOR][COLOR=#FF0000])[/COLOR]'берем левые 8 символов переменной
          [COLOR=#000000]   H [/COLOR][COLOR=#FF0000]=[/COLOR][B][COLOR=#000080]Binval[/COLOR][/B][COLOR=#FF0000]([/COLOR][COLOR=#000000]tmp_str8[/COLOR][COLOR=#FF0000])[/COLOR]'это целая часть влажности
          
          [COLOR=#000000]   Tmp_str8 [/COLOR][COLOR=#FF0000]=[/COLOR][B][COLOR=#000080]Mid[/COLOR][/B][COLOR=#FF0000]([/COLOR][COLOR=#000000]sensor_data [/COLOR][COLOR=#FF0000],[/COLOR][COLOR=#000000] 17 [/COLOR][COLOR=#FF0000],[/COLOR][COLOR=#000000] 8[/COLOR][COLOR=#FF0000])[/COLOR]'вытаскиваем 8 символов из середины
          [COLOR=#000000]   T [/COLOR][COLOR=#FF0000]=[/COLOR][B][COLOR=#000080]Binval[/COLOR][/B][COLOR=#FF0000]([/COLOR][COLOR=#000000]tmp_str8[/COLOR][COLOR=#FF0000])[/COLOR]'это целая часть температуры
          
          [COLOR=#000000]   Tmp_str8 [/COLOR][COLOR=#FF0000]=[/COLOR][B][COLOR=#000080]Right[/COLOR][/B][COLOR=#FF0000]([/COLOR][COLOR=#000000]sensor_data [/COLOR][COLOR=#FF0000],[/COLOR][COLOR=#000000] 8[/COLOR][COLOR=#FF0000])[/COLOR]'правые 8 символов
          [COLOR=#000000]   Crc [/COLOR][COLOR=#FF0000]=[/COLOR][B][COLOR=#000080]Binval[/COLOR][/B][COLOR=#FF0000]([/COLOR][COLOR=#000000]tmp_str8[/COLOR][COLOR=#FF0000])[/COLOR]'проверочные данные
          
          'проверка контрольной суммы
          
          [COLOR=#000000]   Mybyte [/COLOR][COLOR=#FF0000]=[/COLOR][COLOR=#000000] T [/COLOR][COLOR=#FF0000]+[/COLOR][COLOR=#000000] H                      [/COLOR]'складываем значение температуры и влажности
          [B][COLOR=#000080]If[/COLOR][/B][COLOR=#000000] Mybyte [/COLOR][COLOR=#FF0000]<>[/COLOR][COLOR=#000000] Crc [/COLOR][B][COLOR=#000080]Then[/COLOR][/B]'если контрольная сумма не сошлась
          [COLOR=#000000]      H [/COLOR][COLOR=#FF0000]=[/COLOR][COLOR=#000000] 3                            [/COLOR]'значит полученные данные не верны
          [B][COLOR=#000080]End[/COLOR][/B][B][COLOR=#000080]If[/COLOR][/B]
          
          [/COLOR][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B]
          [B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][B][COLOR=#008000][B][COLOR=#000080]End[/COLOR][/B][B][COLOR=#000080]Sub[/COLOR][/B][/COLOR][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/B][/VB]
          جدیدترین ویرایش توسط اشکان غفارزاده; ۱۴:۵۵ ۱۳۹۶/۰۵/۱۸.

          دیدگاه

          لطفا صبر کنید...
          X