نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
مهدی دمیرچیلو

پروژه و کتابخونه و آموزش nrf24l01 با آردوینو

274

به نام خدا : بلاخره کتابخونه nRF24L01 رو نوشتم و تو سایت ECA منتشر کردم، چند وقتی بود میخواستم تو سایت خودم هم قرارش بدم ولی حالش رو نداشتم، این کتابخونه برای برد آردوینو هستش، تقریبا از تمام امکانات اصلی ماژول NRF24L01 استفاده کردم در این کتابخونه، کتابخونه دو سری NRF24L01 و +NRF24L01 رو براتون قرار دادم در این مطلب، پروژه نمونه، پروژه های نمونه بیشتر با این کتابخونه رو بعدا براتون میزارم، این پروژه هایی که میزارم، پروژه آردوینو هستن فقط و نه کدویژن و نه چیز دیگه ای.
پروژه و کتابخونه و آموزش nrf24l01 با آردوینو

پروژه و کتابخونه و آموزش nrf24l01 با آردوینو

تغییرات داده شده در کتابخونه +NRF24L01

سه شنبه – ۶ مهر ۱۳۹۵

  1. تابع ارسال عدد اعشاری
  2. تابع ارسال عدد صحیح
  3. تابع پیدا کردن تعداد ارقام یه عدد صحیح ( به صورت Privete تعریف شده و برای شما قابل استفاده نیست )
  4. اضافه شدن دو پروژه ارسال و دریافت عدد اعشاری
  5. اضافه شدن دو پروژه ارسال و دریافت عدد صحیح
  6. حل مشکل عدم نمایش لیست مثال ها در آردوینو

 

تغییراتی که در کتابخونه +NRF24L01 باید داده شود

  1. اضافه کردن spi مجازی
  2. private کردن توابع و متغییر های غیر ظرروری
  3. استفاده از پایه وقفه ماژول Nrf24l01

 

ویژگی های ماژول NRF24L01

  1. فراهم بودن باند آزاد (ISM1) و حهانی ۴Ghz
  2. تا Mbps2 نرخ انتقال داده (در) هوا
  3. توان مصرفی فوق العاده کم
  4. ۳mA جریان مصرفی فرستنده(مد TX) در ۴۰dbm
  5. ۳mA جریان مصرفی گیرنده(مد RX) در نرخ انتقال داده هوا ۲Mbps
  6. ۹۰۰nA در مد PowerDown
  7. ۲۲uA در مد Standby-1
  8. وجود رگولاتور ولتاژ بر روی تراشه
  9. تامین محدوده ولتاژ ۱٫۹ الی ۳٫۶ ولت
  10. وجود تکنولوژی Enhanced ShockBurst 3
  11. جابجایی خودکار بسته های اطلاعاتی
  12. معامله خودکار بسته های اطلاعاتی
  13. ۶ لوله دیتا MULTICEIVER برای ارتباط چند ماژول به یکدیگر و ایجاد یک شبکه محلی
  14. سازگاری هوایی با ماژول های nRF2401A ,02 ,E1 AND E2
  15. یه چیپ ( BOM) کم هزینه.(قسمت ماژول رو میگه!)
  16. وجود کریستال ۱۶MHz با خطای +-۶۰ppm5
  17. تحمل ولتاژ ۵ ولت ورودی
  18. پکیج QFN (فشرده و کوچ) به اندازه ۴*۴  میلی متر با ۲۰ پایه

گفتن ویژگی های ماژول nRF24L01 به صورت دیگه ای : 
nRF24L01 شامل ویژگی های زیر هستش :
رادیو

  • فراهم بودن باند فرکانسی آزاد(ISM) 4GHz
  • ۱۲۶ کانال رادیویی
  • پایه های RX و TX مشترک
  • مودلاسون GFSK
  • نرخ انتقال داده در هوا با ۱-۲Mbps
  • در هر دو نرخ انتقال داده همپوشانی فرکانسی رخ نمیده در اون نرخ انتقال داده با بقیه امواج

فرستنده

  • قابلیت تنظیم توان خروجی : ۰, -۶, -۱۲ or -18dBm
  • ۳mA در ۰dBm توان خروجی

گیرنده

  • Integrated channel filters
  • ۳mA در ۲Mbps
  • حساسیت -۸۲dBm در ۲Mbps
  • حساسیت -۸۵dBm در ۱Mbps
  • قابلیت برنامه ریزی LNA gain

ماژول NRF24L01

موارد استفاده از ماژول NRF24L01

  1. لوازم جانبی وایرلس(بیسیم) کامپیوتر
  2. موس، کیبورد و کنترل از راه دورها
  3. ۳-in-one desktop bundles
  4. کنترل از راه دور وسایل مرکزی پیشرفته
  5. هدست های VoIP
  6. دستگاه های کنترل کننده بازی
  7. ساعت های هوشمند و سنسورها
  8. کنترل از راه دور دستگاه های مصرف کننده الکترونیکی
  9. اتوماسیون خانگی و صنعتی
  10. سنسور های شبکه با توان مصرفی خیلی پایین
  11. RFID های فعال۲
  12. سیستم های ردیابی اموال
  13. اسباب بازی ها

 

معرفی پایه های ماژول NRF24L01

خب همون طور که در شکل زیر میبیند این ماژول حدود ۸ تا پایه داره، ۲ تای اول برا تغذیه ماژول هستش که باید ولتاژ ۳٫۳ ولت بهش بدی، ۵ تا پایه بعدی برا بحث ارسال و دریافت داده از ماژول هستش که این ماژول از پروتکول SPI استفاده میکنه، و پایه آخری هم پایه وقفه ماژول هستش، که من در این کتابخونه ازش استفاده نکردم، حالا شاید تو آینده این امکان رو بهش اضافه کردم شاید هم نکردم :-D، این ترتیب پایه ها رو هم ببینید تا در عمل و در بستن مدار به مشکل بر نخورید. heart
معرفی پایه های ماژول NRF24L01

اینم از ماژول سری بدون آنتن که ترتیب پایه هاش رو مشاهده میکنید و فرقی با سری آنتن دار نداره.
پروژه nrf با آردوینو

اتصال ماژول NRF به آردوینو

برای این کار باید اتصالاتتون همانند شکل زیر باشه، ولی میتونید از طریق کدهای پروژه پایه های ۳و۴ ماژول رو جاشون رو تغییر بدین و به یه پایه های دیگه از از بردتون وصل کنید، ولی برا پایه های مربوط به SPI نمیتونید این کار رو بکنید چون من تو کتابخونه از SPI سخت افزاری استفاده کردم و نه مجازی، جالا اگه بعدا یادم بود و وقتش و حسش و… بود این امکان رو هم اضافه میکنم.
این عکس زیر رو هم که میبینید، من یادمه رفتم سراغ راه اندازی NRF24L01 بعد کتابخونه آماده دانلود کردم و شماتیک اون کتابخونه همین عکس زیر بود، بعد من از کتابخونه هه خوشم نیومد و رفتم شروع کردم به نوشتن کتابخونه، و این کار حدود ۱ ماه برام طول کشید، ترجمه دیتاشیت، مطالعات جانبی در مرود اصطلاحات اختصاصی و چیزای دیگه، مطالعه در زمینه برنامه نویسی و مخصوصا کار با اشاره گرها، نوشتن مطالب مورد نیاز در سایت و… و این شماتیک پیشم موند و مدارم رو بر طبق همین بستم و الان هم همین طور هستش laugh
اتصال ماژول NRF به آردوینو

برای اتصال ماژول به میکرو کنترلر arduino mega باید اتصالات به صورت زیر باشه، توچه کنید که در زیر ماژول رو چرخوندن و اگه ماژول در عکس زیر و عکس بالا رو با هم مقایسه کنید میبینید که ماژول چرخیده، برا میکرو های دیگه هم به همین صورت هستش، پایه های Spi ماژول رو که باید به پایه های Spi اون میکرو وصل کنید و پایه های gnd و ۳٫۳ ولت هم که گفتن نداره^_^، پایه های ce و csn هم که قابل تعیین کردن هستش.
این پروژه رو با مگا هم تست کردم با ماژول های سری بدون آنتن هم تست کردم، با یه مگا و یه یونو هم تست کردم و در همه حالات جواب داده.
پروژه NRF24L01

