جدیترین مقالات

نحوه کار و رابط ماژول بی سیم nRF24L01 با آردوینو

داشتن دو یا چند آردوینو که بتوانند به صورت بی سیم با یکدیگر ارتباط برقرار کنند، دنیایی از امکانات مانند نظارت از راه دور داده های سنسور، کنترل ربات ها، اتوماسیون خانگی و غیره را در اختیار شما قرار می دهد.

و وقتی صحبت از یک راه‌حل RF دو طرفه کم‌هزینه اما قابل اعتماد می‌شود، هیچ چیز  بهتر از  ماژول فرستنده گیرنده nRF24L01+ Nordic Semiconductor نیست .

ماژول nRF24L01+ با کمتر از دو دلار به صورت آنلاین در دسترس است و آن را به یکی از مقرون به صرفه ترین گزینه های ارتباط داده در دسترس تبدیل می کند.

بررسی اجمالی سخت افزار

فرکانس رادیو

ماژول nRF24L01+ برای کار در باند فرکانس جهانی ISM 2.4 گیگاهرتز طراحی شده است و از  مدولاسیون GFSK  برای انتقال داده استفاده می کند. سرعت انتقال داده قابل تنظیم است و می توان آن را روی 250kbps، 1Mbps یا 2Mbps تنظیم کرد.

باند 2.4 گیگاهرتز یکی از باندهای صنعتی، علمی و پزشکی (ISM) است که در سطح بین‌المللی برای دستگاه‌های کم مصرف بدون مجوز رزرو شده است. دستگاه هایی مانند تلفن های بی سیم، دستگاه های بلوتوث، دستگاه های ارتباط میدان نزدیک (NFC) و شبکه های کامپیوتری بی سیم (WiFi) از فرکانس های ISM استفاده می کنند.

قدرت

ولتاژ کاری ماژول از 1.9 تا 3.9 ولت متغیر است. لطفاً به خاطر داشته باشید که تغذیه ماژول با 5 ولت به احتمال زیاد به ماژول nRF24L01+ شما آسیب می رساند.

علیرغم این واقعیت که ماژول در ولتاژ 1.9 ولت تا 3.6 ولت کار می کند، پین های منطقی 5 ولت تحمل دارند، بنابراین نیازی به مترجم سطح منطقی ندارید.

توان خروجی ماژول را می توان به صورت 0 dBm، -6 dBm، -12 dBm یا -18 dBm برنامه ریزی کرد. در 0 dBm، ماژول در طول انتقال تنها 12 میلی آمپر مصرف می کند که کمتر از مصرف یک LED است.

و بهترین بخش این است که تنها 26 میکروآمپر در حالت آماده به کار و 900 نانوآمپر در حالت خاموش کردن برق مصرف می کند. به همین دلیل است که این دستگاه بی سیم برای برنامه های کم مصرف است.

رابط SPI

nRF24L01+ از طریق یک SPI 4 پین (رابط سریالی جانبی) با حداکثر سرعت داده 10 مگابیت در ثانیه ارتباط برقرار می کند.

همه پارامترها، از جمله کانال فرکانس (125 کانال قابل انتخاب)، توان خروجی (0 dBm، -6 dBm، -12 dBm یا -18 dBm)، و نرخ داده (250kbps، 1Mbps، یا 2Mbps) را می توان از طریق رابط SPI پیکربندی کرد. .

اتوبوس SPI از مفهوم یک استاد و یک برده استفاده می کند. در اکثر پروژه های ما، آردوینو به عنوان اصلی و ماژول nRF24L01+ به عنوان برده عمل می کند.

برخلاف گذرگاه I2C، باس SPI تعداد محدودی برد دارد. بنابراین می‌توانید از حداکثر دو SPI Slave (دو ماژول nRF24L01+) در یک آردوینو استفاده کنید.

مشخصات فنی

در اینجا مشخصات آمده است:

محدوده فرکانسباند ISM 2.4 گیگاهرتز
حداکثر نرخ داده هوا2 مگابیت بر ثانیه
فرمت مدولاسیونGFSK
حداکثر توان خروجی0 dBm
ولتاژ منبع تغذیه عملیاتی1.9 ولت تا 3.6 ولت
حداکثر جریان عملیاتی13.5 میلی آمپر
حداقل جریان (حالت آماده به کار)26μA
ورودی های منطقیتحمل 5 ولت
محدوده ارتباطی800+ متر (خط دید)

