اطلاعیه

Collapse
No announcement yet.

اتصال سنسور sht10 به کابل بیش از 20 متر

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

    اتصال سنسور sht10 به کابل بیش از 20 متر

    سلام دوستان
    من در حال درست کردن یه دستگاه واسه ی سالن قارچ هستم از ds18b20 که سنسور دما هستش و ی sht10 که سنسور دما و رطوبت استفاده کردم الان به ی مشکل خوردم .اینکه سنسور sht10 با سیم بیشتر از نیم متر جواب نمیده.من ی راه حل لازم دارم واسه اضافه کردن سیم تا 30 یا 20 متر؟به نظر شما چیکار کنم؟

    #2
    پاسخ : اتصال سنسور sht10 به کابل بیش از 20 متر

    سلام فایلشو بزار ببینم چیکار کردی
    زندگی با الکترونیک زیباست

    دیدگاه


      #3
      پاسخ : اتصال سنسور sht10 به کابل بیش از 20 متر

      این ایسی با رابط i2c کار میکنه که نیم متر هم براش زیاده

      باید از rs485 استفاده کنی برای انتقال دیتا

      دیدگاه


        #4
        پاسخ : اتصال سنسور sht10 به کابل بیش از 20 متر

        سلام دوستان من با کمک برنامه جوجه کشی داخل سایت با همین سنسور یه برنامه برداشتم که فقط دما و روطوبت رو رو ال سی دی نشون بده
        سنسورم sht10 هست ا حدوت 60 سانتی متر سیم توی سایت نوین کیت زده بود که اگر روی سنسور مثبت و منفی رو با یه خازن 100 نانو بهم وصل کنی میتونی تا یه متر اضافه کنی سیمو
        من این کار رو کردم . طبق مدار جوجه کشی که سنسور رو با یه مگا 8 خونده و بعد به صورت سریال فرستاده به میکرو من هم برای کلاک و هم دیتای سنسور مقاومت 10 کیلو پول اپ زدم البته من سریال نمیفرستم فقط
        مقاومت ها رو عین اون مدار وصل کردم من فقط میخوام رو ال سی دی نشون بدم حالا مشکلی که دارم تو یهوای اتاق که حدود 20 درجه است دما رو 68 و رطوبت رو 121 درصد نشون میده
        اینم بگم که با خازن و بدون خازنم تست کردم مقاومت پول اپ کلاک هم برداشتم بازم همین شد چندا برنامه دیگه هم از اینترنت و سایت بسکام و همین سایت خودمون گرفتم ولی بار نتونستم جواب بگیرم همین برنامه ی
        اقای جودی رو هم تست کردم نتونستم جواب بگیرم
        من به پورت c0 , C1 ,توی مگا 32 وصل کردم یعنی SCL وSDA ولی بقیه با پین های دیگه برنامه نوشتن البته من تو برنامه همه رو تعقیر دادم یعنی میشه مشکل از اون باشه
        اینم برنامه من میشه کمکم کنید اشکالم کجاست
        $regfile = "m32def.dat"
        $crystal = 8000000


        Config Lcdpin = Pin , Rs = Pina.0 , E = Pina.1 , Db4 = Pina.2 , Db5 = Pina.3 , Db6 = Pina.4 , Db7 = Pina.5
        Config Lcd = 16 * 2


        Cursor Off
        Cls
        Sck Alias Portc.0
        Dataout Alias Portc.1
        Datain Alias Pinc.1
        Config Portc.0 = Output
        Config Portc.1 = Output
















        Cls
        Gosub Signal_reset : Waitms 10
        Do








        Command = &B00000101 : Gosub Get_sht10
        Gosub Calcula_rh_liner_12bit
        Command = &B00000011 : Gosub Get_sht10
        Gosub Calcula_temp_14bit


        Waitms 100


        Locate 1 , 1 : Lcd "T=" ; Temp
        Locate 2 , 1 : Lcd "h=" ; Humidity
        Waitms 100






        '**********************************************
        Status_register_write:
        Gosub Signal_start
        Command = &B00000110 : Shiftout Dataout , Sck , Command , 1
        Gosub Signal_ack
        Command = &B00000000 : Shiftout Dataout , Sck , Command , 1
        Gosub Signal_ack
        Return


        '*******************************************
        Status_register_read:


        Gosub Signal_start
        Command = &B00000111
        Shiftout Dataout , Sck , Command , 1
        Gosub Signal_ack
        Gosub Read_byte : Data_msb = Data_byte
        Gosub Signal_ack
        Gosub Read_byte : Crc = Data_byte
        Return


        '*******************************************
        Setting_default:


        Gosub Signal_start
        Command = &B00011110 : Shiftout Dataout , Sck , Command , 1
        Gosub Signal_ack
        Waitms 100
        Return


        '*******************************************
        Get_sht10:


        Gosub Signal_start
        Gosub Send_command
        Gosub Signal_ack
        Gosub Wait_for_data_ready
        Gosub Read_byte : Data_msb = Data_byte
        Gosub Signal_ack
        Gosub Read_byte : Data_lsb = Data_byte
        Gosub Signal_ack
        Gosub Read_byte : Crc = Data_byte
        Gosub Signal_end
        Data_msb = Data_msb And &B00111111
        Data_word = Makeint(data_lsb , Data_msb)
        Return


        '*******************************************
        Signal_reset:


        Config Portc.0 = Output
        Config Portc.1 = Output
        Reset Sck : Set Dataout : Waitus 1
        For I = 1 To 9
        Set Sck : : Waitus 1 :
        Reset Dataout : Waitus 1
        Next I
        Return


        '*******************************************
        Signal_start:


        Config Portc.0 = Output
        Config Portc.1 = Output
        Reset Sck : Set Dataout : Waitus 1
        Set Sck : : Waitus 1 :
        Reset Dataout : Waitus 1
        Reset Sck : Waitus 1
        Set Sck : Waitus 1
        Set Dataout : : Waitus 1
        Reset Sck : Waitus 1
        Crc = 0
        Return


        '*******************************************
        Send_command:


        Config Portc.0 = Output : Portc.0 = 0
        Config Portc.1 = Output : Portc.1 = 0
        Shiftout Dataout , Sck , Command , 1
        Return


        '*******************************************
        Wait_for_data_ready:


        Config Portc.0 = Output
        Config Portc.1 = Input
        Set Dataout
        For I = 1 To 255
        If Dataout = 0 Then Exit For
        Waitms 1
        Next


        Return


        '*******************************************
        Read_byte:


        Config Portc.0 = Output : Portc.0 = 0
        Config Portc.1 = Input : Portc.1 = 1
        Shiftin Datain , Sck , Data_byte , 1
        Return


        '*******************************************
        Signal_ack:


        Config Portc.0 = Output
        Config Portc.1 = Output
        Reset Dataout : Reset Sck
        Set Sck : Waitus 1
        Reset Sck
        Return


        '*******************************************
        Signal_end:


        Config Portc.0 = Output
        Config Portc.1 = Output
        Set Dataout : Waitus 1
        Set Sck : Waitus 1
        Reset Sck : Waitus 1
        Return


        '*******************************************
        Calcula_rh_liner_12bit:


        Rh_liner = Data_word * Data_word
        Rh_liner = Rh_liner * -0.0000015955
        Z = 0.0367 * Data_word
        Rh_liner = Rh_liner + Z
        Rh_liner = Rh_liner - 2.0468
        Humidity = ""
        Humidity = Fusing(rh_liner , "#.#")


        Return


        '*******************************************
        Calcula_temp_14bit:


        Temp_single = 0.01 * Data_word
        Temp_single = Temp_single - 40.1
        Temp = ""
        Temp = Fusing(temp_single , "#.#")
        Return


        '/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*








        End
        '/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*


        دیدگاه

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