اطلاعیه

Collapse
No announcement yet.

مشکل با سنسور DHT11

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

    #46
    پاسخ : مشکل با سنسور DHT11

    نوشته اصلی توسط mohammad...
    سلام احمد جان
    آقا گفتی که هیچ کدوم از برنامه ها کار نمی کنه سون سگمنتا هیچی نشون نمیدن منم رفتم یه دونه از این مالتی پلکس 4تایی کاتد خریدم خلاصه می خوام اثبات کنم که برنامه کار می کنه :mrgreen: :mrgreen: :mrgreen:
    همه کدهای قبلی کار میکنند شاید شما سر راه این مالتی پلکس مقاومت می گذاشتی برا همین هیچی نشون نمیداد لازم نیست مقاومت بزاری چون جریانی که به پایه های سگمنتا می رسه خیلی کمه
    این کدی که مذارم دیگه نسخه فاینال هست ولی یه مشکلی که اینجا هست اگه نگاه کنی در قسمت فانکشن یه تاخیر 20 میلی ثانیه هست که کل محاسبات رو به هم میریزه کاریش نمیشه کرد یعنی این باعث میشه زمان رفرش سگمنات بیاد پایین یعنی کند کند سگمنتا رو رفرش می کنه اما این کد تقریبا خوبه درسته یکمی پر پر زدن داره ولی قابل قبوله برای پر رنگ شدن نور سگمنتات کافیه اون waitms ها هم در برنامه اصلی و هم در قسمت فانکشن افزایش بدی و حداقلش 2 میلی ثانیه تا 10 میلی ثانیه هست البته هر چقدر وقفه ها بره بالا مسلما زمان رفرش میاد پایین که ترجیح می دم زیاد نگاه نکنی تا هپنوتیزمت نکنه مشکل عوض شدن رطوبت هم رفع کردم البته شاید دیگه پروژت رو تحویل داده باشی ولی تا اینجاش رفتیم دیدم دیگه ول کردی گفتم خودم تموم کنم شاید به درد بقیه هم بخوره
    پس یادتون باشه اگه می خوان رطوبت و دما بدون مشکل نشان داده شود و باعث آزار چشمتان نشود همون سون سگمنتای معمولی با bcd رو بهتون پیشنهاد می کنم اینم خوبه ولی زیاد نباید بهش نگاه کرد که چشاتون درد نگیره
    اینم از کد فاینال نسخه نهایی:
    البته سخت افزار همونه



    کد:
      $regfile = "m8def.dat"
      $crystal = 8000000
    
    
      Declare function Get_th(t As Byte , H As Byte) as Byte
      Config Single = Scientific , Digits = 1
    
    
      Dht_put Alias Portc.0
      Dht_get Alias Pinc.0
      Dht_io_set Alias Ddrc.0
      Config Portc.2 = Output
      Config Portc.3 = Output
      Config Portc.4 = Output
      Config Portc.5 = Output
      Config Portb = Output
    
      Dim T As Byte
      Dim H As Byte
      Dim Crc As Byte
      Dim Mybyte As Byte
      Dim Sensor_data As String * 40
      Dim Tmp_str8 As String * 8
      Dim Count As Byte
      Dim T_ As Single
      Dim T_1 As Byte
      Dim H_ As Single
      Dim H_1 As Byte
      Dim T_2 As Single
      Dim T_3 As Byte
      Dim H_2 As Single
      Dim H_3 As Byte
      Enable Interrupts
    
      Set Dht_io_set
      Set Dht_put
      '*******************************************************************************
      T = 25
      H = 54
      '*******************************************************************************
      Cls
      Do
      '###############################################################################
      H = Get_th(t , H)
      '###############################################################################
      T_ = T / 10
      T_1 = Int(t_)
      H_ = H / 10
      H_1 = Int(h_)
      T_2 = Frac(t_)
      T_2 = T_2 * 10
      T_3 = Int(t_2)
      H_2 = Frac(h_)
      H_2 = H_2 * 10
      H_3 = Int(h_2)
      Portc = &B1111011
      Portb = Lookup(t_1 , Temp_humidity)
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Waitms 2
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Portc = &B11110111
      Portb = Lookup(t_3 , Temp_humidity)
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Waitms 2
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Portc = &B1101111
      Portb = Lookup(h_1 , Temp_humidity)
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Waitms 2
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Portc = &B1011111
      Portb = Lookup(h_3 , Temp_humidity)
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Waitms 2
       Portc = &B1111111
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Loop
    
      Function Get_th(t As Byte , H As Byte)
    
       Count = 0
       Sensor_data = ""
       Set Dht_io_set
       Reset Dht_put
       Waitms 20
    
       Set Dht_put
       Waitus 40
       Reset Dht_io_set
       Waitus 40
       If Dht_get = 1 Then
        H = 1
        Exit Sub
       End If
    
    
       Waitus 80
       If Dht_get = 0 Then
        H = 2
        Exit Sub
       End If
    
    
    
       While Dht_get = 1 : Wend
    
        Do
        While Dht_get = 0 : Wend
        Waitus 30
         If Dht_get = 1 Then
          Sensor_data = Sensor_data + "1"
          While Dht_get = 1 : Wend
          Else
          Sensor_data = Sensor_data + "0"
        End If
        Incr Count
    
        Loop Until Count = 40
    
        Set Dht_io_set
        Set Dht_put
    
        Portc = &B1111011
      Portb = Lookup(t_1 , Temp_humidity)
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Waitms 2
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Portc = &B11110111
      Portb = Lookup(t_3 , Temp_humidity)
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Waitms 2
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Portc = &B1101111
      Portb = Lookup(h_1 , Temp_humidity)
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Waitms 2
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Portc = &B1011111
      Portb = Lookup(h_3 , Temp_humidity)
      '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      Waitms 2
       Portc = &B1111111
    
    
    
        Tmp_str8 = Left(sensor_data , 8)
        H = Binval(tmp_str8)
    
        Tmp_str8 = Mid(sensor_data , 17 , 8)
        T = Binval(tmp_str8)
    
        Tmp_str8 = Right(sensor_data , 8)
        Crc = Binval(tmp_str8)
    
    
    
        Mybyte = T + H
        If Mybyte <> Crc Then
         H = 3
        End If
        End Function
    
      Temp_humidity:
      Data &H3F , &H06 , &H5B , &H4F , &H66 , &H6D , &H7D , &H07 , &H7F , &H6F
    ممنونم واقعا لطف بزرگی بهم کردی
    متاسفانه پروگرامرم خراب شد
    غیر از اون هم کلا استاد پروژه رو با avr ازم قبول نکرد
    گفت همون با pic بزن :cry:
    راستی شما با ic درایور max 7219 کار کردین؟
    میدونین چطور باید امتحانش کنم؟
    بازم از لطفت تشکر میکنم

    دیدگاه


      #47
      پاسخ : مشکل با سنسور DHT11

      نوشته اصلی توسط ahmad6870
      ممنونم واقعا لطف بزرگی بهم کردی
      متاسفانه پروگرامرم خراب شد
      غیر از اون هم کلا استاد پروژه رو با avr ازم قبول نکرد
      گفت همون با pic بزن :cry:
      راستی شما با ic درایور max 7219 کار کردین؟
      میدونین چطور باید امتحانش کنم؟
      بازم از لطفت تشکر میکنم
      سلام
      نه متاسفانه باهاش کار نکردم
      برد جوجه کشی:
      مطالعه پست 1 (حتما مطالعه کنید)


      مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

      دانلود

      توجه:
      این برد نیمه صنعتی و خانگی هست...
      برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

      آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

      دیدگاه


        #48
        پاسخ : مشکل با سنسور DHT11

        نوشته اصلی توسط mohammad...
        سلام
        نه متاسفانه باهاش کار نکردم
        ممنونم لطف کردی

        دیدگاه


          #49
          خطای زیاد در خروجی dht11

          با سلام من با dht11 یک رطوبت ساختم اما در خروجی حدود 15 درصد خطا دارم ... مقامت 5 کیلو و پتانسیومتر رو هم امتحان کردم... فعلا مدار رو روی برد بستم .... با مقاومت بی مقاومت کلا عددش ثابته و 15 درصد خطا داره آی سی رو هم عوض کردم فرقی نکرد

          شکست میخورم اما تسلیم نمیشوم...

          www.raxxar.blogfa.com

          دیدگاه


            #50
            پاسخ : خطای زیاد در خروجی dht11

            نوشته اصلی توسط miladkolivand
            با سلام من با dht11 یک رطوبت ساختم اما در خروجی حدود 15 درصد خطا دارم ... مقامت 5 کیلو و پتانسیومتر رو هم امتحان کردم... فعلا مدار رو روی برد بستم .... با مقاومت بی مقاومت کلا عددش ثابته و 15 درصد خطا داره آی سی رو هم عوض کردم فرقی نکرد
            سلام
            این سنسور رو با کدوم سنسور مقایسه میکنی؟ طبق دیتاشیت نباید بیشتر از 5 درصد تولرانس داشته باشد
            برد جوجه کشی:
            مطالعه پست 1 (حتما مطالعه کنید)


            مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

            دانلود

            توجه:
            این برد نیمه صنعتی و خانگی هست...
            برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

            آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

            دیدگاه


              #51
              پاسخ : مشکل با سنسور DHT11

              سلام
              من می خواهم با16 یا 32 atmega سنسور dht رو راه اندازی کنم اما تا اونجایی که می دونم ارتباط این سانسور تک سیمه است و من اصلا کار نکردم لطف می کنید فقط توضیح دهید که پایه 2 سانسور به کدام پایه میکرو باید وصل شود؟ و فقط توابع یا کتابخانه ای که برای dht11 باید بنویسم چیست؟
              ممنون

              دیدگاه

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