برای اطلاعات بیشتر لطفا به دیتاشیت زیر مراجعه کنید.

برگه اطلاعات nRF24L01+

ماژول nRF24L01+ -در مقابل ماژول nRF24L01+ PA/LNA

تراشه nRF24L01+ در ماژول های مختلفی استفاده می شود که دو مورد از رایج ترین آنها در زیر ذکر شده است.

اولین مورد از یک آنتن داخلی استفاده می کند که به آن اجازه می دهد جمع و جورتر باشد. با این حال، آنتن کوچکتر به معنای برد انتقال کوتاهتر است. با استفاده از این ماژول می توانید در فاصله 100 متری ارتباط برقرار کنید. البته که بیرون در فضای باز است. دامنه آن در داخل خانه کمی ضعیف تر می شود، به خصوص به دلیل دیوارها.

nRF24L01 Wireless Transceiver Module 1 1
ماژول بی سیم nRF24L01+

دومی یک کانکتور SMA و یک آنتن اردک دارد، اما این تنها تفاوت نیست. این شامل یک  تراشه توسعه دهنده برد RFX2401C است  که مدارهای سوئیچینگ PA، LNA و گیرنده ارسال را ترکیب می کند. این ماژول را قادر می سازد تا برد انتقال قابل توجهی تا 1000 متر را به دست آورد.

nRF24L01 PA LNA External Antenna Wireless Transceiver Module 1 1
ماژول گیرنده گیرنده بی سیم nRF24L01+ PA LNA با آنتن خارجی

نکته : به جز این تفاوت، هر دو ماژول با قابلیت drop-in سازگار هستند. اگر پروژه خود را با یکی می‌سازید، می‌توانید آن را از برق جدا کرده و بدون ایجاد تغییر در سیستم، از دیگری استفاده کنید.

PA و LNA دقیقا چیست؟

PA مخفف  Power Amplifier است. این فقط سیگنالی را که توسط تراشه +nRF24L01 ارسال می شود تقویت می کند. LNA مخفف  Low-Noise Amplifier است و وظیفه آن تقویت سیگنال بسیار ضعیف دریافتی از آنتن (معمولاً زیر میکروولت یا -100 dBm) تا سطح مفیدتر (معمولاً حدود 0.5 تا 1 ولت) است

nRF24L01 RF PA LNA Power Amplifier Low Noise Amplifier Block Diagram 1 1
نمودار بلوکی nRF24L01+ PA/LNA

تقویت کننده کم نویز مسیر دریافت (LNA) و تقویت کننده توان مسیر انتقال (PA) از طریق یک دوبلکسر به آنتن متصل می شوند که دو سیگنال را ایزوله می کند و از بارگذاری بیش از حد خروجی PA نسبتاً قدرتمند به ورودی حساس LNA جلوگیری می کند. برای اطلاعات بیشتر این  مقاله را در digikey.com بخوانید  .

ماژول nRF24L01+ چگونه کار می کند؟

فرکانس کانال RF

ماژول nRF24L01+ داده ها را در فرکانس خاصی که به عنوان  کانال شناخته می شود، ارسال و دریافت می کند . برای اینکه دو یا چند ماژول با یکدیگر ارتباط برقرار کنند، باید در یک کانال باشند. این کانال می تواند هر فرکانسی در باند ISM 2.4 گیگاهرتز یا به طور دقیق تر، هر فرکانسی بین 2.400 تا 2.525 گیگاهرتز (2400 تا 2525 مگاهرتز) داشته باشد.

هر کانال کمتر از 1 مگاهرتز از پهنای باند را اشغال می کند. این به ما 125 کانال ممکن با فاصله 1 مگاهرتز می دهد.

این بدان معناست که nRF24L01+ می تواند در 125 کانال مختلف کار کند و به شما این امکان را می دهد که شبکه ای از 125 مودم مستقل را در یک مکان بسازید.

nRF24L01 Wireless Transceiver 2.4GHz 125 RF Channels 1MHz Spacing 1 1

