در این پست ماژول NRF24L01 را با استفاده از میکروکنترلر AVR راه اندازی خواهیم کرد. این ماژول یکی از بهترین و مطمئن ترین ماژول های رادیویی برای ارسال و دریافت داده و اطلاعات می باشد که می توان در موارد مختلفی مانند قطعات کامپیوتری وایرلس, هدست های بیسیم, ریموت کنترل ها, اتوماسیون خانگی و غیره از ان استفاده کرد. این ماژول در دو نوع انتن دار و بدون انتن وجود دارد که نوع بدون انتن ان (انتن روی خود برد) برد حدود 100 متر دارد و نوع انتن دار بردش بالای 1000 متر است.
کتابخانه راه اندازی ماژول +NRF24L01 :
برای راه اندازی این ماژول در محیط کدویژن ما از کتابخانه ان استفاده خواهیم کرد. این کتابخانه دارای یک سری توابع است که در ادامه با انها اشنا می شویم. برای استفاده از کتابخانه ماژول +NRF24L01 ابتدا ان را به صورت زیر در ابتدای برنامه فراخوانی می کنیم :
1 |
#include "nRF24L01+.h" |
تابع nRF_Config :
برای راه اندازی ماژول و انجام تنظیمات اولیه ماژول از این تابع استفاده می کنیم که دارای دو حالت است. در صورتی که به صورت زیر استفاده شود ماژول به عنوان فرستنده تنظیم می شود
1 |
nRF_Config(0); |
در صورتی که به صورت زیر استفاده شود ماژول به عنوان گیرنده تنظیم می شود
1 |
nRF_Config(1); |
تابع Send_Data :
نکته : زمانی که می خواهیم اطلاعاتی را ارسال یا دریافت کنیم این اطلاعات در فرستنده یا گیرنده درون ارایه ای به نام payload قرار داده می شوند. payload یک ارایه 32 در 8 بیتی می باشد که اطلاعات مورد نظر خود را در ان قرار داده و پشت سرهم ارسال می شوند.
در صورتی که ماژول را به عنوان فرستنده تنظیم کنیم از تابع Send_Data برای ارسال اطلاعات استفاده می کنیم. این تابع دارای دو ارگومان ورودی است که در قسمت اول شماره payload مورد نظر را وارد می کنیم و در قسمت دوم متغیری که اطلاعات ما درون ان قرار داده شده را می نویسیم.
1 |
Send_Data(1 , &data); |
متغیر State :
از متغیر State در گیرنده استفاده می شود. زمانی که ماژول گیرنده اطلاعاتی را دریافت نمی کند State برابر 0 است و زمانی که اطلاعات را از فرستنده دریافت کرد برابر 1 می شود. همانطور که گفته شد اطلاعاتی که قصد ارسال انها را داریم درون ارایه payload قرار می دهیم و در گیرنده بعد از اینکه متغیر State برابر 1 شد می توانیم این اطلاعات را از شماره payload که در فرستنده مشخص کرده ایم(درون تابع Send_Data) دریافت کنیم. به عنوان مثال در زیر اطلاعات موجود در payload یک را که از فرستنده دریافت کرده ایم درون متغیر data ریخته ایم :
1 |
data = payload[1]; |
پایه های ماژول +NRF24L01 و نحوه اتصال ان به میکرو کنترلر :
ما در این پروژه از میکروکنترلر ATmega32 برای راه اندازی ماژول +NRF24L01 استفاده کرده ایم. پایه های این ماژول در هر دو مدل با انتن و بدون انتن به صورت زیر است :
همانطور که در بالا مشاهده می کنید, تغذیه این ماژول حداکثر 3.3 ولت است و در صورتی که ولتاژ بیشتری به ان اعمال کنید امکان اسیب دیدن ان وجود دارد. بهتره که از برد راه انداز این ماژول هم استفاده کنید که کار رو راحت می کنه و می تونید با 5 ولت هم ماژول و هم بقیه قطعات پروژه رو تغذیه کنید و خطر اسیب دیدن ماژول با استفاده از برد راه انداز از بین میره. در تصویر زیر یه نمونه از این برد راه انداز را مشاهده می کنید که ماژول +NRF24L01 روی اون نصب میشه و به راحتی میتونید با 5 ولت تغذیه کنید و در پروژه استفاده کنید. من برای تست این پروژه از این برد راه انداز استفاده کردم که میتونید در اخر مطلب مشاهده کنید
نحوه اتصال ماژول +NRF24L01 به میکرو هم به صورت زیر است (برای فرستنده و گیرنده) :
- پین IRQ <<< PB2
- پین CE <<< PB3
- پین CSN <<< PB4
- پین MOSI <<< PB5
- پین MISO <<< PB6
- پین SCK <<< PB7
نکته : در صورتی که از میکروکنترلر دیگری استفاده می کنید, باید پین های MOSI و MISO و SCK را به پین های مربوط به پروتکل SPI در ان میکروکنترلر متصل کنید و پین های CE و CSN را می توانید به هر پین خالی در میکرو متصل کنید اما قبل از ان باید در کتابخانه ماژول شماره پین ها را با توجه به پین های جدیدی که انتخاب کرده اید تغییر دهید. پین IRQ را هم به هر پینی که وقفه خارجی دارد می توان متصل کرد و تغییرات لازم را با توجه به شماره وقفه خارجی جدید در کتابخانه ایجاد کرد.
پروژه راه اندازی ماژول NRF24L01 با میکروکنترلر AVR :
در زیر یک پروژه با این ماژول قرار داده شده است که هدف ان اشنایی شما با راه اندازی این ماژول به صورت عملی می باشد, شما می توانید پروژه زیر را با توجه به توضیحات ارائه شده در این پست با توجه به نیاز خود تغییر دهید. عملکرد پروژه زیر به این صورت است که قسمت فرستنده شامل یک کلید فشاری است, زمانی که این کلید را فشار دهید در گیرنده یک LED روشن می شود و زمانی که کلید را رها کنید یا فشار ندهید LED خاموش خواهد شد.
شماتیک فرستنده :
شماتیک گیرنده :
برنامه فرستنده نوشته شده با کدویژن :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/////////////// WWW.EMIC.IR /////////////// #include <mega32.h> #include <delay.h> #include "nRF24L01+.h" //به برنامه nRF24L01+ افزودن کتابخانه ماژول// char data; void main(void) { nRF_Config(0); //تنظيم ماژول به عنوان فرستنده// DDRA=0x00; while (1) { data=PINA.0; //data در متغير A ريختن مقادير موجود در پين 0 پورت// Send_Data(1 , &data); //data ارسال مقادير موجود در متغير// delay_ms(100); //ايجاد تاخير به مدت 100 ميلي ثانيه// } } |
برنامه گیرنده نوشته شده با کدویژن :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <mega32.h> #include <delay.h> #include "nRF24L01+.h" //به برنامه nRF24L01+ افزودن کتابخانه ماژول// char data; void main(void) { nRF_Config(1); //تنظيم ماژول به عنوان گيرنده// DDRA=0xFF; PORTA=0X00; while (1) { if(State == 1) //مي شود if در صورتي که اطلاعاتي توسط گيرنده دريافت شد وارد شرط// { data = payload[1]; //data ريختن مقادير دريافتي از فرستنده در متغير// PORTA.0 = data; //A روي پين 0 پورت data ريختن مقادير موجود در متغير// State = 0; //State صفر کردن متغير// } } } |
نکته : توجه کنید که در شبیه سازی پروتئوس پایه های تغذیه میکروکنترلر مگا 32 وجود ندارد به همین دلیل به جایی وصل نشده اند, ولی شما در عمل پایه 10 هر دو میکرو را به مثبت و پایه 11 انها را به منفی (زمین) متصل کنید (5 ولت)
توضیحات قسمت های مهم برنامه نوشته شده, سوالات خودتون رو می تونید در قسمت نظرات مطرح کنید
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…
سلام خسته نباشید من میخواهم با یک فرستنده و گیرنده یک شیر برقی را قطع و وصل کنم ایا از همین پروژه باید استفاده کنم یا مدار های ساده تر و یا کم هزینه تری هم میشه ساخت. بطور کلی پیشنهادی اگر بفرمایید ممنون میشوم
درود وقت بخیر. مهندس اول اینکه ممنون بابت پروژه . فقط یک ایرادی تو کتابخانه هست حتماااااا این درست ش کنید یا تو متن بنویسید که دوستان کتابخانه رو درست ش کنن که مثل من دو روز به مشکل نخورن. یک ایراد کوچیک تو برنامه هست که باعث شده بعضی از دوستان و خودم نتیجه نگیریم و یا با اختلال کار کنه.
من اول مدار رو روی برد برد بستم جواب داد بعد اومدم پی سی بی زدم بدون اینکه پایه ها تغییر بدم ولی اصلا کار نکرد. دو روز درگیر بودم که چرا همین برنامه داره روی برد برد کار میکنه ولی رو بردی که زدم کار نمیکنه. بطور کاملا اتفاقی فهمیدم دستم که نزدیک سیمی که به NRF وصل هست نزدیک میکنم با یکم اشکال کار میکنه. دستم که به رگولاتور میزنم کلا کار نمیکنه . خلاصه مشخص بود یک نویز کوچیکی هست که باعث این ایراد شده. سه تا میکرو هم عوض کردم ولی بازم با اختلال کار میکرد . همه مدل فیلتر و خازن و هر چی بگی هم تست کردم ولی حل نشد. تو کتابخانه NRF که نگاه کردم دیدم شما نوشتید که:
#define CE PORTB.3
#define CSN PORTB.4
این دوتا پین خروجی هستن ولی پایین تر شما نوشتید:
PORTB=0x00;
DDRB=0xB0;
یعنی اشتباهی پورتB.3 که خروجی هست و تو کتابخانه به عنوان خروجی استفاده کردید تو خط بالا اومدی ورودی تعریف کردید. همین باعث اختلال تو برنامه و جواب نگرفتن دوستان شده. من خط بالا رو تغییر دادم نوشتم:
DDRB=0xBB;
یعنی خروجی تعریف کردم پورتB.3 تمام مشکلات و اختلال ها و نویز ها و اینکه یکبار میگرفت یکبار نمیگرفت همه چی حل شد.
این یا شما خودتون کتابخانه رو اصلاح کنید و دوباره بذارید تو سایت یا حداقل کامنت من رو تو متن بنویسید که اینطوری مشکل نخورن بقیه.
خیلی ممنون
سلام ممنون از آموزش خوبتون
من یه برنامه دیگه ایو که قبلا با آردوینو نوشته بودم و خیلی خوب هم جواب داد رو ریختم روی atmega8 ولی خیلی کنده یعنی تو فرستنده جوی استیکو حرکت میدم تو گیرنده چند ثانیه بعد عدد نشون میده. علت بوت لودرمه یا اتمگا8 کلا ضعیفه؟
بوت لودر میکرو کنترلرو قبلا با آردوینو ریختم روش بعد با مبدل سریال برنامه رو ریختم. به میکرو کنترلر هم یه کریستال 16مگاهرتز وصله
سلام میشه نحوه استفاده از چند دکمه و چند led را اموزش بدید ، ممنون از سایت خوبتون
سلام فایل کتابخانه این ماژول در فایل زیپ نیست میشه راه نمایی کنید اگر هست چه طوری در مسیر قرارش بدم تو کدوم پوشه؟
سلام, با نام nRF24L01+ در فایل دانلودی موجود است
سلام. میخواستم با ATMEGA16 – NRF راه بیندازم با کتابخوانه ATMEGA32 کامپایل نمیشود
با سلام. من انجامش دادم. به خوبی کار کرد. ممنونم
عرض درود و خسته نباشید
میخواستم بدونم آیا میشه وسط برنامه ماژول رو از حالت slave به master یا همون از گیرنده به فرستنده و بلعکس تغییر داد یعنی مثلا اول از دستور nRF_Config(1) استفاده کردیم بعد وسطای برنامه بیایم و از دستور nRF_Config(0) استفاده کنیم؟
سلام برای اتمگا هشت چه نوع کتاب خانه ای باید براش بنویسم میشه بگید لطفا
سلام. آقا ممنون بابت اشتراک گذاری کد.
سلام خسته نباشید
امکان دارد با یک فرستنده 10 گیرنده را کنترل کرد ممنون میشم راهنمایی بفرمایید متشکرم
سلام وقت بخیر
برای استفاده از توابع ماژول nrf24l01 در کدویژن نیاز کتابخانه ی خاصی رو دانلود کنیم ؟
سلام, بله کتابخانه ماژول در فایل های انتهای مطلب موجوده
سلام با بسکام این برنامه رو ندارین ؟
سلام, خیر
سلام. من کد رو برای atmega8 تغییر دادم. کتاب خونه رو هم تغییراتی دادم ولی هرچی تست میکنم کار نمیکنه..!
ال ای دی گذاشتم که بفهمم کار میکنه دیدم اصلا کار نمیکنه. پروگرمر و میکرو سالمه تست کردم…
فایل کدی که تغییر دادم اینه:
https://uupload.ir/view/nrf24l01-test-with-avr-www.emic.ir_nyv3.rar/
لطفا بررسی کنید ببینید مشکل چیه..؟!
سلام
حدود یکو نیم سال از پیامتون میگذره ولی با اینحال گفتم شاید راه حلی براش پیدا کرده باشید
من هم همینکارو کردم ولی با atmega8 کار نمیکنه. کلا با atmega8 نمیشه یا اینکه راهی داره؟
سلام مهندس جان
امکان داره بخوام هم بصورت گیرنده و فرستنده همزمان استفاده کنم.یعنی دیتا رو از فرستنده به گیرنده فرستاده و روی ال سی دی نمایش و از گیرنده یه سری دیتا مث کلید به فرستنده ارسال بشه؟؟!!
سلام من با توجه به نیازم کتابخونرو برای mega2560 تغییر دادم البته هنوز در عمل تستش نکردم ولی فکر میکنم درست باشه.
سوالی که داشتم اینه که (البته فکر کنم مشابه این سوالو چنتا از دوستان پرسیده بودن) من در پروژم 30 عدد کلید میخوام بزارم که میخوام وضعیت این 30 کلید برای برد گیرنده ارسال بشه و (به صورت 0 یا 1 یا on و off یا هرجور دیگه ای) بتونم اونرو از طریق ترمینال کامپیوتر که از طریق USART به گیرنده متصل هستش بخونم الان سوال اینجاست که شما فقط یک بایت از کل 32 بایت ماژول NRF24L01+ استفاده کردید ولی من با 30 عدد کلید میخوام 30 بایت استفاده کنم و برای گیرنده ارسال کنم میخواستم بدونم چطور 30 تا کلید رو بجای 1 کلید تعریف کنم تو قسمت data=PINA.0; و Send_Data(1 , &data);
ممنون میشم راهنمایی کنید خیلی به این پروژه نیاز دارم
سلام
خداقوت خسته نباشید بخاطر سایت خوبتون
برد این فرستنده و گیرنده آنتن دار که شما بستین روی برد برد عملا حداکثر چقدر است (خودتون تست گرفتین)؟
و بیزحمت برنامه رو برای آی سی مگا 8 بیزحمت بزارین ، تشکر فراوان
سلام, برد ماژول NRF24L01 انتن دار 1 کیلومتر در فضای باز می باشد. البته من خودم برد ماژول را در عمل تست نکردم و طبق اطلاعات ارائه شده توسط سازنده ماژول باید این میزان برد داشته باشد
سلام
چجوری باید این ماژول رو به کامپیوتر وصل کرد؟
سلام, من این کار را تا حالا نکردم و اطلاع زیادی در موردش ندارم ولی فکر می کنم بتونید با ماژول مبدل USB به سریال که قبلا نحوه راه اندازیش را در سایت قرار داده بودم, ماژول را به کامپیوتر وصل کنید
سلام . خیل ممنون از اموزش خوبتون . اگه بخوام این کتابخونه رو برای mega8 استفاده کنم فقط باید اون اول مگا هشت رو بجای مگا 32 اینکلود کنم و پایه های CE , CSN رو هم متناسب برای مگا هشت کنم ؟ تغیرات دیگه ای ههم لازمه؟
سلام, این پروژه برای خیلی وقت پیشه و الان حضور ذهن ندارم که به چه صورت بود ولی فکر میکنم بجز مواردی که گفتید باید رجیسترهای وقفه در کتابخانه را هم تغییراتی در اونا اعمال کنید
سلام مهندس وقت بخیر
شما راهی به نظرت میرسه که این ماژول رو بدون میکروکنترلر راه اندازی کرد ؟
یا حداقل گیرنده به این شکل باشه؟
سلام, نه متاسفانه
سلام کلاً باید چگونه آیسی های اتمگا 32و اتمگا 16و اتمگا 8را برنامه نویسی کرد ممنون
سلام, پست های مربوط به اموزش برنامه نویسی AVR را مطالعه کنید
سلام من واقعا از این سایت خوبتون ممنون هستم
با تشکر فراوان به خاطر فایلهاتون.
با این کتابخونه ها و تغییراتی که در فایل اصلی و کتابخونه دادم تونستم با 2 تا atmega8 ارتباط بگیرم. منتها نمیدونم چرا احساس کندی میکنم توی مدار. فرکانس میکرو رو هم به 8 مگ روندم ولی همچنان احساس میکنم بعضی وقتا گیج میزنه. احساس میکنم کدهای کتابخونه برا این میکرو زیادی حجیم هستن و spi رو مختل میکنن
سلام
آیا امکان تدریس خصوصی برای این ماژول بصورت آنلاین را دارید؟
سلام
خیر نه ارور و نه وارنینگ
سلام, خوب اگر اروری نمی دهد پس مشکل شما احتمالا از برنامه نیست و سخت افزار پروژه, اتصالات و… را بررسی کنید که مشکلی نداشته باشند
سلام. وقت بخیر. چرا فقط payload1 اطلاعاتش ارسال میشود؟ بقیه عناصر رشته مثلا payload2 اصلا ارسال نمیشه.
من میخوام چند متغیر رو ارسال کنم. ولی نمیشه. با این که در متغیرهای جداگانه میریزم، یا اصلا ارسالشون نمیکنه یا اینکه همه متغیرها رو روی یک چیز فقط میریزه. خواهشا کمک کنید.
سلام
ممنون از پاسخ سریعتون
من فقط اینکلود رو به atmega 16 تغییر دادم هم در کتابخانه و هم در تنظیمات کمپایلر
کدویژن ارور یا وارنینگ نمی دهد؟
سلام
میشه تو واتساب باهاتون ارتباط داشته باشم
سلام, در حال حاظر در واتساپ فعالیتی نداریم
سلام
تشکر بابت زحمات شما
من فایل شما رو در قسمت فرستنده atmega۱۶ تغییر دادم کار نکردن میشه راهنمایی کنید
سلام, بیشتر توضیح بدید که چه تغییری دادید. من که نمیدونم شما چیکار کردید که بتونم راهنمایتون کنم
سلام
چطور باید کتاب خانه nrf رو توی کدویژن بریزم
ممنون میشم جواب بدین
سلام, فقط کافیه که فایل های کتابخانه را در محلی که پروژتون را ذخیره کردید قرار دهید و در برنامه بصورت بالا فراخوانی کنید
سلام ممنون درباره مطالب
اگه تو قسمت <include <mega32.h به جای mega32
mega16 بزاریم مدار جواب میده چون میخوام با atmega16 این پروژه رو انجام بدم
سلام, بله فکر نمیکنم مشکلی باشه فقط یادتون باشه که باید در کتابخانه هم مگا 32 را به 16 تغییر بدید
با سلام و خسته نباشید.
مهندس ببخشید الان اگه بخوایم یه پوش باتون به فرستنده و یه ledدیگه به گیرنده اضافه کنیم.یعنی دو تا پوش باتون با دو تاledکه به پایه های متفاوتی وصل شده باشن تو برنامه چه تغییراتی باید بدم؟ممنون میشم اگه کمکم کنین من هرچقدر برنامه رو دستکاری کردم به جواب نرسیدم
سلام, پروژه های رادیویی حتما باید در عمل تست بشوند, به همین خاطر اول خودم باید بصورت عملی ببندم و تست کنم تا بتونم راهنمایتون کنم. در اینده حتما پروژه مورد نظر شما را انجام می دم و در سایت قرار خواهم داد.
میشه بگین من تو کدوم قسمتش کار کنم تا به جواب برسم؟
چون در گیر پایانامه هستم و وقتم محدوده نمیتونم زیاد صبر کنم.
همانطور که گفتم باید در عمل تست بشه ولی یک راهش این است که بجای اینکه در فرستنده PINA.0 را ارسال کنیم عدد 1 یا 2 یا… را ارسال می کنیم و در گیرنده نیز با دستور شرطی if می توانیم بگیم که مثلا اگر 1 را دریافت کردی پین 0 از پورت A را یک کن و یا اگر 2 را دریافت کردی پین 1 از پورت A را یک کن و…
با سلام و خسته نباشید مجدد.
ببخشید مهندس من چرا وقتی شبیه سازی میکنم اصلا جواب نمیدع دقیقا هم مدارو مطابق گفته های شما میبندم. حتی پروگرامشم کردم تو atmega32اونجام جواب نداد.(به صورت عملی)
بی زحمت راهنمایی میکنین؟
سلام, در شبیه سازی که جواب نمیده چون ماژول nrf برای پروتئوس وجود ندارد (اگرم هست من تا الان ندیدم) و کلا بهتره پروژه ها را بخصوص پروژه های رادیویی را به صورت عملی تست کنید.
شما فایل های انتهای مطلب را دانلود کنید و فایل هگز پروژه را بدون تغییر روی میکرو پروگرام کنید و ببینید جواب میده یا نه و تغذیه هر دو میکرو هم که در شماتیک بالا نیست فراموش نکنید که متصل کنید. در صورتی که جواب داد بعد می تونید کدهای پروژه را با توجه به نیازتون تغییر دهید.
سلام و خسته نباشید.
ببخشید بجای این ماژول NRF24L01میشه از ماژول هایESP8266استفاده کرد؟
اگه میشه چجوری؟
ممنون میشم اگه راهنماییم بکنین؟
سلام, ماژول ESP8266 یک ماژول برای ارتباط وای فای می باشد و NRF24L01 یک ماژول برای ارتباط رادیویی می باشد که راه اندازی انها با هم تفاوت دارد. بزودی راه اندازی ماژول ESP8266 را هم در سایت قرار خواهم داد
ببخشید از نحوه ی راه اندازه هر دو خبر دارم فقط من میخوام توی این پروژه ای که انجام دادین به جای nrf24l01از ماژول وای فای استفاده کنم.
امکانش هست؟اگر هست ممنون میشم راهنمایی کنین به چه صورت؟
خیر دوست عزیز نمیشه بجای همدیگه استفاده بشوند. همانطور که گفتم بزودی یک پروژه مشابه با این پست با ماژول ESP8266 در سایت قرار خواهم داد
سلام مهندس خسته نباشید.
من تو فرستنده از مگا8 و گیرنده مگا16 استفاده کردم و کتابخونه ها رو برای هر کدوم ست کردم. واسه تست تو فرستنده داخل وقفه یه خروجی (led) رو فعال میکنم. هر چند ثانیه چشمک میزنه. راه دیگه برا تست پیدا نکردم 🙂 ولی از طرف گیرنده هیچ عکس العملی نشون نمیده. حتی تو برنامه وارد شرط state=1 نمیشه. فکر کنم چیزی دریافت نمیکنه. می خواستم بدونم راهی برای تست این ماژول هست؟ یا یه دستوری چیزی بفرستم تا ازش یه جوابی بگیرم تا مطمئن بشم ارتباط ماژول و میکرو برقراره؟
پروژه رو هم تو لینک زیر فرستادم بی زحمت یه نگاهی بهش بندازید :
…
با تشکر 🌹
سلام, شما همین برنامه ای که در این پست قرار داده شده را برای میکروکنترلرهای مورد نظر خودتون تغییر بدید و ببینید که جواب میده یا نه. اگر جواب داد بعد میتونید تغییرات مورد نظرتون را اعمال کنید. فایلی هم که اپلود کردید مشکل داره و باز نمیشه
سلام، خط 10 در قسمت فرستنده مشکل داره پورت A باید بصورت خروجی تعریف بشه نه ورودی یعنی بجای DDRA=0x00; باید DDRA=0xff; نوشته بشه(تمامی پین های میکرو بجز MISO باید خروجی باشن اما اینجا دریافتی از طرف ماژول نداریم مهم نیس همونم خروجی میکنیم)، دو روز همین وقتمو گرفته بود…موفق باشید
سلام, به پورت A در فرستنده کلید متصل شده بنابراین باید ورودی باشه
بله صحبت شما درسته، ببخشید من پورت A و B را اشتباه گرفته بودم. ممنون
سلام و عرض ادب . من این پروژه رو برای atmega16A تغییر دادم . تغییری توی کتابخونه ایجاد نکردم ولی در کد ویزارد ها هر دو چیپ رو روی atmega16a گذاشتم و SPI رو هم با 500 فعال کردم . در بقیه ی برنامه هم هیچ تغییری ایجاد نکردم . ولی کار نمیکنه . خواهش میکنم کمک کنید تا حالا صد بار برنامه های مختلف رو تست کردم دریغ از روشن شدن یه لامپ
سلام
همونطور که اشاره کرده بودید ایراد از رجیستر های وقفه بود و خداروشکر تونستم کتابخانه رو برای مگا 8 تغییر بدم ولی الان به مشکل اصلی برخوردم (استفاده از 2 گیرنده ) اینطور که متوجه شدم برای استفاده از 2 گیرنده باید از مک آدرس استفاده کرد سوال اینه برای استفاده از مک آدرس این کتابخانه جوابگو هست؟ یاباید از کتابخانه ی دیگی هم استفاده بشه ممنون میشم در این مورد هم راهنمایی کنید .
سلام, متاسفانه من در مورد پروژه مورد نظر شما مطالعه ای نداشتم و اطلاع ندارم. دوستان اگر کسی قبلا انجام داده راهنمایشون کنید. حتما در اینده این پروژه را انجام میدم و در سایت قرار میدم
سلام میتونم از دوتا ماژول برای دریافت استفاده کنم مثلا 2 تا کلید در مدار فرستنده بزارم که هرکلید برای یکی از مدار های گیرنده باشه و با فشار هر کلید یکی از ال ای دی ها روشن بشه .
سلام, حتما میشه ولی پروژه های رادیویی باید در عمل تست بشن و من متاسفانه فقط دوتا از این ماژول دارم, اگه 3 تا ماژول دارید تست کنید من و دیگر دوستان راهنماییتون میکنیم
سلام مجدد
مدار رو با میکروکنترلر مگا 16 و 32 راهاندازی کردم ولی در نهایت میخوام از میکروکنترلر مگا 8 استفاده کنم . کتابخانه NRF رو ادیت کردم یعنی پایه های CE , CSN , IRQ متناسب با مگا8 تغییر دادم ولی نمیدونم چرا کار نمیکنه ممنون میشم اگر راهنمایی کنید . باتشکر
سلام, کدهاتون را به طور کامل داخل یک فایل زیپ بریزید در سایت پیکوفایل اپلود کنید لینکشو بدید بررسی کنم
سلام بفرمایید اینم لینک :
http://s8.picofile.com/file/8361948300/NRF24L01_Test_with_AVR_www_emic_ir.zip.html
راستی برنامه رو برای 2 تا گیرنده تغییر دادم که چون کار نکرد نتونستم به صورت عملی ایرادات احتمالی رو اصلاح کنم در مرحله ی اول رفع ایراد کتابخانه در اولویت .
ممنون از وقتی که میزارید .
سلام, شما اول سعی کنید که همین برنامه ای که در سایت برای یک فرستنده و یک گیرنده هست را برای میکرو مگا 8 تغییر بدید اگه جواب داد و مشکلی نداشت بعد برید برای دو گیرنده و غیره
متاسفانه الان یکم سرم شلوغه بخاطر همین وقت نکردم کامل نگاه برنامه کنم ولی کتابخانه رو که بررسی کردم فکر میکنم در تابع nrf_config رجیسترهای وقفه 0 را فعال نکردید (وقفه 0 رو که میخواین برای مگا 8 استفاده کنید باید فعال و وقفه 2 رو غیرفعال کنید)
سلام.آقا من اینو بستم کار نکرد به نظرتون از چیه؟
سلام, یکم بیشتر توضیح بدید چیکار کردید. قبلا با میکرو کار کرده اید