خانه / پروژه / avr / آموزش و راه اندازی ماژول NRF24L01 ( ماژول ارسال و دریافت )با AVR

آموزش و راه اندازی ماژول NRF24L01 ( ماژول ارسال و دریافت )با AVR

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

مقدمه

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

معرفی چیپ NRF24L01+

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

دانلود مستقیم دیتا شیت NRF24L01+ از لینک زیر:

single chip 2.4 GHz  transceiver   

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

 

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

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


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

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

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

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

قطعات کامپیوتری وایرلس مانند موس یا کی بورد یا قطعات دیگر
هدست های بیسیم مانند VOIP HEADSET
دسته های بیسیم کنسول های بازی مانند PS3
ساعت های ورزشی یا سنسور ها
ریموت کنترل برای مصارف الکترونیکی
سیستم های مسیر یاب مانند GPS
اسباب بازی ها
و در بسیاری از پروژه های متنوع صنعتی و غیرصنعتی که نیاز به یک ارتباط بی سیم مطمئن می باشد.

 

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

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

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

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

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

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

                                                                                                                                                                                     ;( )nRF_Config

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

                                                                                                                                                                                     ;(nRF_Config(1

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

                                                                                                                                                                                                                 ; ‘ کاراکتر مورد نظر’=char data1
;( )nRF_Config

    ;(Send_Data(1, &data1                                                                                                                                                                                                      

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

        ;char data1
;(nRF_Config(1

      (if (State==1
}
;[data1 = payload[1
; = State
کار مورد نظر

                                                                                                                                                                                                                    {

lمهندسین برتر

همچنین ببینید

راه اندازی lcd

راه اندازی LCDکاراکتری

راه اندازی LCDکاراکتری: در این پروژه از lcd کاراکتری 16 بیتی استفاده شده است.برای اطلاعات …

پاسخ دهید

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