نکته: در نرخ داده‌های هوایی 250 کیلوبیت بر ثانیه و 1 مگابیت بر ثانیه، هر کانال کمتر از 1 مگاهرتز از پهنای باند را اشغال می‌کند، بنابراین یک شکاف بین دو کانال 1 مگاهرتز وجود دارد. با این حال، برای سرعت داده هوا 2 مگابیت بر ثانیه، 2 مگاهرتز پهنای باند مورد نیاز است (بیشتر از وضوح تنظیم فرکانس کانال RF). بنابراین، در حالت 2 مگابیت بر ثانیه، فاصله 2 مگاهرتز را بین دو کانال حفظ کنید تا از عدم همپوشانی کانال‌ها و کاهش مکالمه متقابل اطمینان حاصل کنید.

فرکانس کانال RF کانال انتخابی شما با استفاده از فرمول زیر محاسبه می شود:

nRF24L01 RF PA LNA Power Amplifier Low Noise Amplifier Block Diagram 1 formol 1 1

به عنوان مثال، اگر کانال 108 را برای انتقال داده انتخاب کنید، فرکانس کانال RF 2508 مگاهرتز (2400 + 108) خواهد بود.

شبکه چند گیرنده nRF24L01+

nRF24L01+ دارای ویژگی معروف به  Multiceiver است. مخفف  Multi ple Transmitter Single Reiver می باشد.

در یک شبکه چند گیرنده، هر کانال RF به طور منطقی به شش کانال داده موازی به نام  لوله های داده تقسیم می شود . به عبارت دیگر، لوله داده یکی از شش کانال منطقی در یک کانال فیزیکی RF است. هر لوله داده آدرس منحصر به فرد خود را دارد که به عنوان آدرس لوله داده شناخته می شود. فقط یک لوله داده می تواند یک بسته را در یک زمان دریافت کند.

یک شبکه چند گیرنده در زیر نشان داده شده است.

nRF24L01 Wireless Multiceiver Network Multiple Transmitters Single Receiver 1 1

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

پروتکل ShockBurst پیشرفته

nRF24L01+ از ساختار بسته ای به نام  Enhanced ShockBurst استفاده می کند. دارای پنج فیلد است:

nRF24L01 Wireless Transceiver Enhanced ShockBurst Packet Structure 1 1
nRF24L01+ ساختار بسته ShockBurst پیشرفته

ساختار اصلی شوک‌بارست فقط دارای فیلدهای Preamble، Address، Payload و Cyclic Redundancy Check (CRC) بود. با معرفی  Packet Control Field (PCF) ، Shockburst پیشرفته عملکردی را برای ارتباطات پیشرفته‌تر اضافه کرد.

این ساختار جدید به چند دلیل عالی است.

  • این برنامه از بارهای با طول متغیر با یک مشخص کننده طول بار پشتیبانی می کند و به بارهای قابل حمل از 1 تا 32 بایت امکان می دهد.
  • به هر بسته ارسال شده یک شناسه بسته اختصاص داده می شود که به گیرنده اجازه می دهد تا تشخیص دهد که آیا پیام جدید است یا ارسال مجدد شده است.
  • هر پیام حاوی فیلدی است که از گیرنده می‌خواهد تأییدیه ارسال کند.

nRF24L01 + کنترل خودکار بسته ها

برای درک بهتر نحوه تعامل دو ماژول nRF24L01+ با یکدیگر، سه سناریو را مرور می کنیم.

  • معامله با تاییدیه:این یک نمونه از یک سناریوی مثبت است. در این حالت فرستنده با ارسال یک بسته داده به گیرنده ارتباط را آغاز می کند. پس از ارسال بسته، فرستنده تقریباً 130 میکرو ثانیه منتظر می ماند تا تأییدیه (ACK) برسد. گیرنده پس از دریافت موفقیت آمیز بسته، ACK را ارسال می کند. هنگامی که فرستنده ACK را دریافت کرد، تراکنش پایان می یابد.
nRF24L01 Transceiver Working Packet Transmission 1 1
  • تراکنش با یک بسته داده گم شده:

این یک سناریوی منفی است که در آن به دلیل از دست دادن بسته نیاز به ارسال مجدد است. فرستنده پس از ارسال بسته منتظر ACK می شود.

