اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام دوستان
    من یه مشکل عجیبی دارم!
    من وقتی یه داده ای رو می فرستم، داده ارسال می شه و در فرستنده به جای اینتراپت TX اینتراپت RX فعال می شه!! یعنی اگه این رو 0b00100000 توی رجیستر Status بنویسم، INT میکرو یک نمیشه باید حتما 0b01000000 را بنویسم تا یک شه!!

    به نظرتون ماژول من مشکل نداره؟!!

    دیدگاه


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

      سلام دوستان
      من می خواستم با 4 تا nrf24 دو تا ریموت بسازم دو تا گیرنده دو تا فرستنده طوری که تداخل نداشته باشه می شه راه نمایی کنید
      قبلا با hm_tr ای کار رو کرده بودم خیلی خوب جواب داد
      اول یه کد رو می فرستادو اگه کد درست بود
      بقیه برنامه رو هم قبول میکرد
      حالا همین کار رو میخوام با nrf24 انجام بدم
      لطفا راهنمایی کنید
      گاهی نمی شود که نمی شود
      گاهی قرعه نگفته به نام تو می شود
      گاهی گدای گدایی و چاره چیست
      گاهی تمام شهر گدای تو میشود
      ای بنده بدان در این عالم ___هرچه خدا خواست همان می شور

      دیدگاه


        راه اندازی ماژول +nRF24L01

        ببخششید به سوال داشتم

        اگه گیرنده بخواد به صورت اتوماتیک کانال و ادرس فرستنده رو پیدا کنه باید چی کار کنیم؟؟؟

        دیدگاه


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

          نوشته اصلی توسط SHBnik
          ببخششید به سوال داشتم

          اگه گیرنده بخواد به صورت اتوماتیک کانال و ادرس فرستنده رو پیدا کنه باید چی کار کنیم؟؟؟
          باید به فرستنده بگید که همش یه عدد را بفرسته مثلا یک.بعد تک تک حالات را امتحان کنید و بگید زمانی کد از قبل تعیین شده که همون یکه را گرفتی را گرفتی کار را متوقف کن.
          در ضمن باید سرعت انتقال داده هم و قدرت سیگنال هم یکی باشه.یعنی در کل rf_setup---rf_chanel-----آدرس
          که با یه حساب کتاب میفهمید حالا حالا ها به نتیجه نمیرسید.فقط آدرسش 1078203909375 حالت ممکن داره. :eek:
          آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

          دیدگاه


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

            نوشته اصلی توسط pooyan-shafiei
            باید به فرستنده بگید که همش یه عدد را بفرسته مثلا یک.بعد تک تک حالات را امتحان کنید و بگید زمانی کد از قبل تعیین شده که همون یکه را گرفتی را گرفتی کار را متوقف کن.
            در ضمن باید سرعت انتقال داده هم و قدرت سیگنال هم یکی باشه.یعنی در کل rf_setup---rf_chanel-----آدرس
            که با یه حساب کتاب میفهمید حالا حالا ها به نتیجه نمیرسید.فقط آدرسش 1078203909375 حالت ممکن داره. :eek:
            تو کتاب خونه اول از همه مقدار ادرس رو می فرسته ما تو گیرنده نمی تونیم بگیم که اون مقدار رو بخون و ادرس خودت رو به اون تغییر بده؟؟؟؟؟

            دیدگاه


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

              نوشته اصلی توسط SHBnik
              تو کتاب خونه اول از همه مقدار ادرس رو می فرسته ما تو گیرنده نمی تونیم بگیم که اون مقدار رو بخون و ادرس خودت رو به اون تغییر بده؟؟؟؟؟
              وقتی گیرنده آدرس فرستنده را نداره چطوری میخواد ازش اطلاعات بگیره؟؟
              شما آدرس این کتابخونه را میخواید که آقای ایمانی فر نوشتند؟
              آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

              دیدگاه


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

                سلام
                من تا حالا با یک بایت کار میکردم
                یعنی فقط با payload 1 داده میفرستادم
                حالا الان لازمه که 3 تا داده یک بایتی رو ارسال کنم
                یکمی گیج شدم ، آیا باید اینجوری بنویسم:
                کد:
                Send_Data(3 , &data1);
                حالا مثلا 3 تا متغیر x و y و z رو چجوری بهش معرفی کنم؟؟؟
                میدونم یکمی مسخرس ولی نمیدونم دیگه :biggrin:
                از سختی نترس! این سختی هاست که جایگاه و مقام انسان را بالا میبرد...

                دیدگاه


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

                  سلام.
                  اتفاقا همین چند روز پیش من هم درگیر این ماجرا بودم. شما به تعداد اطلاعات مورد نیازتون، متغیر آرایه ای تعریف کنین. اگر قراره 6 بایت دیتا بفرستین، متغیر
                  [code=c]
                  char data[6];
                  [/code]
                  رو تعریف کنین.
                  دیتای ارسالی رو هم اگر به این شکل ارسال کنین؛ به ترتیب از 0 شروع میکنه به فرستادن:

                  [code=c]
                  Send_Data(6 , &data[0]);
                  [/code]
                  اون طرف هم تو گیرنده به ترتیب تو payload های 1 و2 و... اطلاعاتت رو میتونی به همون ترتیب بخونی. (data ی 0 میره تو payload شماره 1 و...)

                  دیدگاه


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

                    نوشته اصلی توسط شاهرخ مستقیمی
                    سلام.
                    اتفاقا همین چند روز پیش من هم درگیر این ماجرا بودم. شما به تعداد اطلاعات مورد نیازتون، متغیر آرایه ای تعریف کنین. اگر قراره 6 بایت دیتا بفرستین، متغیر
                    [code=c]
                    char data[6];
                    [/code]
                    رو تعریف کنین.
                    دیتای ارسالی رو هم اگر به این شکل ارسال کنین؛ به ترتیب از 0 شروع میکنه به فرستادن:

                    [code=c]
                    Send_Data(6 , &data[0]);
                    [/code]
                    اون طرف هم تو گیرنده به ترتیب تو payload های 1 و2 و... اطلاعاتت رو میتونی به همون ترتیب بخونی. (data ی 0 میره تو payload شماره 1 و...)
                    واقعا دمت گرم
                    تقریبا چیزی بود که حدث میزدم
                    خیلی خیلی لطف کردی
                    از سختی نترس! این سختی هاست که جایگاه و مقام انسان را بالا میبرد...

                    دیدگاه


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

                      دوستان یه سوال، تا حالا کسی از مدهای Standby استفاده کرده؟ میشه ماژول بره تو حالت Standby ، ولی به محض دریافت سیگنال، از Standby خارج بشه؟
                      تو کجای این فایل هدر،میشه سرعت انتقال و توان ارسالی رو کنترل کرد؟ و از کجا میشه ماژول رو وارد یکی از مدهای Standby-II یا Standby-I کرد؟
                      ممنونم

                      اضافه شده در تاریخ :
                      دوستان کسی نظری نداشت؟
                      راستی، این فایل فوت پرینت ماژول NRF هست. نمیدونم قبلا کسی کار کرده یا نه؟ خیلی هم پیچیده نیست؛ اما شاید به درد کسی بخوره...
                      NRF_footprint

                      اضافه شده در تاریخ :
                      یکی نیست جواب ما رو بده؟
                      یه سوال دیگه؛ با همین فایل هدر،اگر بخواییم 3 تا NRF رو با هم شبکه کنیم، یکی Master و دوتای دیگه هم Slave،کجای فایل هدر باید آدرس رو تغییر داد؟ تو کدوم طرف؟ موقع صدا کردن یکی از Slaveها باید چیکار کرد؟

                      دیدگاه


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

                        نوشته اصلی توسط شاهرخ مستقیمی
                        تو کجای این فایل هدر،میشه سرعت انتقال و توان ارسالی رو کنترل کرد؟
                        سلام
                        تغییر سرعت و قدرت
                        توی خط 286 مقداری که در رجیستر RF_SETUP نوشته میشه رو نوشته. خط 287 میگه که مقداری که توی خط 286 نوشته رو بریز تو RF_SETUP. البته شاید اینهارو میدونستین. حالا پس اگه مقدار مشخص شده در خط 286 رو طبق دیتاشیت تغییر بدید میتونید به سرعت و قدرت های متفاوت دست پیدا کنید.

                        نوشته اصلی توسط شاهرخ مستقیمی
                        با همین فایل هدر،اگر بخواییم 3 تا NRF رو با هم شبکه کنیم، یکی Master و دوتای دیگه هم Slave،کجای فایل هدر باید آدرس رو تغییر داد؟ تو کدوم طرف؟ موقع صدا کردن یکی از Slaveها باید چیکار کرد؟
                        داشتن یک Master و چند Slave

                        خط 289 به رجیستر RX_ADDR_P0 مقدار میده و مقدار آدرس رو قبلاً توی خط 64 تعیین کردیم. خط 291 هم همون آدرس که توی خط 64 نوشتیم رو می ریزه توی TX_ADDR.

                        حالا مثلاً میخوایم یک Master داشته باشیم و دو تا Slave. من خودم این کارو کردم که اومدم آدرس Slave ها رو توی برنامه master قرار دادم و بعدش به master گفتم که یک بار بیا آدرس خودت رو مثل آدرس slave شماره یک قرار بده و دیتا رو بفرست و یک بار هم بیا آدرست رو مثل آدرس slave شماره دو قرار بده و دیتا بفرست.

                        این کد ها رو من به کتابخونه nRF اضافه کردم که میشه دو تا Slave داشت:

                        کد:
                        flash unsigned char Base_Addrs1[5]={0x00,0x01,0x03,0x07,0x00};
                        flash unsigned char Base_Addrs2[5]={0x00,0xA1,0x53,0x61,0x50};
                        
                        void Set_Addrs(void)
                        {  int i;
                          
                          Set_Reg(R_REGISTER); 
                          Command_Reg&=0xFD;
                          Set_Reg(W_REGISTER);
                          
                          if(Dastgah==1)
                          {  
                            for(i=4;i>=0;i--)  // avval bayad byte bi arzesh neveshte beshe
                            {
                              Base_Addrs[i]=Base_Addrs1[i];
                              Temp_Addrs[i]=Base_Addrs1[i];
                            }
                          }
                          else
                          {  
                            for(i=4;i>=0;i--)  // avval bayad byte bi arzesh neveshte beshe
                            {
                              Base_Addrs[i]=Base_Addrs2[i];
                              Temp_Addrs[i]=Base_Addrs2[i];
                            }
                          }
                          Set_Reg(0x2A);  // RX ADDR P0
                          Set_Reg(0x30);  // TX ADDR
                          delay_us(500);
                          
                        }
                        بعدش میام تو برنامه اصلی میگم یه بار Dastgah=1 و دیتا رو بخون و یه بار میگم Dastgah=2 و دیتا رو بخون.

                        شما میتونید با همین کار هر کدوم از Slave ها رو صدا بزنید و بعدش Slave مورد نظر در صورت فعال بودن قابلیت ارسال ACK ، داده مورد نظر رو به صورت ACK به Master ارسال کنه.

                        دیدگاه


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

                          سلام به همه ی دوستان عزیز
                          این مازول ها اگرواقعا تایوانی باشه خوبه وخیلی عالی کارمی کنه ولی متاسفانه توی بازار پرشده از ماژول های چینی بدرد نخور البته بازار اصفهان حداقل من کامل اطلاع دارم
                          الان فروشگاه
                          http://eshop.eca.ir/%D9%85%D8%A7%DA%98%D9%88%D9%84-%D9%87%D8%A7%DB%8C-ism-band/3908-%D9%85%D8%A7%DA%98%D9%88%D9%84-nrf24l01palna-%D8%AA%D8%A7%DB%8C%D9%88%D8%A7%D9%86%DB%8C-%D8%AA%D9%82%D9%88%DB%8C%D8%AA-%D8%B4%D8%AF%D9%87-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D8%A2%D9%86%D8%AA%D9%86-%D8%A8%D8%B1%D8%AF-1km.html

                          این ماژول موجود کرده باز ولی شبیه این ماژول های جدیدی هست که من خریدم از اصفهان وخیلی شیک ومجلسی 70تومن ضرر کردم چون 30متر بیشتر خط ندادند روی دستگاه های من !!!!!!! من قبلا از خودسایت ماژول های اصلی گرفته بودم 1کیلو متر انتن گرفته بودم ازشون ولی این ماژول های جدید خیلی خیلی ....
                          کسی هست این خریده باشه؟! ویااینکه مسولان محترم سایت خودشون چک کردند ؟! اقای بلورچیان شما به این ماژول های جدید مطئن هستید؟!
                          Ali Reza Tarkesh Esfahani

                          Yahoo: amt_1390@yahoo.com

                          دیدگاه


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

                            سلام

                            شما یک کیلومتر در فضای باز جواب گرفتید دیگه oo:

                            مال ما که مال این حرفا نیست یک کیلومتر جواب بده :biggrin:

                            من با ماژول کوچیک هاش که مثلاً باید 100 متر جواب بده رو توی 15 متری که فرستنده داخل اتاق با در باز قرار گرفته بود و گیرنده توی حیاط بود و البته در خونه بسته بود نمی تونستم جواب بگیرم. مسئله ی اذیت کننده ای که باهاش برخورد کردم این بود که ممکن بود در یک فاصله ای مثلاً 10 متر ، دیتا از فرستنده به گیرنده به خوبی ارسال بشه اما اگر گیرنده بخواد دیتای ACK به فرستنده برگردونه ، این دیتا از دست بره. حالا نمیدونم مشکل از منه یا از ماژوله؟ دوستان اگر راهنمایی در این باره دارند دریغ نفرمایند.

                            من میخواستم برای یک دستگاهی در داخل منزل از ماژول کوچیکش استفاده کنم که با این وضعیت مجبورم از دو تا ماژول های 30 هزار تومانی استفاده کنم به جای دو ماژول 6 هزار تومانی :cry:

                            دیدگاه


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

                              از ترکیب اینها هم میتونید استفاده کنید.یعنی یه دونه تقویت شده و یه معمولی.
                              آیا جهالت نیست که آدمی ساعات شیرین امروز را فدای روزهای آینده کند؟

                              دیدگاه


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

                                نوشته اصلی توسط pooyan-shafiei
                                از ترکیب اینها هم میتونید استفاده کنید.یعنی یه دونه تقویت شده و یه معمولی.
                                شما امتحان کردید که اگر از ترکیب این ها استفاده کنیم دیتای ACK دریافت میشه توسط فرستنده؟ چون من امتحان کردم و در صورت استفاده ترکیبی دیتای ACK رو نمی گیره.

                                دیدگاه

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