اطلاعیه

Collapse
No announcement yet.

راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

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

    راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

    سلام کسی تا به حال تونسته با یک میکرو 2 عدد DS18B20 را راه اندازی کنه و هرکدام را به یک پین جدا وصل کنه یعنی برای هر سنسور یه 1wire تعریف کرده باشه؟

    #2
    پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

    سلام
    اول این که به هر پین کانفیگ شده میکرو جهت ارتباط یک سیمه میشه بینهایت سنسور DS1820 وصل کرد
    دوم این که اگر یه کم بگردید کتابخانه تک سیمه که میشه هشت پین رو کانفیگ کرد رو پیدا کنید.
    براي جوينده ي علم محدوديتي نيست. "ولو بالسين"

    دیدگاه


      #3
      پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

      تا جایی که علم نداشته من میگه
      میشه ۲۵۰ سنسور رو با پروتکل 1wire راه اندازی(config شما) کرد
      میتونید به لینک زیر مراجعه کنید
      https://www.google.com/webhp?sourcei...#q=1wire+atmel

      از دو چیز بسیار زیاد یاد گرفتم (1) نمونه مدارهای موجود در سایت های خارجی (2) مهندسی معکوس بردهای غیر ایرانی. به نقل از آقای مرتضی امانی
      --------------------------------------------------------
      تمام دنیا ما را تحریم کرده اند؛ حداقل خودمان همدیگر را تحریم نکنیم. به نقل از pencil
      --------------------------------------------------------
      اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است. mehran901

      دیدگاه


        #4
        پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

        سلام
        اره من با بسکام این کارو کردم
        چهارتا ds رو به مگا16 وصل کردم برا کنترل دما
        محک

        دیدگاه


          #5
          پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

          آقا ؛miladheydari72؛
          پیغام بهت ارسال نمیشه میگه صندوق پستی شما پر هست
          از دو چیز بسیار زیاد یاد گرفتم (1) نمونه مدارهای موجود در سایت های خارجی (2) مهندسی معکوس بردهای غیر ایرانی. به نقل از آقای مرتضی امانی
          --------------------------------------------------------
          تمام دنیا ما را تحریم کرده اند؛ حداقل خودمان همدیگر را تحریم نکنیم. به نقل از pencil
          --------------------------------------------------------
          اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است. mehran901

          دیدگاه


            #6
            پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

            سلام یعنی واقعا هیشگی بلد نیست این کار رو انجام بده؟؟؟؟
            کارم لنگه

            دیدگاه


              #7
              پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

              خب دوست عزیز نگفتی که چی میخوای
              برنامه ؟ مدار ؟ کمک ؟
              یا پروژه اماده ؟
              من با بسکام دارم ولی پروژه بزرگیه بدردت هم نمی خوره کامل بزارم
              هر جاش که مشکل داری بگو
              محک

              دیدگاه


                #8
                پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

                من با کدویژن کار میکنم و نحوه ی نوشتن و خواندن در ds18b20 را می خواهم

                دیدگاه


                  #9
                  پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

                  درود
                  خود کدویژن library داره.
                  مـن هیچ ندانم که مرا آن که سرشت
                  از اهل بهشت کرد یا دوزخ زشت
                  جامی و بتی و بربطی بر لب کشت
                  اين هر سه مرا نقد و تو را نسیه بهشت

                  دیدگاه


                    #10
                    پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

                    [code=qbasic]Sub Temp1
                    Local X As Integer , Byte0 As Byte , Byte1 As Byte
                    Config 1wire = Portc.7
                    1wreset
                    If Err = 1 Then
                    Waitms 60
                    T1 = 0
                    Temp(1) = 201
                    Else
                    1wwrite &HCC
                    1wwrite &H44
                    Waitms 50
                    1wreset
                    1wwrite &HCC
                    1wwrite &HBE
                    Byte0 = 1wread()
                    Byte1 = 1wread()
                    X = Makeint(byte0 , Byte1)
                    T1 = X / 16
                    Temp(1) = T1
                    Temp_res(1) = T1
                    If T1 < 0 Then
                    Temp(1) = Not Temp(1)
                    End If
                    End If
                    End Sub

                    '------------------------------------------------------

                    Sub Temp2
                    Local X As Integer , Byte0 As Byte , Byte1 As Byte
                    Config 1wire = Portc.6
                    1wreset
                    If Err = 1 Then
                    Waitms 60
                    T2 = 0
                    Temp(2) = 202
                    Else
                    1wwrite &HCC
                    1wwrite &H44
                    Waitms 50
                    1wreset
                    1wwrite &HCC
                    1wwrite &HBE
                    Byte0 = 1wread()
                    Byte1 = 1wread()
                    X = Makeint(byte0 , Byte1)
                    T2 = X / 16
                    Temp(2) = T2
                    Temp_res(2) = T2
                    If T2 < 0 Then
                    Temp(2) = Not Temp(2)
                    End If
                    End If
                    End Sub

                    '-----------------------------------------------------
                    Sub Temp3
                    Local Byte0 As Byte , Byte1 As Byte , X As Integer
                    Config 1wire = Portc.5
                    1wreset
                    If Err = 1 Then
                    Waitms 60
                    T3 = 0
                    Temp(3) = 203
                    Else
                    1wwrite &HCC
                    1wwrite &H44
                    Waitms 50
                    1wreset
                    1wwrite &HCC
                    1wwrite &HBE
                    Byte0 = 1wread()
                    Byte1 = 1wread()
                    X = Makeint(byte0 , Byte1)
                    T3 = X / 16
                    Temp(3) = T3
                    Temp_res(3) = T3
                    If T3 < 0 Then
                    Temp(3) = Not Temp(3)
                    End If
                    End If
                    End Sub[/code]
                    محک

                    دیدگاه


                      #11
                      پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

                      سلام به دوستان عزیز ، من موفق به راه اندازی 8 عدد سنسور DS18B20 با یک میکرو شدم و برای هر سنسور یک پین جدا اختصاص دادم.
                      مدار داره مثل بنز کار میده.

                      دیدگاه


                        #12
                        پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

                        نوشته اصلی توسط مهدی کارگر
                        [code=qbasic]Sub Temp1
                        Local X As Integer , Byte0 As Byte , Byte1 As Byte
                        Config 1wire = Portc.7
                        1wreset
                        If Err = 1 Then
                        Waitms 60
                        T1 = 0
                        Temp(1) = 201
                        Else
                        1wwrite &HCC
                        1wwrite &H44
                        Waitms 50
                        1wreset
                        1wwrite &HCC
                        1wwrite &HBE
                        Byte0 = 1wread()
                        Byte1 = 1wread()
                        X = Makeint(byte0 , Byte1)
                        T1 = X / 16
                        Temp(1) = T1
                        Temp_res(1) = T1
                        If T1 < 0 Then
                        Temp(1) = Not Temp(1)
                        End If
                        End If
                        End Sub

                        '------------------------------------------------------

                        Sub Temp2
                        Local X As Integer , Byte0 As Byte , Byte1 As Byte
                        Config 1wire = Portc.6
                        1wreset
                        If Err = 1 Then
                        Waitms 60
                        T2 = 0
                        Temp(2) = 202
                        Else
                        1wwrite &HCC
                        1wwrite &H44
                        Waitms 50
                        1wreset
                        1wwrite &HCC
                        1wwrite &HBE
                        Byte0 = 1wread()
                        Byte1 = 1wread()
                        X = Makeint(byte0 , Byte1)
                        T2 = X / 16
                        Temp(2) = T2
                        Temp_res(2) = T2
                        If T2 < 0 Then
                        Temp(2) = Not Temp(2)
                        End If
                        End If
                        End Sub

                        '-----------------------------------------------------
                        Sub Temp3
                        Local Byte0 As Byte , Byte1 As Byte , X As Integer
                        Config 1wire = Portc.5
                        1wreset
                        If Err = 1 Then
                        Waitms 60
                        T3 = 0
                        Temp(3) = 203
                        Else
                        1wwrite &HCC
                        1wwrite &H44
                        Waitms 50
                        1wreset
                        1wwrite &HCC
                        1wwrite &HBE
                        Byte0 = 1wread()
                        Byte1 = 1wread()
                        X = Makeint(byte0 , Byte1)
                        T3 = X / 16
                        Temp(3) = T3
                        Temp_res(3) = T3
                        If T3 < 0 Then
                        Temp(3) = Not Temp(3)
                        End If
                        End If
                        End Sub[/code]
                        سلام
                        شما از این برنامه در عمل جواب گرفتید؟
                        یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

                        دیدگاه


                          #13
                          پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

                          سلام
                          اره این یه تیکه از کد کنترل دما هست که شکر خدا داره فعلا کار میکنه :biggrin:
                          محک

                          دیدگاه


                            #14
                            پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

                            سلام.
                            در مورد این میشه توضیح بدین؟!
                            من میخوام دما رو بگیرم و روی سون سگمنت نشون بدم. کد های سون سگمنت و... رو نشوتم ولی گیرم توی گرفتن دما هست. کد زیر رو دیدم که به صورت رشته خروجی میده، حالا من به عدد نیاز دارم با یک رقم اعشار که کد هام کار بکنه
                            کد:
                            1wreset
                            1wwrite &HCC
                            1wwrite &H44
                            Waitms 100
                            1wreset
                            1wwrite &HCC
                            1wwrite &HBE
                            Miangen = 1wread(2)
                            Miangen = Miangen * 10 : Miangen = Miangen \ 16
                            Dama = Str(miangen) : Dama = Format(dama , "0.0")
                            کد مربوط به گرفتن دهگان و صدگان و... هم این کد پایینه که علامت منفی و نقطه دات رو در مواردی که نیاز باشه یا نباشه تغییر میده، چون سه تا سون سگمنت دارم، وقتی دما از -9.9 کمتر میشه، دات رو حذف میکنه و سون سگمت اول رو برای نمایش منفی استفاده میکنه و دوتای دیگه رو برای نمایش دو عدد مربوط به قسمت صحیح دما؛ و یا دمای بالا تر از 99.9 که میره، دات رو حذف میکنه و فقط 3 تا عدد مربوط به قسمت صحیح دما رو نشون میده.
                            کد:
                            t= temp *10
                            if t=0 then
                            s1=0
                            s2=0
                            s3=0
                            dot=1
                            minest=0
                            else
                            if t>0 then
                            s=t/100
                            if s>=0 And s<=9 then
                            s3=t mod 10
                            s=t/10
                            s2=s mod 10
                            s=s/10
                            s1=s mod 10
                            dot=1
                            minest=0
                            end if
                            if s>9 then
                            t=t/10
                            s3=t mod 10
                            s=t/10
                            s2=s mod 10
                            s=s/10
                            s1=s mod 10
                            dot=0
                            minest=0
                            end if
                            end if
                            if t<0 then
                            t=t*-1
                            s=t/100
                            if s=0 then
                            s3=t mod 10
                            s=t/10
                            s2=s mod 10
                            dot=1
                            minest=1
                            end if
                            if s>0 then
                            s=t/10
                            s3=s mod 10
                            s=s/10
                            s2=s mod 10
                            dot=0
                            minest=1
                            end if
                            end if
                            end if

                            دیدگاه


                              #15
                              پاسخ : راه اندازی 2 عدد DS18B20 با یک میکرو و 2 پین

                              با سلام
                              میشه یه توضییح مختصر بدید چجوری؟

                              دیدگاه

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