اطلاعیه

Collapse
No announcement yet.

نحوه استفاده از پروتکل 1wire (تک سیمه) بین دو میکرو

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

    نحوه استفاده از پروتکل 1wire (تک سیمه) بین دو میکرو

    سلام دوستان.
    من میخوام همزمان با یک سنسور دمای ds18b20 و یک میکرو ارتباط تک سیمه برقرار کنم، ینی هم اطلاعاتو از سنسور بگیرم و هم اطلاعات از میکروی دیگه دریافت بشه، نحوه دریافت دما از سنسورو بلدم، ولی نحوه ارسال و دریافت بین دو میکرو با این پروتکلو بلد نیستم، و همچنین نمیدونم چجوری هر دو تارو (میکرو و سنسور) به میکروی گیرنده اطلاعات متصل کنم، آیا میکرو هم باید به همان پین که سنسور وصله وصل بشه یا میشه جداگانه وصل کرد و خوند؟
    انسانها 10 دسته اند: دسته اي که باينري ميدانند و دسته اي که باينري نميدانند!

    #2
    پاسخ : نحوه استفاده از پروتکل 1wire (تک سیمه) بین دو میکرو

    در مورد پروتکل تک سیمه که مطلب زیاده. کافیه سرچ بزنید یا اگر حوصله دارید دیتا شیت همین ds18b20 رو بخونید پروتکل رو توضیح داده.
    میتونید هر دو رو به یک پین متصل کنید. فقط باید طوری برنامه بنویسید که تداخل ایجاد نشه و زمانی که دارید با سنسور کار میکنید میکرو فرستنده pull up بشه. که مطمئن ترین راه اینه که یک سیم دیگه هم به میکرو دوم بکشید تا با استفاده از اون میکروفرستنده رو فعال و غیر فعال کنید. که وقتی شد دو تاسیم بهتره که از پروتکل های دیگه استفاده کنید. مثل i2c ولی در کل میشه فقط باید برنامه اتون دقیق باشه :smile:
    ... و (بدانيد) گرفتن تصميمهاى محكم (براى رسيدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگين سازگار نيست و چه بسيار كه خواب شبانه تصميمهاى محكم روز را از ميان برده و تاريكيآ‌ها، خاطره همتآ‌هاى بلند را از يادها محو كرده است. (نهجآ‌البلاغه، خطبه211)

    امام علي (ع):کسي که به وقت ياري رهبرش در خواب باشد، با لگد دشمنش بيدار مي شود (غررالحکم،ص 422)

    دیدگاه


      #3
      پاسخ : نحوه استفاده از پروتکل 1wire (تک سیمه) بین دو میکرو

      نوشته اصلی توسط hamedtaran
      سلام دوستان.
      من میخوام همزمان با یک سنسور دمای ds18b20 و یک میکرو ارتباط تک سیمه برقرار کنم، ینی هم اطلاعاتو از سنسور بگیرم و هم اطلاعات از میکروی دیگه دریافت بشه، نحوه دریافت دما از سنسورو بلدم، ولی نحوه ارسال و دریافت بین دو میکرو با این پروتکلو بلد نیستم، و همچنین نمیدونم چجوری هر دو تارو (میکرو و سنسور) به میکروی گیرنده اطلاعات متصل کنم، آیا میکرو هم باید به همان پین که سنسور وصله وصل بشه یا میشه جداگانه وصل کرد و خوند؟
      من این کارو نکردم
      ولی بهترین کار این برنامه توی کتابخونه رو مطالعه کنید
      اونجور میتونید اطلاعات برقراری ارتباط و نحوه برنامه نویسیشو بدست بیارید
      یا اینکه با میکرو دوم مثل یک سنسور ds ... برخورد کنید
      به برنامه کتابخانه ds مراجعه کن ساده ست تقریبا
      _________________
      حالا برای اینکه کمی هم کلاس گذاشته باشم : من الان درگیر چند تا پروژه هستم
      ولی اگه بعدا وقت پیدا کردم برنامه شو مینویسم در اختیار همه قرار میدم
      خخخخخخخ
      باور نکنی یه وقت دوست من

      دیدگاه


        #4
        پاسخ : نحوه استفاده از پروتکل 1wire (تک سیمه) بین دو میکرو

        نوشته اصلی توسط AliRezaDAVE
        در مورد پروتکل تک سیمه که مطلب زیاده. کافیه سرچ بزنید یا اگر حوصله دارید دیتا شیت همین ds18b20 رو بخونید پروتکل رو توضیح داده.
        میتونید هر دو رو به یک پین متصل کنید. فقط باید طوری برنامه بنویسید که تداخل ایجاد نشه و زمانی که دارید با سنسور کار میکنید میکرو فرستنده pull up بشه. که مطمئن ترین راه اینه که یک سیم دیگه هم به میکرو دوم بکشید تا با استفاده از اون میکروفرستنده رو فعال و غیر فعال کنید. که وقتی شد دو تاسیم بهتره که از پروتکل های دیگه استفاده کنید. مثل i2c ولی در کل میشه فقط باید برنامه اتون دقیق باشه :smile:
        اتفاقا اینترنتو شخم زدم، ولی به جواب نرسیدم oo:
        ببینید، در مورد ارتباط ds با میکرو مشکلی ندارم، شما اصلا ds رو فراموش کن. مشکل من فرستادن دیتا از یک میکرو و دریافت توی میکروی دیگست، در مورد این هیچ مطلبی پیدا نکردم، اگه بشه توی دو خط دریافت کرد که عالی میشه، یک خط ds و یک خط میکروی فرستنده. میشه؟ چون توی کدویزارد فقط یک پین میشه انتخاب کرد :sad:
        اگه کسی کار کرده یا بلده دریغ نکنه :cry:
        انسانها 10 دسته اند: دسته اي که باينري ميدانند و دسته اي که باينري نميدانند!

        دیدگاه


          #5
          پاسخ : نحوه استفاده از پروتکل 1wire (تک سیمه) بین دو میکرو

          نوشته اصلی توسط hamedtaran
          اتفاقا اینترنتو شخم زدم، ولی به جواب نرسیدم oo:
          ببینید، در مورد ارتباط ds با میکرو مشکلی ندارم، شما اصلا ds رو فراموش کن. مشکل من فرستادن دیتا از یک میکرو و دریافت توی میکروی دیگست، در مورد این هیچ مطلبی پیدا نکردم، اگه بشه توی دو خط دریافت کرد که عالی میشه، یک خط ds و یک خط میکروی فرستنده. میشه؟ چون توی کدویزارد فقط یک پین میشه انتخاب کرد :sad:
          اگه کسی کار کرده یا بلده دریغ نکنه :cry:
          دقیقا متوجه منظورتون نشدم اما چرا اصرار دارید برای ارتباط بین دو میکرو از ارتباط تک سیمه استفاده کنید؟؟؟
          وقتی راحت از طریق i2c میتونید ارتباط برقرار کنید.
          ... و (بدانيد) گرفتن تصميمهاى محكم (براى رسيدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگين سازگار نيست و چه بسيار كه خواب شبانه تصميمهاى محكم روز را از ميان برده و تاريكيآ‌ها، خاطره همتآ‌هاى بلند را از يادها محو كرده است. (نهجآ‌البلاغه، خطبه211)

          امام علي (ع):کسي که به وقت ياري رهبرش در خواب باشد، با لگد دشمنش بيدار مي شود (غررالحکم،ص 422)

          دیدگاه


            #6
            پاسخ : نحوه استفاده از پروتکل 1wire (تک سیمه) بین دو میکرو

            نوشته اصلی توسط AliRezaDAVE
            دقیقا متوجه منظورتون نشدم اما چرا اصرار دارید برای ارتباط بین دو میکرو از ارتباط تک سیمه استفاده کنید؟؟؟
            وقتی راحت از طریق i2c میتونید ارتباط برقرار کنید.
            چون هیچ برنامه ای (با کدویژن) پیدا نکردم که بشه ATtiny رو به مثلا ATmega32 وصل کرد، چون tiny از i2c پشتیبانی میکنه، ولی از twi/i2c نه، چندتا پروژه هم پیدا کردم که میشه دوتا مگا 32 رو وصل کرد به هم، ولی بوسیله ی twi/i2c :cry:
            چون tiny فقط دو تا پروتکل i2c و 1wire پشتیبانی میکنه، از ارتباط 1wire بین دومیکرو که برنامه نمونه نتونستم پیدا کنم، حالا منتظرم تا دوستان بگن باید با i2c چیکار کنم. خواهش میکنم اگه کسی در مورد ارتباط دو میکروی tiny13 و mega32 از طریق i2c برنامه یا پروژه ای داره، اینجا بذاره، بدجور گیر کردم توش :-((
            انسانها 10 دسته اند: دسته اي که باينري ميدانند و دسته اي که باينري نميدانند!

            دیدگاه


              #7
              پاسخ : نحوه استفاده از پروتکل 1wire (تک سیمه) بین دو میکرو

              اگر چیز های زیادی نمی خواهی بفرستی چند پایه ی دو تا میکرو را به هم وصل کن و دیتا رد و بدل کن ولی راه بهتری که داره از SPI استفاده کن .
              باد می وزد ...
              میتوانی در مقابلش هم دیوار بسازی ، هم آسیاب بادی
              تصمیم با تو است ...

              دیدگاه


                #8
                پاسخ : نحوه استفاده از پروتکل 1wire (تک سیمه) بین دو میکرو

                tiny13 که پرتکل i2c رو پشتیبانی نمیکنه.
                اما میتونی با برنامه نویسی ساده شده اش رو پیاده سازی کنی. البته بهتره از tiny15 استفاده کنی
                به این صورت که از دو تا از پایه های میکرو استفاده کن و یکی رو همیشه یک نگه دار. توی tiny هم میتونی از یک وقفه استفاده کنی و هروقت این پایه صفر شد وارد روال وقفه بشه.
                بعد بیا توی روال وقفه از طریق هم دو تا سیم که یکی بشه کلاک و دیگری دیتا داده هات رو بفرست. مثلا یک بایت داده رو بفرست. بعدش دوباره همون پایه ای که کلاک بود و نقش اطلاع رسانی به میکرو tiny رو برعهده داشت رو دوباره یک کن تا ارسال اطلاعات بعدی.
                اگر هم خواستی یک سیمه کار رو انجام بدی راه ساده تری هم هست و اون اینه که اطلاعات ارسالی رو با استفاده از pwm بفرستی و پهنای پالس براساس اطلاعاتت تنظیم بشه.
                توی میکرو گیرنده که tiny15 هست از وقفه استفاده کنی و با تغییر حساسیت به لبه بالارونده و پایین رونده وپهنای پالس رو اندازه بگیری و اطلاعات رو ازش دریافت کنی :smile:
                ... و (بدانيد) گرفتن تصميمهاى محكم (براى رسيدن به اهداف بزرگ) با خوش گذرانى و سفرهآ‌هاى رنگين سازگار نيست و چه بسيار كه خواب شبانه تصميمهاى محكم روز را از ميان برده و تاريكيآ‌ها، خاطره همتآ‌هاى بلند را از يادها محو كرده است. (نهجآ‌البلاغه، خطبه211)

                امام علي (ع):کسي که به وقت ياري رهبرش در خواب باشد، با لگد دشمنش بيدار مي شود (غررالحکم،ص 422)

                دیدگاه


                  #9
                  پاسخ : نحوه استفاده از پروتکل 1wire (تک سیمه) بین دو میکرو

                  این چیزی که من می بینم اصلا پورت I2C نداره .
                  به نظرم از همان SPI استفاده کن اگر هم مینونی از یک میکرو ی دیگر به جزtiny13 استفاده کن .

                  باد می وزد ...
                  میتوانی در مقابلش هم دیوار بسازی ، هم آسیاب بادی
                  تصمیم با تو است ...

                  دیدگاه


                    #10
                    پاسخ : نحوه استفاده از پروتکل 1wire (تک سیمه) بین دو میکرو

                    نوشته اصلی توسط AliRezaDAVE
                    tiny13 که پرتکل i2c رو پشتیبانی نمیکنه.
                    اما میتونی با برنامه نویسی ساده شده اش رو پیاده سازی کنی. البته بهتره از tiny15 استفاده کنی
                    به این صورت که از دو تا از پایه های میکرو استفاده کن و یکی رو همیشه یک نگه دار. توی tiny هم میتونی از یک وقفه استفاده کنی و هروقت این پایه صفر شد وارد روال وقفه بشه.
                    بعد بیا توی روال وقفه از طریق هم دو تا سیم که یکی بشه کلاک و دیگری دیتا داده هات رو بفرست. مثلا یک بایت داده رو بفرست. بعدش دوباره همون پایه ای که کلاک بود و نقش اطلاع رسانی به میکرو tiny رو برعهده داشت رو دوباره یک کن تا ارسال اطلاعات بعدی.
                    اگر هم خواستی یک سیمه کار رو انجام بدی راه ساده تری هم هست و اون اینه که اطلاعات ارسالی رو با استفاده از pwm بفرستی و پهنای پالس براساس اطلاعاتت تنظیم بشه.
                    توی میکرو گیرنده که tiny15 هست از وقفه استفاده کنی و با تغییر حساسیت به لبه بالارونده و پایین رونده وپهنای پالس رو اندازه بگیری و اطلاعات رو ازش دریافت کنی :smile:
                    i2c که سخت افزاری نیس پایه داشته باشه، توی کدویزارد میتونین هر یک از پین هارو بعنوان i2c انتخاب کنین، توی تمام میکرو ها اینجوریه، در ضمن، tiny13 پروتکل spi نداره
                    انسانها 10 دسته اند: دسته اي که باينري ميدانند و دسته اي که باينري نميدانند!

                    دیدگاه

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