اگر فرستنده آن را در مدت زمان تأخیر ارسال مجدد خودکار (ARD) دریافت نکند، بسته مجددا ارسال می شود. هنگامی که گیرنده بسته ارسال مجدد را دریافت می کند، ACK را ارسال می کند که تراکنش را پایان می دهد.

nRF24L01 Transceiver Working Packet Transmission 1 Acknowledgement Lost 1 1
  • تراکنش با تأیید گمشده:این یکی دیگر از سناریوهای منفی است که در آن به دلیل از بین رفتن ACK نیاز به ارسال مجدد است. از آنجا که فرستنده ACK را دریافت نکرده است، معتقد است که بسته گم شده است (حتی اگر گیرنده بسته را در اولین تلاش دریافت کرده است).در نتیجه، فرستنده بسته را پس از وقفه زمانی Auto-Retransmit-Delay مجددا ارسال می کند. هنگامی که گیرنده بسته ای را با همان شناسه قبلی دریافت می کند، آن را دور انداخته و دوباره ACK را ارسال می کند. هنگامی که فرستنده ACK را دریافت کرد، تراکنش پایان می یابد.
nRF24L01 Transceiver Working Packet Transmission 1 Data Lost 1 1

تراشه nRF24L01+ کل فرآیند انتقال بسته را بدون دخالت میکروکنترلر انجام می دهد.

پین اوت ماژول nRF24L01+

بیایید نگاهی به پین‌آوت‌های هر دو ماژول nRF24L01+ بیاندازیم.

Pinout nRF24L01 Wireless Transceiver Module 1 1
Pinout nRF24L01 PA LNA External Antenna Wireless Transceiver Module 1 1

GNDپین زمین است. دارای یک علامت مربع برای تشخیص آن از سایر پین ها.

VCCبرق ماژول را تامین می کند. می تواند از 1.9 تا 3.9 ولت متغیر باشد. می توانید آن را به خروجی 3.3 ولت آردوینو متصل کنید. لطفاً به خاطر داشته باشید که اتصال آن به پین ​​5 ولت به احتمال زیاد به ماژول nRF24L01+ شما آسیب می رساند.

CE (فعال کردن تراشه)یک پین فعال-بالا است. وقتی فعال باشد، nRF24L01 بسته به حالت، ارسال یا دریافت می کند.

CSN (Chip Select Not)یک پین فعال-پایین است که معمولاً HIGH نگه داشته می شود. وقتی این پین پایین می‌آید، nRF24L01 شروع به گوش دادن به داده‌ها در پورت SPI خود می‌کند و آن‌ها را بر اساس آن پردازش می‌کند.

SCK (ساعت سریال)پالس های ساعت را از استاد باس SPI می پذیرد.

MOSI (Master Out Slave In)ورودی SPI برای nRF24L01 است.

MISO (Master In Slave Out)خروجی SPI nRF24L01 است.

IRQیک پین وقفه است که می تواند در صورت وجود داده های جدید برای پردازش، به Master اطلاع دهد.

سیم کشی ماژول nRF24L01+ به آردوینو

اکنون که همه چیز را در مورد نحوه عملکرد ماژول nRF24L01+ می دانیم، می توانیم آن را به آردوینو متصل کنیم.

برای شروع، پایه VCC ماژول را به 3.3 ولت آردوینو و پایه GND را به زمین وصل کنید. پین های CSN و CE را می توان به هر پین دیجیتالی در آردوینو متصل کرد. در مورد ما، آنها به پین ​​های دیجیتال #8 و #9 متصل می شوند.

بیایید پین های SPI را سیم کشی کنیم. توجه داشته باشید که هر برد آردوینو دارای یک مجموعه منحصربه‌فرد از پین‌های SPI است که باید بر اساس آن متصل شوند. برای بردهای آردوینو مانند UNO/Nano V3.0، این پین ها دیجیتال 13 (SCK)، 12 (MISO)، 11 (MOSI) و 10 (SS) هستند.

اگر از برد آردوینو دیگری استفاده می‌کنید، قبل از ادامه، اسناد رسمی  مکان‌های پین SPI را بررسی کنید  .

