سبد خرید
0

سبد خرید شما خالی است.

راه اندازی ماژول 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

24
دیدگاه کاربران
  • حمیدرضا 3 فروردین 1398 / 9:22 ق.ظ

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

    • admin 3 فروردین 1398 / 1:56 ب.ظ

      سلام
      بله امکانش هست

  • ALI 4 اردیبهشت 1398 / 10:01 ق.ظ

    خوب بود

  • محمد 24 تیر 1398 / 1:33 ق.ظ

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

  • mahdi 12 آبان 1398 / 3:35 ب.ظ

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

  • حسن 15 آذر 1398 / 12:46 ب.ظ

    سلام وقت بخیر. من میخوام یک گیرنده داشته باشم و چند فرستنده و هر فرستنده کار خاصی رو انجام بده در گیرنده. آیا شدنیه؟

    • admin 16 آذر 1398 / 9:16 ق.ظ

      سلام
      بله امکانش هست.

    • admin 9 اسفند 1398 / 7:35 ب.ظ

      سلام
      unsign int از نوع 64 بیت.

  • ایان 21 خرداد 1399 / 9:37 ق.ظ

    سلام
    لینک دانلود مشکل داره

    • admin 31 خرداد 1399 / 2:19 ب.ظ

      سلام
      تست کردم مشکلی نیست.

  • ابوالفضل 24 خرداد 1399 / 12:17 ب.ظ

    سلام چرا پروگرم نمیشه با تشکر

  • مجتبى 10 تیر 1399 / 5:08 ق.ظ

    سلام

    من با دو عدد Arduino nano وصل كردم وبا كد هاي شما جرا كار نکرد وارتباط نشد لطفا كمكم كنيد

  • من 1 آذر 1399 / 1:35 ب.ظ

    سلام ببخشید میشه به جای فرستنده از یه رادیو کنترل 2.4استفاده کرد؟؟

    • admin 2 آذر 1399 / 3:25 ب.ظ

      سلام
      نه نمیشه استفاده کرد .پروتکل ارتباطی رادیو کنترل با ماژول NRF24L01 متفاوت هست.

  • مصطفی 26 اردیبهشت 1400 / 4:55 ب.ظ

    سلام دوستان :مشکل من این است که برای عمل کردن برنامه باید قبل از فشار کلید چند بار دکمه ریست اردوینوی فرستنده را بزنم وبرای دفعات بعد هم همینطور در حالت عادی هیچگونه عکس العملی دیده نمی‌شود خواهشمندم اساتید بزرگوار راهنمایی بفرمایید ممنون از لطف شما

  • محمد 20 تیر 1400 / 7:45 ق.ظ

    سلام,امکانش هست ماژول انتن دار با ماژول بدون انتن ارتباط برقرار کنه؟

    • admin 23 تیر 1400 / 10:28 ق.ظ

      سلام
      بله هردو یکی هستند فقط مسافت ارسالشون با هم فرق داره.

  • محمد امین 20 مهر 1400 / 5:30 ب.ظ

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

    • admin 22 مهر 1400 / 3:18 ب.ظ

      سلام
      بله میشه

  • علی غلامی 20 آبان 1400 / 3:06 ب.ظ

    سلام خسته نباشید میخاستم بپرسم میشه از دوتا اردوینوی متفاوت استفاده کرد یعنی یکی uno و یکی دیگه nano؟؟؟؟

    • admin 22 آبان 1400 / 9:09 ب.ظ

      سلام
      بله با هر برد آردوینویی میشه راه اندازی کرد.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توسط
تومان