یکی از ماژول هایی که اخیرا در بین علاقه مندان به ارتباط بی سیم محبوبیت پیدا کرده است ماژول nrf24l01 است . با استفاده از این ماژول هم می توانید اطلاعات را ارسال و هم دریافت کنید . در واقع این ماژول یک ترانسیور است که با استفاده از میکروکنترلر هم در مد گیرنده و هم در مد فرستنده پیکربندی می شود.ارتباط ماژول nrf24l01 با میکروکنترلر از طریق واسط SPI صورت می گیرد.انواع مختلفی از این ماژول در بازار وجود دارد که هرکدام دارای ویژگی خاص خود است اما به لحاظ راه اندازی همه آنها به یک روش راه اندازی می شوند.
۱-نوع بدون آنتن :
این نوع از ماژول نسبت به نوع آنتن دار آن دارای قیمت پایین تری است اما برد آن بسیار کمتر از نوع آنتن دار آن است .(در بهترین حالت ۱۰۰ متر )
۲- نوع آنتن دار :
این نوع از ماژول با عبارت های PA و LNA همراه است . عبارت LNA مخفف عبارت Low Noise Amplifier و PA مخفف عبارت Power Amplifier هستند . و برای محیط های پر نویز و یا برای مسافت های طولانی ، تا یک کیلومتر مورد استفاده قرار می گیرد.
– ترتیب پایه های ماژول nrf24l01 به شکل زیر است :
۱-GND : پین گراند
۲-VCC: تغذیه 3.3V
۳-CE :پایه فعال کننده IC و به دلخواه به یکی از پایه های آردوینو وصل می شود.
۴- CSN :پین انتخاب ماژول که به یکی از پایه های آردوینو وصل می شود.
۵- SCK :پین کلاک ماژول که به پایه ۱۳ آردوینو وصل می شود.
۶- MOSI :پین کلاک ماژول که به پایه ۱۱ آردوینو وصل می شود.
۷- MISO :پین کلاک ماژول که به پایه ۱۲ آردوینو وصل می شود.
۸- IRQ :پین وقفه دریافت و ارسال اطلاعات که به یکی از پایه های آردوینو وصل می شود.
همان طور که گفته شد این ماژول هم می تواند در مد گیرنده کار کند و هم در حالت فرستنده .همچنین نوع ماژول (آنتن دار یا بدون آنتن )نیز برای برقراری ارتباط مهم نیست و با هر جفت از این ماژول ها می توانید اطلاعات را به صورت بیسیم ردوبدل کنید.در ادامه این آموزش نحوه ارتباط و انتقال اطلاعات را با استفاده از آردوینو توضیح خواهیم داد.
برای راه اندازی ماژول nrf24l01 با استفاده از آردوینو قطعات زیر مورد نیاز است:
– دو عدد ماژول nrf24l01
-دوعدد برد آردوینو
-یک عدد led
– مقاومت
-خازن
-کلید
نحوه اتصال ماژول nrf24l01 به برد آردوینو به شکل زیر است.
- GND->GND
- 3.3V->3.3V
- CE->PIN9
- CSN->PIN10
- SCK->PIN13
- MOSI->PIN11
- MISO->PIN12
برای راه اندازی ماژول nrf24l01 با استفاده از آردوینو ابتدا کتابخانه این ماژول را از آدرس زیر دانلود کنید.
https://github.com/maniacbug/RF24/archive/master.zip
پس از نصب کتابخانه سخت افزار فرستنده و گیرنده را به شکل زیر ببندید.
-مدار فرستنده:
مدار فوق علاوه بر فرستنده دارای یک کلید فشاری است که با فشردن آن یک LED در سمت گیرنده روشن می شود.
-مدار گیرنده راه اندازی ماژول nrf24l01 با استفاده از آردوینو :
-کدهای سمت فرستنده :
#include<SPI.h> #include<RF24.h> #include<NRF24L01.h> #include<stdio.h> const uint64_t pipe=1; RF24 radio(9,10 ); char data; void setup() { Serial.begin(9600); radio.begin(); radio.setAutoAck(false); radio.setDataRate(RF24_250KBPS); radio.openWritingPipe(pipe); radio.setPALevel(RF24_PA_HIGH); radio.printDetails(); } void loop() { if(digitalRead(7)) { data='R'; } else { data='S'; } radio.write(&data,1); delay(100); }
– کدهای گیرنده راه اندازی ماژول nrf24l01 با استفاده از آردوینو:
#include<SPI.h> #include<RF24.h> #include<NRF24L01.h> const uint64_t pipe=1; RF24 radio(9,10); char data; void setup() { pinMode(7,OUTPUT); Serial.begin(9600); radio.begin(); radio.setDataRate(RF24_250KBPS); radio.setAutoAck(false); radio.openReadingPipe(0,pipe); radio.setPALevel(RF24_PA_HIGH); radio.printDetails(); radio.startListening(); } void loop() { while(radio.available()){ radio.read(&data,1); Serial.println(data); if(data=='S') digitalWrite(7,HIGH); else if(data=='R') digitalWrite(7,LOW); } }
-آزمایش برنامه راه اندازی ماژول nrf24l01 با استفاده از آردوینو:
مشاهده خواهید کرد که با فشردن کلید و رها کردن آن در سمت فرستنده ، led سمت گیرنده روشن و خاموش می شود.
دانلود فایل های برنامه و فرستنده به همراه کتابخانه NRF24L01
پسورد :www.farselectronic.ir
سلام. این ماژول های nrf24l01قابلیت اتصال همزمان به 2تابرد را دارند یعنی میشه دران واحد به 2تا برد اردوینو وصل بشند؟
سلام
بله امکانش هست
خوب بود
سلامخسته نباشید اگه بخوایم با استفاده با گیرنده و ولومنورال ای دی رو کم و زیاد کنیم باید چه تغییراتی رودر برنامه ایجاد کنم؟؟؟
سلام
توی تمام سایتا و همچنین دیتا شیت ماژول NRF24l01 ( مدل انتن دار ) نوشته شده حدود 1000 متر رو میتونه پوشش بده ( البته تازه متوجه شدم این عدد فقط مربوط به فضای باز هست ، که اونم طبق تستایی که یکی دو نفر انجام داده بودند محدود واقعی کارکردش حدود 500 متر بوده )
مشکل اصلی با فضاهای بسته هست ، که طبق تستی که خودم انجام دادم ، توی سالن ورزشی در حدود 15 تا 20 متر جواب میده ( توی فاصله 28 متری عملا ماژول ها به هم متصل نمی شدن )
چه راه حلی برای این مشکل هست ؟
با تشکر
سلام وقت بخیر. من میخوام یک گیرنده داشته باشم و چند فرستنده و هر فرستنده کار خاصی رو انجام بده در گیرنده. آیا شدنیه؟
سلام
بله امکانش هست.
سلام uint 64 چیست
سلام
unsign int از نوع 64 بیت.
سلام
لینک دانلود مشکل داره
سلام
تست کردم مشکلی نیست.
سلام چرا پروگرم نمیشه با تشکر
سلام
من با دو عدد Arduino nano وصل كردم وبا كد هاي شما جرا كار نکرد وارتباط نشد لطفا كمكم كنيد
سلام ببخشید میشه به جای فرستنده از یه رادیو کنترل 2.4استفاده کرد؟؟
سلام
نه نمیشه استفاده کرد .پروتکل ارتباطی رادیو کنترل با ماژول NRF24L01 متفاوت هست.
سلام دوستان :مشکل من این است که برای عمل کردن برنامه باید قبل از فشار کلید چند بار دکمه ریست اردوینوی فرستنده را بزنم وبرای دفعات بعد هم همینطور در حالت عادی هیچگونه عکس العملی دیده نمیشود خواهشمندم اساتید بزرگوار راهنمایی بفرمایید ممنون از لطف شما
سلام,امکانش هست ماژول انتن دار با ماژول بدون انتن ارتباط برقرار کنه؟
سلام
بله هردو یکی هستند فقط مسافت ارسالشون با هم فرق داره.
سلام می شه به جای برد آردوینو انو از برد آردوینو مدل attiny85 استفاده کرد؟؟؟
سلام
بله میشه
سلام خسته نباشید میخاستم بپرسم میشه از دوتا اردوینوی متفاوت استفاده کرد یعنی یکی uno و یکی دیگه nano؟؟؟؟
سلام
بله با هر برد آردوینویی میشه راه اندازی کرد.