A 1rduino Wiring Fritzing Connections with nRF24L01 Wireless Transceiver Module 1 1
سیم کشی ماژول گیرنده گیرنده بی سیم nRF24L01+ به آردوینو UNO
A 1rduino Wiring Fritzing Connections with nRF24L01 PA LNA External Antenna Wireless Module 1 1
سیم کشی nRF24L01+ PA LNA ماژول بی سیم به آردوینو UNO

به یاد داشته باشید، شما باید دو چنین مدار بسازید. یکی به عنوان فرستنده و دیگری به عنوان گیرنده عمل خواهد کرد. هر دو سیم کشی یکسانی دارند.

وقتی همه چیز را وصل کردید، آماده رفتن هستید!

نصب کتابخانه

کتابخانه های زیادی برای ماژول nRF24L01+ موجود است، اما یکی از محبوب ترین آنها  RF24 است . این کتابخانه مدت زیادی است که وجود داشته است. استفاده از آن برای مبتدیان ساده است در حالی که هنوز هم برای کاربران پیشرفته چیزهای زیادی فراهم می کند. ما از این کتابخانه در مثال های خود استفاده خواهیم کرد.

برای نصب کتابخانه، به  Sketch > Include Library > Manage Libraries بروید…  منتظر بمانید تا مدیر کتابخانه فهرست کتابخانه را دانلود کند و لیست کتابخانه های نصب شده را به روز کند.

Manage Libraries 1 1

جستجوی خود را با وارد کردن ” rf24 ” فیلتر کنید. به دنبال کتابخانه توسط  TmRh20 بگردید . روی آن ورودی کلیک کنید و سپس Install را انتخاب کنید.

RF24 Library Installation 1 1

کد مثال آردوینو – برای فرستنده

مثال‌های زیر نحوه راه‌اندازی یک پیوند ساده یک طرفه بین فرستنده و گیرنده را نشان می‌دهند. فرستنده به سادگی یک پیام سنتی “Hello World” را به گیرنده می فرستد، که آن را در پنجره نمایشگر سریال نمایش می دهد.

این کدی است که ما برای فرستنده خود استفاده خواهیم کرد.

//Include Libraries
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

//create an RF24 object
RF24 radio(9, 8);  // CE, CSN

//address through which two modules communicate.
const byte address[6] = "00001";

void setup()
{
  radio.begin();
  
  //set the address
  radio.openWritingPipe(address);
  
  //Set module as transmitter
  radio.stopListening();
}
void loop()
{
  //Send message to receiver
  const char text[] = "Hello World";
  radio.write(&text, sizeof(text));
  
  delay(1000);
}

توضیح کد

طرح با گنجاندن کتابخانه های لازم آغاز می شود. کتابخانه SPI.h ارتباطات SPI را مدیریت می کند، در حالی که کتابخانه های nRF24L01.h و RF24.h ماژول را کنترل می کنند.

//Include Libraries
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

سپس یک شی RF24 ایجاد می کنیم. سازنده این شی دو عدد پین را به عنوان آرگومان می پذیرد که سیگنال های CE و CSN به آنها متصل می شوند.

//create an RF24 object
RF24 radio(9, 8);  // CE, CSN

در مرحله بعد، یک آرایه بایت برای ذخیره آدرس لوله مورد استفاده دو ماژول nRF24L01+ برای برقراری ارتباط ایجاد می کنیم.

//address through which two modules communicate.
const byte address[6] = "00001";

آدرس لوله نباید “00001” باشد، اما می تواند هر رشته 5 کاراکتری مانند “node1” باشد. به سادگی اطمینان حاصل کنید که فرستنده و گیرنده هر دو از یک آدرس استفاده می کنند.

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

در بخش setup از begin()تابع برای مقداردهی اولیه شی رادیو و به دنبال آن openWritingPipe()تابع تنظیم آدرس فرستنده استفاده می کنیم.

radio.begin();

//set the address
radio.openWritingPipe(address);

در نهایت از stopListening()تابع برای تنظیم ماژول به عنوان فرستنده استفاده می کنیم.

//Set module as transmitter
radio.stopListening();

در بخش حلقه، ابتدا یک آرایه از کاراکترها ایجاد می کنیم و پیام Hello world را در آن ذخیره می کنیم.

