پروژه های آردوینو همه مطالب

راه اندازی ماژول nrf24l01 با استفاده از آردوینو

راه اندازی ماژول nrf24l01 با استفاده از آردوینو

یکی از ماژول هایی که اخیرا در بین علاقه مندان به ارتباط بی سیم محبوبیت پیدا کرده است ماژول 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

5 دیدگاه

  • سلام. این ماژول های nrf24l01قابلیت اتصال همزمان به 2تابرد را دارند یعنی میشه دران واحد به 2تا برد اردوینو وصل بشند؟

  • سلامخسته نباشید اگه بخوایم با استفاده با گیرنده و ولومنورال ای دی رو کم و زیاد کنیم باید چه تغییراتی رودر برنامه ایجاد کنم؟؟؟

  • سلام
    توی تمام سایتا و همچنین دیتا شیت ماژول NRF24l01 ( مدل انتن دار ) نوشته شده حدود 1000 متر رو میتونه پوشش بده ( البته تازه متوجه شدم این عدد فقط مربوط به فضای باز هست ، که اونم طبق تستایی که یکی دو نفر انجام داده بودند محدود واقعی کارکردش حدود 500 متر بوده )
    مشکل اصلی با فضاهای بسته هست ، که طبق تستی که خودم انجام دادم ، توی سالن ورزشی در حدود 15 تا 20 متر جواب میده ( توی فاصله 28 متری عملا ماژول ها به هم متصل نمی شدن )
    چه راه حلی برای این مشکل هست ؟
    با تشکر

دیدگاهتان را بنویسید

پنج × 2 =