تفاوت بین NRF24L01 و +NRF24L01

خب همون طور که در شکل زیر میبینید مدار هر دو ماژول فوق یکسان هستش، یعنی برید دیتاشیت هر دو ماژول رو بخونید همین مدار زیر رو عینا میبینید، تنها تفاوت این دو، در هسته مرکزیشون و اون IC اصلیشون هستش، که +NRF24L01 نسخه ارتقا یافته NRF24L01 هستش.(اگه خواستین میتونید خودتون هم این ماژول رو بسازید و اگه خواستید هم میتونید برید به قیمتی حدود ۳۰ تومن برا سری آنتن دار و ۱۰ تومن برا سری بدون آنتن بخرید.)
تفاوت بین NRF24L01 و +NRF24L01
که تفاوت این دو مورد رو در زیر براتون قرار میدم :

+NRF24L01 NRF24L01
۲۵۰kbps, 1Mbps and 2Mbps on air data rates ۱Mbps and 2Mbps on air data rates
۱۳٫۵mA RX at 2Mbps air data rate ۱۲٫۳mA RX at 2Mbps air data rate
۲۶µA in standby-I ۲۲µA in standby-I
در مکان ۰۹ حافظه ریجستر RPD قرار دارد در مکان ۰۹ حافظه ریجستر CD قرار دارد
این بیت حذف شده. وجود بیت LNA_HCURR از ریجستر RF_SETUP
این بیت مربوطه به جریان مصرفی اگه اشتباه نکنم.

دیتاشیت فارسی و انگلیسی ماژول NRF24L01

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

دانلود دیتاشیت فارسی و انگلیسی ماژول + توضیحات و فایل های مورد نیاز NRF24L01

 

توضیح توابع کتابخانه ماژول NRF24L01

خب این کتابخونه ای که من نوشتم شامل توابع زیر هستش(حالا هی من من کن، خوب شد کار بزرگی نکردی اون موقع چی کار میکردی buba خودم خودمو نصیحت میکنم laugh )
لیست توابع این کتابخونه رو در زیر قرار میدم و بعد میرم مورد به مورد هر کدوم رو توضیح میدم.( فقط توابع عمومی/Public )

خب این کتابخونه حدود ۵۱ تابع داره که یه سری هاش رو ما باید ازش استفاده کنیم و یه سری هاش رو نباید استفاده کنیم(منم یادم رفت دیگه توابع غیر ضروری رو private کنم) که الام میریم سراغ توضیح دادنشون به صروت تک تک(البته اونایی که مورد نیاز هستش و به کار میاد)

خب این تابع در اول پروژه باید فراخونی بشه و کارش تعیین پایه های ce و csn ماژول Nrf هستش.

خب اگه دیتاشیت فارسی ماژول nrf24l01 رو خونده باشید(در زیر قرار دادم) این تابع و این توضیحات من رو الان دقیقا متوجه میشید، این ماژول NRF24L01 حدود ۶ تا لوله دریافت داده داره و یه لوله ارسال داده، البته ماژول NRF با N تا ماژول دیگه میتونه ارتباط داشته باشه و این عدد ۶ که من میگم برا اینه که همزمان میتونه از ۶ تا ماژول دیگه دیتا دریافت کنه و بیاد دونه دونه لوله ها رو بخونه، بگذریم از این بحث،
PipeNumber : خب این پارامتر در تابع “تظیم آدرس لوله دریافت” ( setReceiverAddress ) قرار داره و میتونه اعداد ۰ تا ۵ رو بهش انتصاب بدید.
AddressReceiver و AddressWidth  : این پارامتر(AddressReceiver) نام ماژول دریافت کننده رو تعیین میکنید و یه نامی برای این لوله قرار میدید که میتونه ۳ تا ۵ بایت طول داشته باشه و این مقدار طول داده رو در پارامتر AddressWidth قرار میدید، مثلا اگه طول AddressReceiver برابر ۴ بایت باشه شما در قسمت پارامتر AddressWidth میاید و عدد ۴ رو قرار میدید.(من برای کاهش حجم برنامه این قسمت رو گزاشتم بر عهده کاربر)
AddressSender و AddressWidth : این دو تا پارامتر هم مثل ۲ پارامتر بالا هستش فقط این مورد برا تعیین آدرس ماژول فرستنده داده هستش.
توجه ۱ : این که میگم فرستنده گیرنده به این معنی نیستش که فقط یکی میتونه دیتا ارسال کنه و فقط یه ماژول میتونه دیتا دریافت کنه، اصلا به این معنی نیستش، چون ما از هر دو تابع در هر ماژول nrf استفاده میکنیم، یعنی یه نام برای لوله دریافت کننده اش تعیین میکنیم و یه نام برای لوله ارسال کننده داده اش تعیین میکنیم.
توجه ۲ : تنها ماژول هایی که نام AddressReceiver ماژول شما و همچنین کانال ماژول شما رو بدونن میتونن به ماژول شما دیتا ارسال کنن ولاغیر.
توجه ۳ : شما تنها به ماژول هایی میتونید دیتا ارسال کنید که نام AddressReceiver ماژولشون رو بدونید و همچنین کانال فرکانسیشون رو(همون توجه ۲ بود این فقط به یه صورت دیگه گفتمش laugh )
توجه ۴ : سعی کنید طول آدرس گیرنده و فرستندتون رو روی حداکثر یعنی ۵ بایت قرار بدید تا هک کردن ماژول مشکل بشه.
توجه ۵ : از تابع setReceiverAddress در برناممون دو بار استفاده میکنیم یکی لوله ۰ باید باشه و اون یکی فرق نداره، یکی رو برای لوله ۰ انتخاب میکنیم چون بسته تصدیق نامه توسط این لوله دریافت میشه، بسته تصدیق نامه چیزی هستش که به ما میگه که دیتایی که ارسال کردیم آیا توسط گیرنده دریافت شده یا نه، اگه ما این بسته تقدیق نامه رو دریافت کنیم یعنی ماژول گیرنده دیتا رو به درستی دریافت کرده؛ توجه داشته باشید که وقتی برای ماژول گیرنده دیتا ارسال میکنیم وقتی ماژول گیرنده دیتا رو دریافت کرد میاد یه بسته تصدیق نامه به صورت خودکار برا ماژول فرستنده ارسال میکنه و بهش میگه که داداش دمت گرم من دیتا رو دریافت کردم به درستی. laugh بسته صدیق نامه رو فک کنم میگفتن ACK (حالا باید تو دیتاشیتش نگاه کنید، آخرای دیتاشیت فارسی ماژول فوق رو که براتون گزاشتم)

خب لوله هایی که در تابع بالا استفاده کردید رو میاید اینجا و تنظیماتش رو تعیین میکنید(تنظیمات باید یکسان باشه – این طوری بهتره)
PipeNumber : شماره لوله(۵-۰)
EnablePipe : فعال کردن لوله(عدد ۱ رو باید قرار بدید)
payloadSize : طول حامل(دیتا)یی که این طوله باید دریافت کنه، که این طول حامل میتونه از ۱-۳۲ بایت باشه؛ اگه اعداد ۱-۳۲ قرار بدید ماژول فقط به اون مقدار میتونه دیتا در هر لحظه بخونه و در ضمن ماژول ارسال کننده هم باید به همین مقدار دیتا ارسال کنه، یعنی اگه این پارامتر رو روی ۱۰ بایت تنظیم کردید، ماژول فرستنده هم باید روی ۱۰ بایت تنظیم بشه، در این حالت دیتایی با طول ثابت ۱۰ بایت ارسال و دریافت میشه ولی اگه عدد ۰ روز قرار بدید، هر دیتایی با هر طولی میتونه ارسال و یا دریافت بشه.
enableACK : خب اینو حتما حتما فعال کنید(عدد ۱ قرار بدید) تا از ارسال شدن دیتا مطمئن بشید و اگه دیتا ارسال نشد ماژول میاد طبق یه سری قوانین که براش وضع میکنیم (توسط توابعی که در ادامه میگم) میادو  دیتا رو دوباره ارسال میکنه.