ما از write()تابع برای ارسال پیام به گیرنده استفاده می کنیم. این تابع دو آرگومان می گیرد: پیامی که باید ارسال شود و تعداد بایت هایی که در آن وجود دارد.

const char text[] = "Hello World";
radio.write(&text, sizeof(text));

مهم است که توجه داشته باشید که می توانید پیام هایی با طول حداکثر 32 بایت ارسال کنید، زیرا این حداکثر اندازه بسته ای است که nRF24L01+ می تواند مدیریت کند.

این write()تابع یک مقدار bool را برمی‌گرداند که می‌توانید از آن برای بررسی اینکه آیا داده‌ها به درستی توسط گیرنده دریافت شده است یا خیر استفاده کنید. وقتی داده ها به گیرنده می رسند، TRUE را برمی گرداند. در غیر این صورت، FALSE را برمی گرداند.

همچنین، توجه به این نکته مهم است که این write()تابع برنامه را تا زمانی که یک تأییدیه دریافت کند یا تمام تلاش‌های ارسال مجدد را تمام کند، متوقف می‌کند.

کد مثال آردوینو – برای گیرنده

این کدی است که ما برای گیرنده خود استفاده خواهیم کرد.

//Include Libraries
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

//create an RF24 object
RF24 radio(9, 8);  // CE, CSN

//address through which two modules communicate.
const byte address[6] = "00001";

void setup()
{
  while (!Serial);
    Serial.begin(9600);
  
  radio.begin();
  
  //set the address
  radio.openReadingPipe(0, address);
  
  //Set module as receiver
  radio.startListening();
}

void loop()
{
  //Read the data if available in buffer
  if (radio.available())
  {
    char text[32] = {0};
    radio.read(&text, sizeof(text));
    Serial.println(text);
  }
}

توضیح کد

به جز چند تغییر، این کد بسیار شبیه به کد فرستنده است.

در ابتدای تابع راه اندازی، ارتباط سریال را آغاز می کنیم. سپس با استفاده از openReadingPipe()تابع، همان آدرس لوله را به عنوان فرستنده تنظیم می کنیم. این امر فرستنده و گیرنده را قادر می سازد تا با یکدیگر ارتباط برقرار کنند.

اولین آرگومان تابع openReadingPipe()مشخص می کند که کدام لوله برای خواندن باز شود. از آنجایی که حداکثر شش لوله را می توان همزمان برای خواندن باز کرد، محدوده احتمالی 0-5 است. در مورد ما، لوله 0 برای خواندن باز شد. آرگومان دوم آدرس 40 بیتی لوله ای است که باید باز شود.

  //set the address
  radio.openReadingPipe(0, address);

پس از آن، ماژول را به عنوان یک گیرنده پیکربندی می کنیم و شروع به دریافت داده می کنیم. ما از startListening()تابع برای انجام این کار استفاده می کنیم.

//Set module as receiver
  radio.startListening();

این available()روش در بخش حلقه برای بررسی اینکه آیا داده‌ای برای خواندن در دسترس است یا خیر استفاده می‌شود. این روش در صورت موجود بودن داده، TRUE و در غیر این صورت FALSE را برمی‌گرداند.

if (radio.available())
  {
    char text[32] = {0};
    radio.read(&text, sizeof(text));
    Serial.println(text);
  }

هنگامی که داده در دسترس است، آرایه ای از 32 کاراکتر پر از صفر برای ذخیره آن ایجاد می شود. سپس داده ها از بافر خوانده می شوند و با استفاده از read(&text, sizeof(text))روش در آرایه کاراکتر ما ذخیره می شوند.

در نهایت پیام دریافتی بر روی مانیتور سریال چاپ می شود. اگر همه چیز خوب است، مانیتور سریال شما باید به این شکل باشد.

nRF24L01 Transceiver RF24 Library Sketch Output on Serial Monitor 1 1
خروجی فرستنده گیرنده nRF24L01+ در مانیتور سریال

راه هایی برای بهبود برد ماژول nRF24L01+

یک پارامتر کلیدی برای یک سیستم ارتباطی بی سیم محدوده ارتباطی است. این اغلب هنگام انتخاب راه حل RF عامل تعیین کننده است. بنابراین بیایید در مورد آنچه که می توانیم برای بهبود دامنه ماژول خود انجام دهیم صحبت کنیم.

