معرفی ، آموزش و راه اندازی ماژول NRF24L01 با AVR

مقدمه

در پروژه هایی که ارتباط از راه دور و بدون سیم بین یک فرستنده و گیرنده وجود دارد، بهترین انتخاب استفاده از ماژول های فرکانس رادیویی است که هزینه مناسب ، برد بالا و قدرت ارسال و دریافت زیاد دارند. یکی از معروفترین ماژول های ارسال و دریافت ، ماژول NRF24L01+ است که در بسیاری از کاربرد های ارتباط رادیویی وجود دارد.

 


معرفی چیپ NRF24L01+

چیپ +NRF24L01 نمونه تصحیح شده با امکانات بیشتر و دیتاریت بالاتر چیپ NRF2401 است که توسط شرکت NORDIC در اوایل سال ۲۰۰۸ معرفی شد. چیپ NRF24L01 دارای یک موتور بلادرنگ (تکنولوژی پیشرفته SHOCKBURST) که اساسا طراحی شده برای موقعیت های که نیاز به مصرف توان بسیار پایین است NRF24L01 در رده فرکانسی جهانی ISM که در محدوده فرکانسی ۲٫۴۰۰ گیگاهرتز تا ۲٫۴۸۳۵ گیگا هرتز که در کل برای اجرا فقط به یک میکروکنترلر و تعداد کمی قطعات دیگر نیاز دارد که شامل چند خازن و سلف است. نحوه ارتباطی این چیپ به پروتکل SPI است که می توان با این پروتکل بر تمامی خواص نرم افزاری و سخت افزاری داخلی چیپ مدیریت داشت و آن را کنترل کرد.

NRF24L01P_Chip

مدولاسیون ارتباطی این چیپ به صورت GFSK است , همان مدولاسیونی که در تکنولوژی BLUETOOTH استفاده شده و به صورت انحصاری در دست چند شرکت بزرگ مثل BLUETOOTH   و  NORDIC SEMICONDUCTOR   و TEXAS INSTRUMENT و چند شرکت دیگر قرار دارد. چیپ به نحوی طراحی شده که هر چیپ شبیه به این است که یک کانال فرکانس خاص را برای خود دارد و از این رو می توان گفت درصد خطا و اختلال چیپ ها با یک دیگر (یا چیپ هایی به غیر از NRFL24L01) به صفر می رسد. دیتاریت چیپ در ۲ مگابیت بر ثانیه پیکره بندی شده و دو مد متفاوت مصرف پایین نیز دارد که آن را کم مصرف تر می کند.

 


انواع ماژول NRF24L01+

همانطور که در شکل زیر مشاهده می کنید ، این ماژول در دو نوع آنتن دار و بدون آنتن وجود دارد که نوع بدون آنتن حدودا برد ۱۰۰ متر و نوع آنتن دار آن در حدود ۱۱۰۰ متر می باشد.

این مطلب را از دست ندهید :  دانلود کتاب میکروکنترلرهای AVR مهندس علی کاهه

NRF24L01P_Type


توضیحات ماژول NRF24L01+

ویژگی های خاص:

  1. حداکثر دیتا ریت تا ۲ مگا بیت بر ثانیه در فضای باز
  2. جریان مصرفی بسیار پایین (۱۲ میلی آمپر)
  3. دارای رگولاتور داخلی و بی نیاز از تأمین ولتاژ های مختلف
  4. محدوده ولتاژ تغذیه چیپ از ۱٫۹ تا ۳٫۶ ولت
  5. مجهز به تکنولوژِی پیشرفته SHOCKBURST
  6. قابلیت اتصال چند ماژول به هم از طریق بی سیم و ایجاد یک شبکه محلی
  7. قابلیت تحمل ولتاژ ۵ ولت بر روی پین های دیتا
  8. سایز کوچک چیپ و نیاز به قطعات خارجی کم

 

موارد استفاده:

  1. قطعات کامپیوتری وایرلس مانند موس یا کی بورد یا قطعات دیگر
  2. هدست های بیسیم مانند VOIP HEADSET
  3. دسته های بیسیم کنسول های بازی مانند PS3
  4. ساعت های ورزشی یا سنسور ها
  5. ریموت کنترل برای مصارف الکترونیکی
  6. سیستم های مسیر یاب مانند GPS
  7. اسباب بازی ها
  8. و در بسیاری از پروژه های متنوع صنعتی و غیرصنعتی که نیاز به یک ارتباط بی سیم مطمئن می باشد.

 


پایه های ماژول :

NRF24L01P_Pins

نکته : پایه های هر دو سری بدون آنتن و آنتن دار یکسان و به صورت شکل فوق می باشد.

 


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

برای راه اندازی ماژول NRF24L01+ با استفاده از میکروکنترلر Atmega32 کافی است تا آن را به صورت زیر به میکروکنترلر وصل نماییم. سپس با اضافه کردن هدر فایل nrf24l01.h به برنامه میتوان از توابع موجود برای راه اندازی آن استفاده نمود.