توجه : خب از اونجایی که میدونم خسته شدید(منم همین طور) یه ۳ تا صلوات برا سلامتی خودتون و خودم بفرستید. laugh خب بریم سراغ ادامه کارمون.

خب این تابع برای تنظیمات ماژول NRF24L01 هستش.
channel : تنظیم کانال فرکانسی ماژول(۰-۱۲۷ فک کنم)
DataRate : تنظیم نرخ انتقال داده، مقادیر ۲ میگ، ۱ میگ و ۲۵۰ کیلو رو داره که برا انتخاب هر کدوم باید مقادیر زیر رو قرار بدید.
توجه : مقدار ۲۵۰کیلو در NRF24L01 وجود ندارد و فقط در +nRF24L01 موجود هستش.
۲۵۰kbps_
۱Mbps_
۲Mbps_
توجه مهم : کانال فرکانسی و نرخ انتقال داده در هر دو ماژول فرستنده گیرنده باید یکسان باشد.
DelayReTransmin : خب این پارامتر زمان بین هر ارسال مجدد هستش، مثلا اگه دیتا رو فرستادی و دریافت نشد، این پارامتر تعیین میکنه که ماژول nRF باید چقدر صبر کنه و باز دیتا رو دوباره ارسال کنه.(اعداد ۱۵-۰ رو میتونید انتصاب بدید)
اگه ۰ قرار بدید حدود ۲۵۰μS صبر میکنه، اگه ۱ قرار بدید ۵۰۰μS صبر میکنه…. و اگه ۱۵ قرار بدید ۴۰۰۰μS صبر میکنه.
CountReTransmin : تعداد دفعال ارسال مجدد رو با این تعیین میکنیم(۱ تا ۱۵ بار)

خب این تابع برای ارسال دیتا هستش.
value : دیتایی که میخواید ارسال کنید.
PALevel : میزان قدرت ارسال دیتا، که میتونید اعداد ۰ تا ۳ رو طبق جدول زیر قرار بدید(هر چی عدد بزرگتر باشه قدرت و برد ارسال بیشتر میشه ولی جریان مصرفی هم بیشتر میشه و بلعکس)