نویز منبع تغذیه را کاهش دهید

مداری که سیگنال فرکانس رادیویی (RF) تولید می کند به نویز منبع تغذیه بسیار حساس است. سر و صدای منبع تغذیه، اگر کنترل نشود، می تواند به طور قابل توجهی محدوده ای را که می توانید به دست آورید کاهش دهد.

مگر اینکه منبع تغذیه یک باتری مستقل باشد، احتمال زیادی وجود دارد که خروجی برق نویز داشته باشد. برای جلوگیری از ورود این نویز به سیستم، توصیه می شود که یک خازن فیلتر 10 میکروفن در سراسر خط منبع تغذیه تا حد امکان نزدیک به ماژول nRF24L01+ قرار داده شود.

ساده ترین راه برای کاهش صدای منبع تغذیه استفاده از یک آداپتور ارزان قیمت برای ماژول nRF24L01+ است.

nRF24L01 5V Power Adapter 1 1
آداپتور nRF24L01+

این آداپتور دارای یک کانکتور مادگی 8 پین است که می توانید ماژول nRF24L01+ خود را وصل کنید. می تواند هر دو نسخه ماژول nRF24L01+ را در خود جای دهد، یکی با آنتن یکپارچه و دیگری با آنتن خارجی (PA/LNA).

همچنین دارای یک کانکتور 2 پین برای ورودی برق و یک کانکتور نر 6 پین برای اتصالات SPI و وقفه است.

از آنجایی که آداپتور دارای یک تنظیم کننده ولتاژ 3.3 ولت داخلی و خازن های فیلتر است، می توانید با خیال راحت آن را با منبع تغذیه 5 ولت تغذیه کنید.

فرکانس کانال را تغییر دهید

محیط خارجی همچنین می تواند منبع نویز برای مدارهای RF باشد، به خصوص اگر شبکه های همسایه روی یک کانال تنظیم شده باشند.

از آنجایی که وای‌فای عمدتاً از کانال‌های فرکانس پایین‌تر استفاده می‌کند، توصیه می‌شود برای جلوگیری از تداخل این سیگنال‌ها، از بالاترین 25 کانال nRF24L01+ خود استفاده کنید.

از نرخ داده کمتر استفاده کنید

با سرعت 250 کیلوبیت بر ثانیه، nRF24L01+ بالاترین حساسیت گیرنده -94dBm را دارد. با این حال، در سرعت داده 2 مگابایت در ثانیه، حساسیت گیرنده به -82dBm کاهش می یابد. یعنی در 250 کیلوبیت بر ثانیه، گیرنده تقریباً ده برابر حساس تر از 2 مگابیت در ثانیه است و به آن اجازه می دهد تا سیگنال های ضعیف تر را ده برابر رمزگشایی کند.

در نتیجه، کاهش نرخ داده می تواند به طور قابل توجهی محدوده ای را که می توانید به دست آورید بهبود بخشد. به علاوه، سرعت 250 کیلوبیت در ثانیه برای اکثر پروژه های ما کافی است.

حساسیت گیرنده (Rx) به چه معناست؟

حساسیت گیرنده حداقل سطح توانی است که گیرنده می تواند سیگنال RF را در آن تشخیص دهد. هر چه قدر مطلق یک عدد منفی بیشتر باشد، حساسیت گیرنده بیشتر است. برای مثال، حساسیت گیرنده 94-dBm، 12dB از حساسیت گیرنده 82-dBm بهتر است.

استفاده از توان خروجی بالاتر

تنظیم حداکثر توان خروجی نیز می تواند به گسترش دامنه ارتباط کمک کند. nRF24L01+ از انواع سطوح توان خروجی، از جمله 0dBm، -6dBm، -12dBm و -18dBm پشتیبانی می کند. انتخاب توان خروجی 0dBm سیگنال های قوی تری را به هوا ارسال می کند اما انرژی بیشتری مصرف می کند.

ترجمه از https://lastminuteengineers.com/nrf24l01-arduino-wireless-communication/

WhatsApp
Email
LinkedIn

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

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