NRF24L01P_Init

نکته : اگر از میکروکنترلرهای دیگر استفاده می کنید، پایه های MOSI، MISO، SCK را به پایه های رابط SPI در آن میکروکنترلر باید متصل نمایید. پایه های CE و CSN را به هر پایه دلخواه از آن میتوان وصل نمود اما در هدر فایل nrf24l01.h باید پورت متصل شده جدید را تغییر داد. پایه IRQ را نیز به هر پایه ای که وقفه خارجی دارد میتوان متصل کرد و سپس در هدر فایل nrf24l01.h شماره تابع سابروتین وقفه مربوطه را به شماره وقفه خارجی متصل به پایه IRQ تغییر داد.

 


توابع راه اندازی و نحوه ارسال/دریافت از ماژول NRF24L01

با اضافه کردن هدر فایل “nrf24l01+.h” به برنامه، قابلیت استفاده از این ماژول ایجاد می شود. سپس برای راه اندازی ماژول از تابع nRF_Config در برنامه استفاده می کنیم. به صورتی که برای ارسال اطلاعات (تنظیم ماژول به عنوان فرستنده) باید از این تابع به صورت زیر در برنامه:

این مطلب را از دست ندهید :  بخش هشتم آموزش AVR : آموزش برنامه نویسی C به همراه انجام پروژه

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

در صورت تنظیم ماژول به عنوان فرستنده از تابع Send_Data استفاده می گردد. این تابع یا یا چندین متغیر را توسط ماژول ارسال می کند. به طوری که در آرگومان اول این تابع شماره payload یا شماره دیتایی که ارسال می شود قرار می گیرد. payload یک آرایه ۳۲ در ۸ بیت است که توانایی ارسال چندین داده به طور پشت سر هم ( مانند ارسال فایل متنی، mp3 ، ویدیویی و …) را فراهم می کند که میتوان داده های مختلف را در payload قرار داده و ارسال نمود. آرگومان دوم تابع نیز آدرس متغیری که میخواهیم ارسال شود در حافظه را دریافت می کند. بنابراین نحوه ارسال یک دیتا به صورت زیر است:

در صورت تنظیم ماژول به عنوان گیرنده در برنامه از متغیر State استفاده می گردد. متغیر State در حالت عادی ۰ است و زمانی که ماژول دیتایی را دریافت می کند، ۱ می گردد. بنابراین هر زمان که State برابر ۱ شد میتوان دیتا را از همان payload که ارسال شده بود دریافت کرده و کار مورد نظر را انجام داد. بنابراین نحوه دریافت دیتا یک به صورت زیر است:


پروژه راه اندازی دو ماژول NRF24L01+ و ارسال/دریافت توسط آن

در این پروژه می خواهیم بین دو ماژول NRF ارتباط برقرار کرده و توسط دو میکروکنترلر Atmega32 آنها را راه اندازی کنیم.

 

مرحله اول: طراحی سخت افزار

در این مرحله شماتیک مدار مورد نظر را در نرم افزار Altium Designer طراحی کردیم که به صورت شکل زیر می باشد. در این پروژه به دو مدار همانند این شکل نیاز داریم که هر دو آنها به همین صورت شکل زیر است.

این مطلب را از دست ندهید :  بخش دهم آموزش AVR : آموزش راه اندازی واحدهای ارتباط سریال

NRF24L01_Schematic

مرحله دوم : طراحی نرم افزار

در این مرحله برنامه راه اندازی ماژول را برای فرستنده و گیرنده طراحی کرده و در نرم افزار CodeVision می نویسیم.

برنامه فرستنده :

برنامه گیرنده :

 

توضیح عملکرد پروژه :

فرستنده به صورت شمارنده از ۰ تا ۲۵۵ عمل می کند و همزمان هم LED های روی پورت A را روشن می کند و هم دیتای شمارش شده را به صورت کاراکتر به گیرنده ارسال می کند. گیرنده منتظر ارسال از فرستنده می ماند و به محض دریافت کاراکتر دیتا آن را روی پورت A نمایش می دهد.

 

مرحله سوم : پیاده سازی

در هنگام پیاده سازی به نکات زیر توجه کنید :

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

– فرکانس میکرو در هنگام پروگرام کردن روی ۸ مگاهرتز داخلی است.

– ماژول های NRF24L01 را بدون استفاده از سیم نمیتوان به برد بورد وصل نمود.

– از سالم بودن LED ها و اتصال صحیح پایه مثبت آن به میکرو قبل از روشن نمودن مدار مطمئن شوید.

 

 

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

پسورد : electrovolt.ir

 

19+
این مطلب را با دوستانتان به اشتراگ بگذارید

پاسخ دهید

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

بیست − 1 =