DC current consumption RF output power (SPI RF-SETUP (RF_PWR
۱۱٫۳ mA ۰ dBm ۱۱
۹ mA -۶ dBm ۱۰
۷٫۵ mA -۱۲ dBm ۰۱
۷ mA -۱۸ dBm ۰۰
جدول بالا تحت شرایط زیر تعیین شده است(دمای۲۷ درجه و ولتاژ ۳ ولت) :
VDD = 3.0 V , VSS = 0 V , T A  = ۲۷ºC, Load impedance = 15Ω+j88Ω

NoACK : خب اگه میخواید بسته تصدیق نامه دریافت نکنید و این طوری سرعت ارسال و دریافت رو ببرید بالا میتویند این بیت رو فعال کنید ولی توجه داشته باشید که دیگه نمیتونید از صحت ارسال و دریافت داده اطمینان پیدا کنید چون دیگه گیرنده دیتا شما رو از دریافت دیتا خبردار نمیکنه(به نظرم همشه بزارید ۰ و غیرفعال بمونه.)

این تابع برای ارسال عدد صحیح هستش.
DataSend : دیتای ارسالی
base : نحوه فرمت بندی دیتا و ارسالش که مقادیر زیر رو میتونید قرار بدید :

اگه میخواین عددتون به صورت عادی و ۱۰ دهی ارسال بشه به جای base مقدار DEC رو قرار بدین.
اگه میخواین به صورت باینری ارسال بشه BIN قرار بدید، برای هگزادسیمال هم HEX و برای اکتادسیمال هم OCT قرار بدید.
دو پارامتر دیگه مثل تابع Send هستش.

ارسال عدد اعشاری
DataSend : عدد اعشاری ارسالی
floatDigits : تعداد ارقام اعشار که باید ارسال بشه.(مثلا عدد اعشاری شما ۳ رقم اعشار داره و شما میخواین فقط ۱رقم اعشار ارسال بشه)
بقیه پارامتر ها مثل تابع Send هستش.

خب به کمک این تابع میتونیم بفهمیم که دیتا ارسال شده یا نه.
بعد از ارسال داده میایم و از این تابع استفاده میکنیم و داخل یه while قرارش میدیم و تا زمانی که ۱ هستش یعنی دیتا ارسال نشده و اگه صفر بشه یعنی دیتا ارسال شد.

این تابع برای دریافت داده هستش.
data : دیتای دریافتی در این متغییر ذخیره میشود.

خب این ۳ تا تابع هم میتونه مفید باشه.
CountLostPackets : تعداد بسته های از دست رفته.(با تغییر کانال مقدار این تابع ریست(۰) میشه)
ResetCountLostPackets : ریست کردن شمارنده تعداد بسته های از دست رفته(اگه CountLostPackets مقدارش به ۱۵ برسه دیگه افزایش پیدا نمیکنه و متوقف میشه و در این صورت باید مقدارش رو ریست کنیم که همون طور که گفتم تنها با تغییر کانال این مقدار رست میبشه و اگه میخواین همین کانال باشید بایدبه جای ChannelChangeCount عدد ۰ رو قرار بدید و اگه میخواید یه مقداری کانل افزایش پیدا کنه مثلا از ۰ بره به ۳ باید به جای ChannelChangeCount عدد ۳ رو قرار بدید و اگه میخواید کانال کاهش پیدا کنه مثلا از ۵ به ۱ باید عدد ۴- رو قرار بدید.)
CountRetransmitPackets : تعداد ارسال مجددها رو برای هر ارسال نشون میده، با شروع ارسال جدیدی، این پارامتر مقدارش ریست(۰) میشه.

setChannel : تنظیم کانال – عددی بین ۰ تا ۱۲۶
getChannel : پیدا کردن شماره کانال

پروژه های آردوینو با ماژول nrf24l01

خب در این قسمت دو تا پروژه میزارم براتون یکی دیتا با طول ثابت ارسال میشه و تو یکی دیتا با طول متغییر(که این حالتش یه جورایی میشه گفت چت روم ساختیم laugh )

ارسال و دریافت دیتا با طول ۵ بایت(هر کدوم از کدها رو در یه ماژول قرار بدید)

 
 

برنامه شماره دو، ارسال و دریافت داده هر طولی(چت روم!!!)

 
 

فیلم پروژه و کتابخونه در عمل ( توضیحات هم داخلش دادم )

38MB پروژه راه اندازی ماژول NRF24L01 با آردوینو
0%
00:00  /  08:17

 

توجه ۱ : پروژه های دیگه داخل کتابخونه پوشه Example هستش.
توجه ۲ : در پوشه کتابخونه، فایل DmfNRF.h، خط ۲۵، ماکرو یی با نام DEBUG تعریف شده که مقدارش ۱ هستش، در هر تابعی یه سری توضیحات هستش که در صورت فراخونی اون تابع، اون توضیحات در پنجره سریال نمایش داده میشه، اگه نمیخواین این اطلاعات نمایش داده بشن، میتونید مقدار این ماکرو رو ۰ کنید.

نحوه هک کردن ماژول

  1. دانستن کانال فرکانسیش
  2. دانستن آدرس فرستنده یا گیرنده ماژول
  3. دانستن نرخ انتقال داده ماژول

والا میخوام تغییرات بدم ولی هر روز یه قطعه و ماژول بهتر میاد آدم دلش نمیاد از این کارا(تغییرات و نوشتن کتابخونه) انجام بده/ف مثلا همین Nrf برا سال ۲۰۰۸ هستش و الا سال ۲۰۱۶ هستش یعنی ۸ سال پیش تقریبا، و الان فک کنید چه چیز های جدیدی اومده تو بازار، ولی ما داریم با تکنولوژی ۸ سال پیش کار میکنیم و جیزای حدید هنوز تو ایران نیومده(حالا شاید هم اجنبی ها نساختن و یا هنوز وارد ایران نشده و یا وارد شده و ما خبر ندارم، غیر از این ۳ حالت که دیگه نیستش laugh )

خب این مطلب هم تموم شد، اگه مفید بود براتون یه دعایی کنید ما رو و رهبرمون رو و رزمندگان اسلام رو(چقدر “رو” :-D).
حدیث تصویری زیر رو هم ببینید ( دم اونی که این عکس رو طراحی کرده گرم، خدایش هر موقع میبینم این عکس رو کلی میخندم، در ضمن حدیثش صحیح هستش و تو نهج البلاغه دیدم به همین صورت بود.)
احادیث تصویری
فعلا یا علی.

تعداد مطالب : 367 تا
جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
بقیه جلسات :
این مطلب هیچ طبقه بندی یی ندارد!
ارسال دیدگاه
361
نظرات این مطلب بسته شده است.
  1. محمد رضا

    مهمان

    محمد رضا

    سلام وقت بخیر.میشه ا نمونه از چند nrfبه صورت شبکه بزارین.مثلا از 3 نقطه دیگه دما به صورت جداگانه بخونه.ممنون

    مشاهده پاسخ ها (1)
    • محمد حسین صادقی

      مهمان

      محمد حسین صادقی

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

  2. محمد پارسا

    مهمان

    محمد پارسا

    سلام و عرض خسته نباشید من یه سوال دارم .
    من این پروژه هارا با اردوینو میزنم ولی زمانی که پورو مینی را به عنوان ارسال کننده و نانو را به عنوان دریافت کننده قرار میدهم همه چیز درست هست ولی وقتی برعکس میکنم یعنی پورو مینی دریافت کننده و نانو ارسال کننده دیتاهام از بین میرن و چیزی ارسال نمیشه من همه چیز مثل سیم بندی و غیره را هم چک کردم ولی وقتی دوباره برعکس میکنم درست میشه وسر vcc , gnd هردو nrf هام هم خازن ۱۰۰ میکروفاراد گذاشتم تا ماژول هی ریست نشه اگه میشه راهنمایی کنید ممنون.

  3. مهدی

    مهمان

    مهدی

    سلام دادا اگه از کتاب خونه اصلی استفاده کنم(کتابخونه شما نه) ، اگه کس دیگه نزدیک من از nrf یا رادیو کنترل شرکتها استفاده کنه قاطی نمیکنه یا مثلا ب اون وصل نمیشه؟ اخه تو سایتای دیگه ک اومدن از کنابخونه اصلی استفاده کردن نیومدن بگن ک یک اسم بزار ۴ بیت . میدونی منظورمو؟ اصلا کاری ب توی کتابخونه ندارن فقد فراخانی میکنن
    این سوالم پرسیدم چون یه جاهایی از مطلبتو نگرفتم دا . وگرنه همینو میزدم غمم نبود
    در کل تشکر

  4. ali

    مهمان

    ali

    سلام خسته نباشی .یه دستور میخوام واسه فرستنده که بره تو استند بای.مثلا فرستنده کنترل ماشین اسباب بازی باشه و وقتی 2 دقیقه باهاش کار نکنی بره تو استند بای یا اصلا خاموش بشه چون فرستنده با باتری کار میکنه شارژش تموم نشه چکار کنم؟

  5. ملکیان

    مهمان

    ملکیان

    سلام
    عالی ممنون بینهایت
    الان دو روزه دارم میگردم چرا پایپ 0 رو مثل ادرس گیرنده مینویسند. هیچ جا پیدا نکردم.

  6. کاظم

    مهمان

    کاظم

    با عرض سلام و تشکر بابت مطلب مفیدتون. من می خواستم از یه ماژول به چند تا دیگه ماژول (حداکثر تعداد که نمیدونم چنده) یه متن یا شناسه ارسال کنم. البته نه به صورت همزمان. مثلا بگم به فلان ادرسی فلان متن رو بفرست. و همچنین هر یک از این ماژولها بتونن به ماژول مستر هم ارسال کنن. ولی نمیدونم تو ماژول مستر و ماژول های اسلیو رجیسترهای tx_addr و rx_addr_px رو چجوری ادرس دهی کنم. همچنین تنظیم رجیسترهای فعال سازی پایپها هم نمیدونم چطوره. ارتباط بین دو ماژول که یکی فرستنده و اون یکی گیرنده باشه رو راحت انجام میدم. اگه ممکنه توضیح بدید این دوتا رجیستر که گفتم واسه چی استفاده میشه و ادرس دهی واسه کاری که میخوام بکنم چجوریه. یه توضیح کوتاه هم بدید کافیه smile . در کل میخوام واسه هوشمندسازی ساختمان استفاده کنم

  7. امیر

    مهمان

    امیر

    ببخشید امکان داره یه نمونه از تابع isSending مثال بزنین؟!
    متوجه نمیشم چجوری باید ازش استفاده کنم …

  8. دل آرام

    مهمان

    دل آرام

    خیلی خیلی ممنون، فوق العاده مفید! اجرتون با خدا… .

  9. احسان

    مهمان

    احسان

    این کتابخونه ها رو فقد میشه تو اردینو استفاده کرد یا با کدویژنم میشه

    مشاهده پاسخ ها (3)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      تو کدویژن باید تغیرات بدی.

      • احسان

        مهمان

        احسان

        بخاطر شی گراییش؟

        • مهدی دمیرچیلو

          نویسنده این مطلب

          مهدی دمیرچیلو

          این که آردوینو cpp هستش و کدویژن c یه بحثیه
          مورد دیگه مثلا نام گزاری رجیستر ها، توابع پیشفرض ( مثل خوندن نوشتن پورت ها ) و …
          اینا همه رو باید اصلاح کنی..

  10. میلاد بشیرنیا

    مهمان

    میلاد بشیرنیا

    سلام مهندس خسته نباشید.
    همین پروژه که با avrانجام دادین جلو نظراتشو بستین یه سوال داشتم اونجا اگه ما بخوایم با پوش باتونی که زده میشه اون ور یه نوشته نمایش داده بشه چع تغییراتی باید تو سورس داده بشه؟میشه کمکم کنین کارم خیلی گیره مرسی.

  11. سیدرضا سرفرازی

    مهمان

    سیدرضا سرفرازی

    با سلام
    خداقوت
    من خیلی از اطلاعات شما بهره بردم ، خدا به شما توفیق بده در ظل توجهات حضرت مهدی(عج) به کارتون ادامه بدید. یاعلی(ع)

  12. Linuxism

    مهمان

    Linuxism

    واقعا دمت گرم. به بهترین شکل ممکن مشکلمو حل کردی. امیدوارم پر انرژی به کارت ادامه بدی. victory

  13. aziz

    مهمان

    aziz

    سلام
    دمت گرم حاجی خیلی کارت درسته
    تقریبا برای هر مطلب و موضوعی میخوام سرچ کنم حواسمو میدم که dmf313.ir مطلبی داره یا نه، خواستم بگم در این حد مخلصم یا بیشتر
    حالا سوالم
    کتابخونه عالیه و برای یه ریموت عالیه اما من میخوام بدونم دیتای دریافتیم با چه قدرتی دریافت شده تا بدونم فرستنده چه مقدار فاصله احتمالی با گیرنده داره؟
    تو توضیحاتت نوشته بودی که حساسیت گیرنده بسیار خوبی داره که داره اما آیا میشه مقدار توان ورودی رو هم برگردونیم
    ممنون

  14. ali

    مهمان

    ali

    سلام. اگه بخوام یه سیستم بسازم با یه فرستنده و بیش از 6 گیرنده(منظورم از بیش از 6 اینه که شما تا 6 تا گیرنده رو توی آموزش توضیح دادید) رو کنترل کنم(مثلا 30 گیرنده)، آیا با این کتابخونه امکانپذیر هست؟

  15. MORTEZA

    مهمان

    MORTEZA

    سلام.میشه از این کتابخونه برای میکروهای STM استفاده کرد؟ اگه آره چه جوری؟
    یا اینکه چه جوری میشه این کتابخونه رو به یک کتابخونه برای STM تبدیل کرد؟لطف می کنید اگه پاسخ بدین.

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-نه.
      شما اگه C/CPP بلد باشید و برا آردوینو و STM کد زده باشید، تبدیل یه کد به محیط دیگه نباید کار سختی باشه، بعضی توابع رو مثلا باید تغییر بدی – DELAY – ورودی خروجی ها – رجیسترها که یکم اذیت میکنه -و….

  16. mahdi

    مهمان

    mahdi

    سلام
    ممنون از اموزش عالی و کتابخونه خوبی که نوشتی heart
    یه سوال داشتم ، من یسری ماژول دارم میخوام که سه تا سه تا به هم متصل باشن ( مثلا 30 تا ماژول که هر 3 تایی یه شبکه جدا باشن ) ، برای اینکار کانال ها با هم فرق داشته باشه کافیه ؟ ( که تداخل نداشته باشند )
    و اینکه چجوری میشه تعیین کرد توی یه شبکه ، دستگاه A ، اطلاعات رو بفرسته برای دستگاه C و دستگاه B اطلاعات رو دریافت نکنه ؟
    تشکر blush

  17. SAT

    مهمان

    SAT

    سلام تفاوت این کتابخانه ای که گذاشتین با کتابخانه RF24 چیه و کدوم بهتره؟؟؟

    مشاهده پاسخ ها (2)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – کتابخونه توی این مطلبو من نوشتم – اون یکی رو یه نفر دیگه – جفتش هم بر مبنای دیتاشیت آیسی هستش و نه چیز دیگه ای.
      کدومش بهتره؟ نمیدونم – من تا حد امکان سعی کردم کتابخونه رو کامل بنویسم – اون یکی کتابخونه رو نمیدونم –

      • SAT

        مهمان

        SAT

        دست درد نکنه داداش مهدی! yes

  18. MORTEZA

    مهمان

    MORTEZA

    نه،سوالم اینه که من تو توابع که ماکرو dibug رو 0 میکنم و یا print رو کامنت می کنم ولی بازم توضیحات نمایش داده میشه.اشکال از کجایه؟

  19. MORTEZA

    مهمان

    MORTEZA

    خدا خیرتون بده.عالی.
    فقطیک سوال. این توضیحات که بعد از هر با ارسال فرستاده میشه کجا دقیقا نوشتینش تو کدوم تابع هست؟

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      از طریق serial نمایش داده میشه.

  20. محمد طاهری

    مهمان

    محمد طاهری

    سلام اقا مهدی دست درد نکنه کتابخونه خوبی نوشتی ok . یک سوال دارم-
    اگر که کد حالت استاتیک رو پایپ لاین و کانال ثابت بگیریم و کدPTX رو ;ها همون باشن و برای کد های PRX بیایم مثلا 10 تا ماژول بزاریم و یک متن رو از فرستنده PTX به 10 تا گیرنده ارسال کنیم که متن حاوی یک پیغام باشد که همه ماژول ها دریافت کند و در هر گیرنده نسبت به پیام گرفته شده یک عمل حاص انجام شود در این حالت به نظرتون بهترین راه چیه؟

  21. موسوی

    مهمان

    موسوی

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

  22. ناشناس

    مهمان

    ناشناس

    سلام
    من سعی کردم این پروژتون را با پروژه avr تلفیق کنم به این صورت که یک طرف ارسال کننده nrf داشته باشم(که با استفاده از arduino کنترل میشه ) و سر دیگه گیرنده avr داشته باشم که دیتا را روی lcd نمایش بده اما این دو ماژول با هم ارتباط برقرار نمیکنند
    لازم به ذکره برای arduino از کتابخانه شما و برای avr هم از کتابخانه ای که شما استفاده کرده بودید استفاده کردم.
    به نظرتون مشکل چی میتونه باشه؟

  23. sajad

    مهمان

    sajad

    سلام کسی با ای سی ADF7020 کار کرده؟
    بردش رو زدم تو فرکانس 910 مگاهرتز ارسال دارم اما تو گیرنده چیزی دریافت نمی کنم

  24. حمید

    مهمان

    حمید

    سلام
    وقتتون بخیر باشه
    ببخشید بنده یه سوال دارم میخاستم ببینم شما با IC یا مازول ADF7020 برای ارتباط بی سیم کار کردید؟؟؟
    بنده میخام با ARM این IC را راه اندازی کنم. میشه راهنمایی بفرمایید.

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – تا جایی که یادمه سریال بود – و ارتباطش 2 طرفه غیر همزمان بود – یعنی همزمان نمیتونی هم دیتا بفرستی و هم بخونی – باید یه تغییر 10 میلی ثانیه ای قرار بدی مثلا یا بیشتر کمتر که باید تست کنی و مقدارشو بدست بیاری

  25. بهزاد

    مهمان

    بهزاد

    طبق معمول َ عالی و عالی و عکسی که گذاشتی هم عالی

  26. حسین

    مهمان

    حسین

    سلام
    دستت درد نکنه داداش من این کتابخونه رو دانلود کردم و با یکم تغییرات تبدیلش کردم به اتمل استدیو. اگر وقت داشته باشم برای STM32 هم همین کارو میکنم. فقط اگر میشه یجایی از آموزش ذکر کنید که حتما برای تغذیه ماژول، یه خازن بزرگ، مثلا 1000uf بذارن تا ماژول هنگام ارسال هنگ نکنه و مثل من چند ماه بیخودی علاف نشن dash

  27. mahdiGameMaker

    مهمان

    mahdiGameMaker

    سلام من اینو راه انداختم ،فقط تو اینو به عنوان تذکر یا هرچی اضافه کنید که باید فرکانس هر دو تا ماژول یکی باشه!

  28. mahdiGameMaker

    مهمان

    mahdiGameMaker

    سلام و خسته نباشید
    مهندس اینو اضافه کنید که اگر کسی براش جواب نداد nrf ، اسم همه ی ارسال کننده و گیرنده رو یکی کنه تا جواب بده!(منظورم اون اسم فرستنده و گیرنده که اول کد تایین میکنیم)
    راه پیشنهادی: hi hi
    میتوننند هم از مبدل سریال یا السیدی استفاده کنند تا ببینند که ایا بین این دوتا اطلاعا ت رد و بدل میشه یا نه!

  29. arian

    مهمان

    arian

    سلام من از کد شما برای انتقال عدد استفاده کردم و 19200 عدد رو میفرستم سرعت رو 2مگابیت هست و بادریت روی 2,000,000 هست ئلی این انتقال 20 ثانیه طول میکشه دلیل چی میتونه باشه

  30. arian

    مهمان

    arian

    سلام من از کتابخونه ی nrf شما استفاده کردم و 19200 بایت رو با sendint پشت سر هم ارسال میکنم و با get_data اونور میگیرم. سرعت رو 2مگابیت هست و بادریت رو 2,000,000 ولی باز ارسال حدود 20 ثانیه طول میکشه !!!!!

  31. رضا

    مهمان

    رضا

    سلام و عرض ادب؛ آیا کتابخانه این ماژول برای پروتئوس نوشته نشده است؟ (میخواستم تو پروتئوس شبیه سازی رو انجام بدم)

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-نمیشه.

  32. Mahdi

    مهمان

    Mahdi

    سلام. خسته هم نباشی.
    میخواستم ی رادیو ۱۴ کانال بسازم با این nrf و ی کدی برای خود ترنسمیتر نوشتم و اضافه کردم به کد های تو ینی یجوری مخلوطش کردم. ولی فقط تا اخر تابع setup موفق بودم. موندم چجوری ۱ و ۰ منطقی کانال ها و ۰ تا ۲۵۵ جوی استیک ها رو بفرستم و از اونطرف چجوری به همون صورت خروجی بگیرمشون. تو رو خدا ی راهنمایی بکن. و دمت گرم و خدا خیرت بده عالی توضیح دادی کتابخونه رو.

  33. اکبر

    مهمان

    اکبر

    سلام، آیا با آردیونو می تونیم هم ماژول بلوتوث و هم nrf رو با هم داشته باشیم؟

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – نمیدونم چه مدل ماژول بلوتوی مد نظرتونه ولی برای مثال ماژول hc05 که سریال هستش و nrf که اکثرا spi هستن و مشکلی ندارن با هم – میتونی از هر دوش استفاده کنی.

  34. Mahdyy

    مهمان

    Mahdyy

    سلام چجوری میشه فاصله ی حدودی ‌رو در فاصله کم مثلا اگه nrf به یک متری یا دومتری nrf دیگه رسید متوجه بشیم؟
    راستی چجوری باید irq استفاده کنم؟ تو کتابخونه رو نگاه کردم چیزی متوجه نشدم که چجوری باید پایه ی وقفه رو به تایمر اردوینو متصل کنم.
    ممنون

  35. مهدی

    مهمان

    مهدی

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

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-باید بررسی کنی که تابعی برای این کار هستش که یه دیتا بفرسته به ماژول و اگه جواب گرفتن یعنی.. و اگه نگرفت یعنی…

  36. mahdy

    مهمان

    mahdy

    اقا سلام
    من به یک مسئله ای بر خوردم امیدوارم بتونم منظورمو بدرستی بگم و شماهم راهنماییم کنیم،پیشاپیش ممنونم بخاطر وقتی که میگذارید.
    پروژه ای که من میخوام استفاده از Nrf به این صورت هستش که اول میخوام با اردوینو A به اردوینو B یک کدی بفرستم اگر اون کد در اردوینو B درست بود بعدش یک کد دیگه به اردوینو A بفرستم از طریق اردوینو B حالا مشکلی که من دارم اینه که تا مرحله دوم رو انجام میده ولی مرحله آخر رو انجام نمیده.
    یعنی کد از A به B میره ,ولی از B به A نمیره.
    لطفا اگه میشه کمکم کنید خیلی درگیرش شدم.
    ممنون
    ببخشید اگه بد توضیح دادم. wink

    مشاهده پاسخ ها (7)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      متاسفانه از nrf به علت مشکلاتش دیگه استفاده نمیکنم و لذا خودتون باید مشکلو پیدا کنید و من کمکی نمیتونم بکنم.

      • mahdy

        مهمان

        mahdy

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

        • مهدی دمیرچیلو

          نویسنده این مطلب

          مهدی دمیرچیلو

          سلام-فعلا هیچی
          چون هر چی که کار کردم هر کدوم یه مشکلی داشته.
          الان مثلا دارم با ADF7020 کار میکنم خوبیش اینه که پروتکولش سریاله – نیاز به کتابخونه خاصی نداره و راه اندازیش سادس – بدیش اینه که فرستندگی و گیرندگیش همزمان کار نمیکنه و اصل مشکل من باهاش فعلا اینه که باید حلش کنم.
          یه ماژول هستش بردش کمه
          یکی قیمتش زیاده
          یکی برد واقعیش کمه ( برد اسمی و ذکر شده تو دیتاشیت ماژول بدرد عمه سازنده ماژول میخوره )
          باید بگردی والا – خودم حقیقتا ماژول خوبی که از همه نظر خوب باشه رو سراغ ندارم فعلا

      • mahdy

        مهمان

        mahdy

        سلام ممنون از پاسختون.
        نیاز های من به این صورته که برد کم ، امنیت و ارتباطش دوطرفه باشه مثل nrf باشه کارمو راه میندازه.
        فقط من زیاد شنیدم که میگن nrf امنیتش پایینه.
        راه حلی هستش برای این مسئله؟
        یا بااین مشخصات ماژول بهتری سراغ دارید؟
        ی سوال دیگه هم داشتم از خدمتتون: با این کتابخانه ی شما میشه از پایه ی IRQ استفاده کرد؟من ی جا خوندم که از پایه ی IRQ استفاده کنم دیتا رو با اطمینان بیشتری میتونم ارسال و دریافت کنم
        ممنون از وقتی که گذاشتید ببخشید سوالاتم زیاد شد.

        • مهدی دمیرچیلو

          نویسنده این مطلب

          مهدی دمیرچیلو

          سلام
          امنیت رو چی تعریف میکنید؟

        • معین صابری

          نویسنده سایت

          معین صابری

          سلام، من با این ماژول کار نکردم اما اگر میخواید حین ارسال و دریافت داده هاتون شنود نشه، باید داده ها هنگام ارسال رمزگذاری بشه،مثلا فرض کنین عبارت salam رو میخواین بفرستین، میتونین به صورت برعکس بفرستین یعنی به صصورت malas بفرستین و گیرنده خودش برعکسش کنه، اینجوری اگر داده ها شنود بشه یه چیزبی معنی میشه و کسی متوجه. نمیشه شما چی فرستادین
          برای اطلاعات بیشتر تو این زمینه الگوریتم های رمزنگاری رو یه سرچی بزنین

        • mahdy

          مهمان

          mahdy

          سلام فرمودید امنیت رو چی تعریف میکنم در جواب باید خدمتتون بگم که پروژه ی به این صورت هستش که ازnrf A یک کد رو میفرستم به nrf B وقتی کد برای nrf B شناسی شد یک کد دیگه میفرسته به nrf A و میگه من شناساییت کردم.
          و nrf A قراره یک درب رو باز کنه امنیتی هم هستش. حالا در این بین چون هر 2 ثانیه nrf A یک کد رو میفرسته تا ببینه nrf B نزدیکش هستش که کد رو دریافت کنه و درب رو باز کنه در این بین ممکنه بتونن به ادرس فرستنده و کانالش دسترسی پیدا کنن و درب رو باز کنن.
          پینشهاد شما چی هست برای قضیه برای جلوگیری از غیر قابل دسترس بودن این اطلاعات.
          این پروژه برام خیلی مهمه ممنون میشم جواب بدید.
          باتشکر

  37. میثم

    مهمان

    میثم

    سلام اقا مهدی مرد
    عمو با این ماژول فرستنده گیرنده میشه ارتباط دو نفره داشت یا مثل واکی تاکی وقتی صدا میفرستی دیگه نمشه همزمان دریافت کرد ؟
    اگه پروژه ارسال و دریافت صدا هم داشتی دیگه حرف نداشتی?

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-بستگی به صدا داره – MONO باشه یا STERIO – بیت ریتش چقدر باشه و … سرعت ماژول رو چند تنظیم شده باشه و … – که باید بشینی حساب کنی.
      تا جایی که یادمه – همزمان هم میفرستی و هم میگیری.
      شما ADC و PWM میکرو رو راه اندازی کنید – بعد ماژول فرستنده گیرنده خوب پیدا کنید و راه اندازیش کنید – بعد یه میکرو فون به پایه ADC میکرو وصل کنیدو مقدارشو بخونید و بفرستید و دریافت کنید و بعد با PWM دوباره به ولتاژ تبدیلش کنید.وسلام.

  38. حمید

    مهمان

    حمید

    با عرض سلام و خدا قوت
    واقعا سایت و آموزشها عالیه
    آقا مهدی چطوری میشه این کتابخونه رو برای کدویژن و C تبدیل زد

  39. مهدی

    مهمان

    مهدی

    سلام تازه کارم مثلا اگه بخوای دیتا شیت یه ماژول رو خوب بخونی چطور واز کجا بایدشروع کنی چون دیتا شیت بعضی از ماژول ها رو که مسخوندم خیلی سخت بود نمی فهمیدم میشه بگی خودت چطور ترجمه میکنی واون کلماتی هم که نمیفهی چیکار میکنی

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – انگلیسیت باید خوب باشه و درباره قطعه مورد نظر هم باید اطلاعاتی داشته باشی – مثلا تو ترانزیستور میری میبینی نوشته Hfe خب اگه درباره ترانزیستور مطالعه نکرده باشی شاید فهمیدن این اصطلاح یکم سخت باشه – والا روش خاصی نداره – اگه هم داشته باشه من بلد نیستم توضیح بدم حقیقتا – خودم هم دیتاشیت خونیم ضعیفه

  40. داود ده جوریان

    مهمان

    داود ده جوریان

    سلام :
    این ارورر چیه
    exit status 1
    Error compiling for board Arduino/Genuino Mega or Mega 2560.

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام.نمیدونم

  41. علیرضا

    مهمان

    علیرضا

    سلام
    اگر امکان دارد یه برنامه مثال که در ان یک ماژول به طور خودکار پاسخ یک پیام را میدهد قرار دهید.
    من از برنامه شما استفاده کردم و همه چیز عالی است. ولی میخواهم یک ماژولم پس از دریافت کدی خاص عددی را به ماژول اولیه برگرداند، اکثرا پیغام data lose میدهد.
    ممنون از مطالب مفید سایتتون.

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      این کاری که گفتید رو من حوصلشو ندارم
      اما data lose – بررسی کنید ببینید مشکل از چیه و به ما هم بگید- good

  42. ENERGY001

    مهمان

    ENERGY001

    آقا مهدی دسسسسسسسسسسس خوش داری …
    واقعا مرسی …
    http://s9.picofile.com/file/8314259342/robowifi.rar.html
    اینم جایزت …
    یه نمونه کار ساده …
    یه رباته …

  43. جواد

    مهمان

    جواد

    سلام
    از کتابخانه nrf24l01+ که زحمتشو کشیدید استفاده کردم در یک پروژه.
    الان میخوام شیلد اترنت رو هم وصل بکنم به آردوینو.
    میخواستم بپرسم که soft spi رو چطور باید اضافه بکنم به کتابخانه؟
    آیا اگر همه پین های دو تا شیلد رو به جز ce و csn به هم وصل بکنم امکان استفاده از دو شیلد رو دارم؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-spi که مثل serial نیست که – چندین تا قطعه رو میشه بهش وصل کرد.

  44. دانیال

    مهمان

    دانیال

    DMF313.RXFifo(NULL)
    ببقشید که بازم مزاحم شدم
    میشه این تابع رو هم توضیح بدی؟؟؟

  45. دانیال

    مهمان

    دانیال

    سلام داداش مهدی.
    امیدوارم حالت خوب باشه.
    میخواستم بدونم منظور از پاکت های از دست رفته چیه (خود مفهوم پاکت) و اینکه چرا مقدارش بیشتر از ۱۵ نمیشه.
    و اینکه تو تابع ResetCountLostPackets منظور از کانالی که گفتین همون ۱۲۷ تا کانال فرکانسیه؟؟
    حالا مگه این کانالو تغییر بدیم مشکلی پیش نمیاد؟؟؟ اخه قبلش گفتید که باید این کانال هم واسه فرستنده و هم واسه گیرنده یکی باشه.
    و حالا اگه تغیرش ندیم و ۰ رو بذاریم که همون کانال بمونه اون تابع شمارنده پاکت های از دست رفته ریست میشه یا نه؟؟؟
    و اینکه تو اون پروژه ی اول اصلا دونستن پاکت های از دست رفته به چه کاری میاد؟؟
    ببقشید سرتو درد اوردم
    ممنون میشم جوابمو کامل بدی.

  46. فرزین

    مهمان

    فرزین

    سلام خسته نباشید من کتابخانه RF24 از سایت github.com زدم تو نرم افزار اردینیو. میخاستم یه راهنمایی کنی من برنامه تست Hello World که برای راه اندازی با همون کتابخانه که زدم با دو ماژول nrf2401بدون انتن خوب کار میکنه ولی تو قسمت فرستنده ماژول nrf2401+ انتن دار جای یکی از ایم ماژولnrf2401 بدون انتن میذارم برنامه کار نمیکنه بعد دوباره هیمن ماژول انتن دارتو قسمت گیرنده میذارم برنامه کار میکنه ایا برای nrf2401+ انتن دار باید کتابخانه جدا بزنم ؟ ممنون میشم راهنمایی کنید

  47. رضا

    مهمان

    رضا

    خب کاش یه همچین کتاب خونه ای برای avr بود.من نیاز دارم ولی نیست dash

  48. علی

    مهمان

    علی

    سلام مهندس
    سمت فرستننده در قسمت serial monitor تنها این پیغام چاپ میشه
    PALevel = 3
    Dynamic Payload Size = 9
    PALevel = 3
    Dynamic Payload Size = 9
    PALevel = 3
    Dynamic Payload Size = 9
    Size = 9
    PALevel = 3
    Dynamic Payload Size = 9
    PALevel = 3
    لطفا راهنمایی کنید

  49. علی

    مهمان

    علی

    سلام
    من هرکاری میکنم کتابخانه DmfNRF اضافه نمیشه
    لطفا راهنمایی کنید

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      اون فایل آخری رو دانلود کن.

  50. ناشناس

    مهمان

    ناشناس

    سلام .من کدهای شمارو روی اردینو اپلود کردم ولی متاسفانه موفق به ارسال داده نمیشم.شما احنمال میدین کجای کارم ناقصه؟ایا کار اضافه ای لازمه انجام بدم؟تنضیماتی چیزی؟

    مشاهده پاسخ ها (1)
    • ناشناس

      مهمان

      ناشناس

      سلام
      با اجازه بزرگ تر ها
      سیم بندی رو چک کنید ببینید که پایه misoدرست وصل شده.
      یه وقت بجای irqمتصل نشده باشه.
      اگر اتصال درست بود از یک آردوینو ئیگه استفاده کنید .احتمال خیلی زیاد جواب می گیرید

  51. مهدی

    مهمان

    مهدی

    سلام.
    این کتابخونه واسه کدویژن کار نمیکنه؟
    ممنون بابت زحمتاتون.

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – نه باید تبدیل کنی اگه بلدی.

  52. محمد امین

    مهمان

    محمد امین

    سلام مهندس.وقت بخیر. سایتت واقعا عالیه. فقط یک سوال .فرض کنیم من بخوام از ۲ مکان مختلف با سنسور ds18b20 دما رو اندازه بگیرم و برای یک گیرنده ارسال کنم(با ماژول nrf24l01+) میشه راهنماییم کنی درمورد کدهای برنامه نویسیش، خیلی کارم گیره. در پناه حق پاینده باشی مهندس.

  53. امید

    مهمان

    امید

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

  54. آرمان

    مهمان

    آرمان

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

    مشاهده پاسخ ها (1)
    • احمد

      مهمان

      احمد

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

  55. مصطفی

    مهمان

    مصطفی

    سلام مهندس دمرچیلو
    من دنبال پروژه ۳ یا ۴ nrf با این ماژول هستم
    اگه کدهاش خدمتتون هست میشه کمکم کنید؟

  56. zaman1

    مهمان

    zaman1

    no
    من از ماژول USB to Serial PL2303 استفاده میکنم و همونطور که می دونید dtr نداره میتونه مشکل از اونجا باشه
    اگه میشه یخورده دربارش توضیح بدین وبگین راه حلش چیه

  57. مصطفی

    مهمان

    مصطفی

    سلام
    من کدها رو اینجوری بهش اعمال کردم ولی از هیچ کدوم از سنسورها دیتا دریافت نمیکنه
    DFM313.SetsenderAddress(0,(char)”A”,5)\\A
    DFM313.SetReceverAddress(1,(char),”B”,5)//B
    DFM313.SetReceverAddress(2,(char),”C”,5)//C
    DFM313.Pipe(0,1,01)//pipe1
    DFM313.Pipe(1,1,0,1)//pipe2
    DFM313.Pipe(2,1,0,1)//pipe3
    DFM313.config(1,Crc8bit,_1Mbps,1,15)//configution
    لطفا راهنمایی بفرمایید. دوتا با هم کار نمیکنه. باید چکارش کنم آقای دمرچیلو؟

    مشاهده پاسخ ها (1)
    • mahdy

      مهمان

      mahdy

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

  58. محمد

    مهمان

    محمد

    چشم. ممنون. دستتان درد نکند

  59. zaman1

    مهمان

    zaman1

    استاد من ار برد پرو مینی استفاده کردم com بهش وصل شده ولی وقتی کد ها رو اپلود میکنم ارور ۵۰۰ میده sad
    اگه میشه سریع پاسخ بدین
    ممنون

  60. مهدی

    مهمان

    مهدی

    استاد من ار برد پرو مینی استفاده کردم com بهش وصل شده ولی وقتی کد ها رو اپلود میکنم ارور ۵۰۰ میده sad

  61. مهدی

    مهمان

    مهدی

    استاد من ار برد مینی استفاده کردم com بهش وصل شده ولی وقتی کد ها رو اپلود میکنم ارور ۵۰۰ میده

  62. مصطفی

    مهمان

    مصطفی

    سلام
    پروژه ارتباط دو nrf را برای انتقال داده جواب گرفتم. پروژه ارتباط ۳ الی ۴ یا بیشتر nrf را چطور باید انجام بدم.

  63. مصطفی

    مهمان

    مصطفی

    سلام.
    ممنونم از شما. مشکلم تا حدود زیادی حل شده . آقا مهدی پرو زه ارتباط ۳-۴ آردینو که توی نظرات گفتین انجامش دادین را از کجا باید گیر بیارم.
    اگه انجامش دادین از کجا دانلودش کنم. و اگه انجام نشده چجوری باید تعدادی آردوینو را به یک آردوینو وصل کنم. با nbrf
    ممنونم از سایت عالی که داری

    مشاهده پاسخ ها (3)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      انجام ندادم – یادم هم نمیاد همچین حرفی زده باشم – احتمالا گفتم که میخوام انجام بدم و از این جور حرفا – به علت مشکلاتی که nRF داره به نظرم – باهاش کار نمیکنم دیگه.

      • مصطفی

        مهمان

        مصطفی

        پس پیشنهاد شما چه ماژولی هست که جایگزین کنم با این؟
        که بتونم ۳-۴یا تعداد بیشتری آنتن را به هم وصل کنم؟

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

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

  64. محمد

    مهمان

    محمد

    با سلام و عرض خسته نباشید.
    یک اتفاق عجیب برای nrf من افتاده است. به این صورت که داده را می فرستد و من در سمت گیرنده داده را دریافت می کند. ولی در سمت فرستنده می نویسد که داده گم شده است و ان عدد تا ۱۵ می شمارد و دوباره صفر می شود.!!!!!!!!!!!!!!!!!!!!! wacko
    عجیبش این است که داده انتقال پیدا می کند. الان مشکل در کجا هست که می نویسد داده گم شده ولی داده را انتقال می دهد؟ فکر کنم این مشکل را حل کنم قسمت دینامیک هم راه بافتد. sorry
    راستی فرکانس کاری SPI بر روی کار کرد کد تاثیر می گذارد؟ یعنی حتما باید همین فرکانس را در نظر بگیریم.؟ من کد شما را انتقال داده ام به STM32F4.
    لطفا در صورت امکان نظرتان را بفرمایید با تشکر.

    مشاهده پاسخ ها (3)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-برا مورد اول بررسی کنید – امکان بررسی کردن به علت سرگرم بودن به کارای دیگه laugh نیست.

      • مصطفی

        مهمان

        مصطفی

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

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          چی بگم آخه نوکرتم – گفتم که – من با این ماژول که مشکلاتی داره دیگه خیلی وقته کار نکردم و نمیکنم – هر چی هستش تو مطلب گفتم – اگه هم طبق مطلب رفتی و راه نیوفتاد باید کتابخونه رو بررسی کنی – ترجمه دیتاشیت رو هم که گزاشتم براتون. sorry

  65. مصطفی

    مهمان

    مصطفی

    توی دستور cofig که برای پاپ ها نوشتید
    یه قسمت هست به اسم crc8bit که توضیحش توی سایت، از قلم افتاده
    این چه کاری انجام میده و آیا میشه تغییرش داد. آیا طول داده ارسالی رو این تعیین میکنه و مثلا میشه بیشترش کرد؟

  66. مصطفی

    مهمان

    مصطفی

    همه اعداد رو ۲۷۰ برمیگردونه.

    مشاهده پاسخ ها (1)
    • مصطفی

      مهمان

      مصطفی

      باید چکارش کنم که همه اعداد رو یکسان نخونه؟

  67. مصطفی

    مهمان

    مصطفی

    من یه متغیر به اسم
    Int number
    تعریف کردم. و این تفریق رو که شما گفتید انجام دادم. کامپایل شد. ولی عددی که بر میگردونه مثلا به جای اینکه ۱ را برگردونه ۲۵۰ برمیگردونه.

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      یکم زبون برنامه نویسی c/c++ رو برو مطالعه کن.

  68. مصطفی

    مهمان

    مصطفی

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

    مشاهده پاسخ ها (3)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      بستگی به اندازه دیتای شما داره –
      و بازم بستگی داره دیتا رو به صورت کاراکتر بفرستی یا عدد ۸ بیتی!

      • مصطفی

        مهمان

        مصطفی

        طولش دینامیکه.
        من دارم با همین مثال که شما توی کتابخونه گذاشتین برای ارسال اینتیجر دینامیک کار میکنم.
        فرستنده به صورت دسیمال میفرسته اعداد رو
        ولی گیرنده به صورت کاراکتر میگیره اعداد رو.
        اجازه نمیده که اعداد رو از ۴۸ کم کنم که اینتیجر بدست بیاد.
        لطفا بهم بگید چکار کنم که داده ای که توی خروجی میاد جنسش اینتیجر باشه. نه کد اسکی و نه کاراکتر.

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          اگه منظورت اینه که تابعش رو بنویسم که امکانش نیس
          کدت باید تو این مایه ها باشه :
          Number = charReaded - '0';

  69. مصطفی

    مهمان

    مصطفی

    سلام آقای دمرچیلو
    من میخوام توی خروجی هم مقدار اینتیجر یا فلوت دریافت کنم
    ولی مثالهای شما همه خروجی ها کاراکتر هستن.
    مطلب رو هم خوندم ولی به نتیجه ای نرسیدم
    لطفا کمکم کنید. wacko

    مشاهده پاسخ ها (3)
    • مصطفی

      مهمان

      مصطفی

      وقتی عدد ۱ را میفرستم
      در حالت DEC عدد خروجی را ۴۹ میده یعنی عددایی که توی خروجی بهم میده ۴۸ تا از مقدار واقعی بیشترن.
      دوم اینکه چون فرمت خروجی های این تابع کاراکتر هست نمیتونم روی اونها کار ریاضی انجام بدم. راه حلش چیه؟ ممنونم

      • مهدی دمرچیلو

        نویسنده این مطلب

        مهدی دمرچیلو

        خب شما باید از ‘۰’ کمش کنید که کد اسکی ۰ میشه ۴۸

        • مصطفی

          مهمان

          مصطفی