اطلاعیه

Collapse
No announcement yet.

[آموزش]راه اندازی ماژول +nRF24L01

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

    پاسخ : راه اندازی ماژول +nRF24L01

    میشه فرکانس این میکرو رو عوض کرد مثلا کرد 14.7456MHZ یا 11.0592MHZ

    دیدگاه


      پاسخ : راه اندازی ماژول +nRF24L01

      من فرکانس 8MHZ داخلی رو به 14.7456MHZ خارجی تغییر دادم و جواب داد مشکلی نداره؟

      دیدگاه


        پاسخ : راه اندازی ماژول +nRF24L01

        سلام استاید . میخواستم بدونم کد زیر در نونه ه ای که خود سایت بسکام گذاشته واسه nrf چه کاری انجام میده؟؟

        کد:
         Temp = B_bytes(1) And &B01110000

        دیدگاه


          پاسخ : راه اندازی ماژول +nRF24L01

          نوشته اصلی توسط محمدصادق رستمی
          سلام
          شما اول باید یه چیزی رو مشخص بکنی:
          در دفعه اول آیا فرستنده و گیرنده در یک فرکانس معینی قرار دارن؟
          یا اینکه فرستنده باید ابتدا گیرنده رو پیدا کنه و بعد بهش بگه که برو روی فلان فرکانس
          این سنکرون سازی اولیه بسیار مهمه
          و باید بدونیم دقیقا در چه وضعیتی قرار دارن؟
          :read:
          سلام
          به صورت پیش فرض ماژول روی کانال 1 خودش قرار داره و روی همون کانال هم ارسال و دریافت داره

          دیدگاه


            پاسخ : راه اندازی ماژول +nRF24L01

            مشکل قبلیم حل شد . ببینید من میخوام دیتاریت رو از 2 مگا به 1 مگا تغییر بدم. اینطور که فهمیدم در خط زیر میشود کانفیگ کرد
            D_bytes(1) = Write_reg + Rf_setup
            D_bytes(2) = &H0F
            حالا چطوری؟؟ چیو تغییر بدم

            دیدگاه


              پاسخ : راه اندازی ماژول +nRF24L01

              نوشته اصلی توسط chakavak_1989
              سلام
              به صورت پیش فرض ماژول روی کانال 1 خودش قرار داره و روی همون کانال هم ارسال و دریافت داره
              بنابراین دیگه مشکلی وجود نداره
              فرض کن دو تا سیستم داریم : S1, S2
              سیستم 1 اول فرستنده ست و سیستم 2 گیرنده
              و قراره که سیستم 1 به سیستم 2 کانالش رو خبر بده
              اگر فرستنده رو با T و گیرنده رو با R و زمان رو با t نشون بدیم
              برای اینکه یک وضعیت مطمئن داشته باشیم
              میتونی به صورت زیر عمل بکنی:

              t1:
              S1:T , S2:R
              ارسال کد کانال توسط سیستم 1 و دریافت توسط سیستم 2

              t2:
              S1:R , S2:T
              تغییر وضعیت سیستم ها
              سیستم 1 گیرنده و سیستم 2 فرستنده میشود

              t3:
              S1:R , S2:T
              سیستم 2 اعلام میکند که کانال مورد نظر را دریافت کرده
              و سیستم 1 نیز پیام سیستم 2 را دریافت میکند

              t4:
              S1:R , S2:T
              سیستم 1 و 2 کانال مورد نظر را اعمال میکنند

              t5:
              S1:T , S2:R
              سیستم 1 به حالت فرستنده و سیستم 2 به حالت گیرنده تغییر وضعیت میدهند

              t6:
              S1:T , S2:R
              سیستم 1 بر روی کانال جدید داده ها را ارسال میکند
              الی آخر ...
              1: اللهم صل علی محمد و آل محمد و عجل فرجهم و ...
              2: دانش بهتره یا ثروت؟ بدون شعور هیچکدوم!
              3: دلا معاش چنان کن که گر بلغزد پای *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

              دیدگاه


                پاسخ : راه اندازی ماژول +nRF24L01

                نوشته اصلی توسط محمدصادق رستمی


                t3:
                S1:R , S2:T
                سیستم 2 اعلام میکند که کانال مورد نظر را دریافت کرده
                و سیستم 1 نیز پیام سیستم 2 را دریافت میکند

                سلام
                ممنون از راهنماییتون
                من یه خرده تو برنامه نویسی ضعیفم
                برمته نویسشم یه خرده توضیح بدین ممنون میشم چنتا سوال هم دارم
                این ماژول خودش قابلیت ACK داره آیا لازمه که قسمت t3 حتما تو برنامم باشه؟
                من می خوام اطلاعات تنظیم کانال رو یک بار بفرستم و در صورت خاموش روشن شدن ماژول از روی همین اطلاعات تنظیم کانال کارشو ادامه بده
                چیزی که تو فکرمه اینه که این اطلاعات باید تو eeprom ذخیره بشه که از بین نره درسته؟
                یه شرطی هم باید اول برنامه باشه که چک بشه برای اولین بار با کانال پیش فرض بیاد بالا از اون به بعد با کانال تنظیم شده
                درست میگم؟

                دیدگاه


                  پاسخ : راه اندازی ماژول +nRF24L01

                  نوشته اصلی توسط chakavak_1989
                  من یه خرده تو برنامه نویسی ضعیفم
                  برنامه نویسشم یه خرده توضیح بدین ممنون میشم
                  چنتا سوال هم دارم
                  این ماژول خودش قابلیت ACK داره آیا لازمه که قسمت t3 حتما تو برنامم باشه؟
                  من می خوام اطلاعات تنظیم کانال رو یک بار بفرستم و در صورت خاموش روشن شدن ماژول از روی همین اطلاعات تنظیم کانال کارشو ادامه بده
                  چیزی که تو فکرمه اینه که این اطلاعات باید تو eeprom ذخیره بشه که از بین نره درسته؟
                  یه شرطی هم باید اول برنامه باشه که چک بشه برای اولین بار با کانال پیش فرض بیاد بالا از اون به بعد با کانال تنظیم شده
                  درست میگم؟
                  انشالله برنامه نویسیت هم آروم آروم قوی میشه
                  در مورد توضیح برنامه نویسی، بذار ابتدا دقیقا مشخص بشه که چه کاری میخواهیم بکنیم
                  بعد باید مرحله به مرحله پیش بری :read:
                  در مورد ACK کاملا درست میفرمایید
                  ماژول خودش اینکار رو انجام میده
                  بنابراین اون قسمتی که اشاره کردی (t3) نیازی نیست.
                  در مورد ذخیره اطلاعات بر روی eeprom هم درست میگی
                  کانال مورد نظر رو بر روی اون ذخیره کن
                  و هر بار که سیستم روشن میشه بره کانال رو بخونه و خودشو تنظیم کنه
                  در مورد تنظیم اولیه هم درسته
                  بازهم میتونی از eeprom استفاده کنی
                  ابتدا یک متغیر تعریف میکنی و مقدارشو مثلا میذاری 0
                  برای اولین بار که دستگاه روشن شد این 0 رو 1 میکنی
                  هر بار که دستگاه روشن میشه قبل از ارسال میره چک میکنه
                  اگه 0 بود یعنی اولین باره که روشن شده
                  اگه 1 بود یعنی غیر از اولین باره و میره تنظیمات کانال ر انجام میده...
                  :nerd:
                  1: اللهم صل علی محمد و آل محمد و عجل فرجهم و ...
                  2: دانش بهتره یا ثروت؟ بدون شعور هیچکدوم!
                  3: دلا معاش چنان کن که گر بلغزد پای *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

                  دیدگاه


                    پاسخ : راه اندازی ماژول +nRF24L01

                    ولی من فکر میکنم اون قسمت رو نباید حذف کنید.
                    ماژول تشخیص میده که دیتا ارسال نشده و باید دوباره ارسال بشه ولی این نشاندهنده این نیست که دیتا حتما رسیده. ما تعداد تعریف میکنیم مثلا 10 بار. ده بار ارسال انجام میده در صورت بروز خطا. حالا اگه ده بارش هم نرسید؟؟؟ البته فکر میکنم ماژول این قابلیت رو داره که اگر یه بسته ارسال نشد بشه چک کرد و مطمئن شد. ولی کتابخونه ای که من تو این تاپیک دیدم این قابلیت رو نداشت.
                    بهتره اگر از این کتابخونه استفاده میکنید خودتون چک بکنید ببینید دیتا به مقصد رسیده یا نه. ماژول به اون تعداد که گفتیم(حداکثر) ارسال میکنه. اگر تعداد ارسالها تموم بشه و دیتا همچنان کامل نرسیده باشه ما فکر میکنیم رسیده ولی نرسیده.
                    حیف از من خسته- حیف از همین چن خط
                    به اصل و به ذات و- به باعثت لعنت

                    K.Show

                    دیدگاه


                      پاسخ : راه اندازی ماژول +nRF24L01

                      نوشته اصلی توسط محمدصادق رستمی
                      انشالله برنامه نویسیت هم آروم آروم قوی میشه
                      در مورد توضیح برنامه نویسی، بذار ابتدا دقیقا مشخص بشه که چه کاری میخواهیم بکنیم
                      بعد باید مرحله به مرحله پیش بری :read:
                      در مورد ACK کاملا درست میفرمایید
                      ماژول خودش اینکار رو انجام میده
                      بنابراین اون قسمتی که اشاره کردی (t3) نیازی نیست.
                      در مورد ذخیره اطلاعات بر روی eeprom هم درست میگی
                      کانال مورد نظر رو بر روی اون ذخیره کن
                      و هر بار که سیستم روشن میشه بره کانال رو بخونه و خودشو تنظیم کنه
                      در مورد تنظیم اولیه هم درسته
                      بازهم میتونی از eeprom استفاده کنی
                      ابتدا یک متغیر تعریف میکنی و مقدارشو مثلا میذاری 0
                      برای اولین بار که دستگاه روشن شد این 0 رو 1 میکنی
                      هر بار که دستگاه روشن میشه قبل از ارسال میره چک میکنه
                      اگه 0 بود یعنی اولین باره که روشن شده
                      اگه 1 بود یعنی غیر از اولین باره و میره تنظیمات کانال ر انجام میده...
                      :nerd:
                      خیلی ممنون
                      الان خیالم راحت شد لااقل تخیلاتم درست بوده
                      باید ببنیم تو فاز برنامه نویسی چه جوری پیش میرم
                      اون شرط تنظیم اولیه که نباید توی حلقه while باشه درست میگم؟
                      من واسه نوشتنش از این کتابخونه می خوام استفاده کنم
                      [ftp=ftp://www.knowledgeplus.ir/contest/1393_06_download/lang/Fa.aspx]http://www.knowledgeplus.ir/contest/1393_06_download/lang/Fa.aspx[/ftp]
                      (طرح دومیه) خوندمش به نظرم دقیق اومد
                      چیزهایی که میخواستم تنظیم کنم و تغییر بدم یا چک کنم توابعش بود
                      تو پی دی افش توضیحات خوبی داره و کدهاشم کامنت داره
                      فقط میمونه استفاده کردن از این هدر :nerd:

                      دیدگاه


                        پاسخ : راه اندازی ماژول +nRF24L01

                        نوشته اصلی توسط Mahdi_Vaziri
                        ولی من فکر میکنم اون قسمت رو نباید حذف کنید.
                        ماژول تشخیص میده که دیتا ارسال نشده و باید دوباره ارسال بشه ولی این نشاندهنده این نیست که دیتا حتما رسیده. ما تعداد تعریف میکنیم مثلا 10 بار. ده بار ارسال انجام میده در صورت بروز خطا. حالا اگه ده بارش هم نرسید؟؟؟ البته فکر میکنم ماژول این قابلیت رو داره که اگر یه بسته ارسال نشد بشه چک کرد و مطمئن شد. ولی کتابخونه ای که من تو این تاپیک دیدم این قابلیت رو نداشت.
                        بهتره اگر از این کتابخونه استفاده میکنید خودتون چک بکنید ببینید دیتا به مقصد رسیده یا نه. ماژول به اون تعداد که گفتیم(حداکثر) ارسال میکنه. اگر تعداد ارسالها تموم بشه و دیتا همچنان کامل نرسیده باشه ما فکر میکنیم رسیده ولی نرسیده.
                        از یه جهت کاملا درست میفرمایید
                        کاراز محکم کاری عیب نمیکنه
                        مخصوصا اگه داده ها اهمیت دارن
                        و امنیت رد و بدل کردن برامون مهمه
                        و به سرعت خیلی بالا هم نیازی نیست
                        خیلی خوبه که تمام این موارد رعایت شه
                        در مورد چک کردن داده ها
                        در دیتاشیت یک قسمت داره بنام
                        ShockBurst
                        اگه از اون حالت استفاده بشه
                        خودش به صورت سخت افزاری (از دید ما البته) موارد رو چک میکنه
                        یک بازه زمانی تعریف میکنه
                        و در اون بازه زمانی چک میکنه که داده انتقال پیدا کرده یا نه
                        و داده ها زمانی برای استفاده ما قرار میگیرن که انتقال انجام بشه
                        و زمانی که خیالش از ACK راحت میشه
                        یکی از بیت های یکی از رجیسترها رو تغییر میده (در دیتاشیت کامل توضیح داده)
                        :read:
                        ...
                        توضیحاتی که دادم در دیتاشیت به صورت زیره:
                        کد:
                        An nRF24L01 configured as PTX with Enhanced ShockBurst™ enabled, will use the
                        ShockBurst™ feature to send a packet whenever the microcontroller wants to. After
                        the packet has been transmitted, nRF24L01 will switch on its receiver and expect an
                        acknowledgement to arrive from the terminating part. If this acknowledgement fails to
                        arrive, nRF24L01 will retransmit the same packet until it receives an
                        acknowledgement or the number of retries exceeds the number of allowed retries
                        given in the SETUP_RETR_ARC register. If the number of retries exceeds the
                        number of allowed retries, this will be showed by the STATUS register bit MAX_RT
                        which gives an interrupt.
                        Whenever an acknowledgement is received by an nRF24L01 it will consider the last
                        transmitted packet as delivered. It will then be cleared from the TX FIFO, and the
                        TX_DS IRQ source will be set high.

                        اضافه شده در تاریخ :
                        نوشته اصلی توسط chakavak_1989
                        الان خیالم راحت شد لااقل تخیلاتم درست بوده
                        ...
                        اون شرط تنظیم اولیه که نباید توی حلقه while باشه درست میگم؟
                        ...
                        من واسه نوشتنش از این کتابخونه می خوام استفاده کنم
                        برای اینکه تخیلاتمون درست تر باشه
                        بهتره که معمولا دیتاشیت رو خوب بخونیم :rolleyes:

                        حلقه while برای تکرار مداوم استفاده میشه
                        و شما فقط میخوای فقط یه بار در زمان روشن شدن چک بکنی
                        بنابراین نیازی نیست اونجا باشه

                        آدرسی که نوشتید رو کلیک کردم
                        اما یوزر پس میخواد

                        ...
                        :read:
                        1: اللهم صل علی محمد و آل محمد و عجل فرجهم و ...
                        2: دانش بهتره یا ثروت؟ بدون شعور هیچکدوم!
                        3: دلا معاش چنان کن که گر بلغزد پای *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

                        دیدگاه


                          پاسخ : راه اندازی ماژول +nRF24L01

                          نوشته اصلی توسط محمدصادق رستمی
                          برای اینکه تخیلاتمون درست تر باشه
                          بهتره که معمولا دیتاشیت رو خوب بخونیم :rolleyes:

                          حلقه while برای تکرار مداوم استفاده میشه
                          و شما فقط میخوای فقط یه بار در زمان روشن شدن چک بکنی
                          بنابراین نیازی نیست اونجا باشه

                          آدرسی که نوشتید رو کلیک کردم
                          اما یوزر پس میخواد

                          ...
                          :read:
                          اینجوری نبودا
                          من قبلا میرفتم باز بود
                          من نمیدونم اینجا چه جوری میشه فایل پلود کرد
                          ایمیل بدین بفرستم

                          اضافه شده در تاریخ :
                          فک کنم اینجری باز بشه :biggrin:

                          http://www.knowledgeplus.ir/contest/...d/lang/Fa.aspx


                          اضافه شده در تاریخ :
                          بازم سلام
                          اگه هدری که لینکشو گذاشتم خوندین من چندتا سوال دارم
                          توی فایل MY IO همه پایه های ماژول رو مشخص کرده ولی IRQ نیست این یعنی کلا این پایه ماژول وصل نیست؟
                          وقفه رو باید تو برنامم فعال کنم؟
                          فقط باید هدر NRF24L01+,SPI, MY IO به برنامم اضافه کنم؟
                          من یه برنامه ارسال و دریافت ساده نوشتم موقع کامپایل 17تا ارور از هدر nrf میگیره چرا؟

                          دیدگاه


                            پاسخ : راه اندازی ماژول +nRF24L01

                            ببینید من میخوام دیتاریت رو از 2 مگا به 1 مگا تغییر بدم در بسکام. اینطور که فهمیدم در خط زیر میشود کانفیگ کرد
                            D_bytes(1) = Write_reg + Rf_setup
                            D_bytes(2) = &H0F
                            حالا چطوری؟؟ چیو تغییر بدم

                            دیدگاه


                              پاسخ : راه اندازی ماژول +nRF24L01

                              چرا کسی اینجا جوابمو نمیده؟

                              دیدگاه


                                پاسخ : راه اندازی ماژول +nRF24L01

                                نوشته اصلی توسط chakavak_1989
                                اگه هدری که لینکشو گذاشتم خوندین من چندتا سوال دارم
                                1- توی فایل MY_IO همه پایه های ماژول رو مشخص کرده ولی IRQ نیست این یعنی کلا این پایه ماژول وصل نیست؟
                                2- وقفه رو باید تو برنامم فعال کنم؟
                                3- فقط باید هدر NRF24L01+,SPI, MY_IO به برنامم اضافه کنم؟
                                4- من یه برنامه ارسال و دریافت ساده نوشتم موقع کامپایل 17تا ارور از هدر nrf میگیره چرا؟
                                قبل از هرچیز شما باید اون فایل پی دی اف رو خوب بخونی :read:
                                1: در مورد این پایه به توضیحات فایل PDF ای که گذاشته رجوع کن
                                استفاده از این پایه دلبخواهه
                                شاید استفاده کرده باشه شاید نه.
                                2: وقفه رو باید زمانی فعال کنی که بخوای ازش استفاده کنی
                                این ماژول این قابلیت رو داره که زمانی که داده ای رو دریافت/ارسال کرد
                                بتونی با وقفه از این وضعیت (دریافت یا ارسال) باخبر بشی
                                میتونی فعال کنی میتونی نکنی
                                3: هدرهایی رو باید اضافه کنی که ازشون استفاده میکنی
                                به نظر میرسه هر سه تا هدر فوق مورد استفاده هستن
                                4: باید بدونیم ارورها چی هستن
                                شاید بشه کمک کرد
                                ...
                                :read:
                                1: اللهم صل علی محمد و آل محمد و عجل فرجهم و ...
                                2: دانش بهتره یا ثروت؟ بدون شعور هیچکدوم!
                                3: دلا معاش چنان کن که گر بلغزد پای *** فرشته‌ات به دو دست دعا نگه دارد (حافظ)

                                دیدگاه

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