نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه

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

به نام خدا : بلاخره کتابخونه 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 )

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

 
 
 

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

 
 
 

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

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

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

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

پسورد فایل های سایت :
www.dmf313.ir
جنگ ما فتح قدس را در پی خواهد داشت (امام خمینی) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. ان‌شاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (امام خمینی)
ارسال دیدگاه
334

1) تعداد حروف غیر فارسی از حروف فارسی بیشتر باشه دیدگاه به صورت خودکار حذف میشه.

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. مهمان

    محمد طاهری

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

    1398/01/06
    03:30
  2. مهمان

    موسوی

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

    1397/11/14
    11:38
  3. مهمان

    ناشناس

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

    1397/11/08
    10:07
  4. مهمان

    sajad

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

    1397/09/07
    07:32
  5. مهمان

    حمید

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

    1397/07/22
    08:33
    • نویسنده این مطلب

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

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

      1397/07/22
      12:38
  6. مهمان

    بهزاد

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

    1397/06/28
    04:48
  7. مهمان

    حسین

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

    1397/06/27
    02:03
  8. مهمان

    mahdiGameMaker

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

    1397/06/20
    03:16
  9. مهمان

    mahdiGameMaker

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

    1397/06/20
    03:11
  10. مهمان

    arian

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

    1397/06/17
    08:49
  11. مهمان

    arian

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

    1397/06/16
    06:51
  12. مهمان

    رضا

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

    1397/06/15
    02:14
    • نویسنده این مطلب

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

      سلام-نمیشه.

      1397/06/26
      02:52
  13. مهمان

    Mahdi

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

    1397/06/06
    05:20
  14. مهمان

    اکبر

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

    1397/05/04
    08:55
    • نویسنده این مطلب

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

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

      1397/05/04
      04:31
  15. مهمان

    Mahdyy

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

    1397/04/04
    09:58
  16. مهمان

    مهدی

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

    1397/03/19
    10:59
    • نویسنده این مطلب

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

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

      1397/03/20
      02:15
  17. مهمان

    mahdy

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

    1397/02/16
    11:55
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1397/02/17
      09:18
      • مهمان

        mahdy

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

        1397/03/04
        08:52
        • نویسنده این مطلب

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

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

          1397/03/04
          10:53
      • مهمان

        mahdy

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

        1397/03/05
        09:52
        • نویسنده این مطلب

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

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

          1397/03/06
          12:28
        • نویسنده سایت

          معین صابری

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

          1397/03/06
          08:48
        • مهمان

          mahdy

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

          1397/04/03
          01:35
  18. مهمان

    میثم

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

    1397/02/07
    01:27
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1397/02/08
      07:55
  19. مهمان

    حمید

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

    1396/11/01
    07:18
  20. مهمان

    مهدی

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

    1396/10/17
    09:04
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/10/19
      11:36
  21. مهمان

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

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

    1396/10/12
    09:30
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/10/12
      10:34
  22. مهمان

    علیرضا

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

    1396/10/03
    02:47
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/10/03
      03:20
  23. مهمان

    ENERGY001

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

    1396/09/23
    03:09
  24. مهمان

    جواد

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

    1396/08/02
    07:13
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/08/02
      07:59
  25. مهمان

    دانیال

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

    1396/07/20
    09:19
  26. مهمان

    دانیال

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

    1396/07/20
    08:50
  27. مهمان

    فرزین

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

    1396/07/05
    03:04
  28. مهمان

    رضا

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

    1396/06/03
    02:49
  29. مهمان

    علی

    سلام مهندس
    سمت فرستننده در قسمت 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
    لطفا راهنمایی کنید

    1396/06/01
    01:58
  30. مهمان

    علی

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

    1396/06/01
    09:49
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/06/01
      10:04
  31. مهمان

    ناشناس

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

    1396/05/25
    08:59
    • مهمان

      ناشناس

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

      1396/11/02
      06:22
  32. مهمان

    مهدی

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

    1396/04/18
    03:36
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/04/20
      09:09
  33. مهمان

    محمد امین

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

    1396/04/13
    02:20
  34. مهمان

    امید

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

    1396/04/07
    02:07
  35. مهمان

    آرمان

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

    1396/04/06
    02:45
    • مهمان

      احمد

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

      1396/04/07
      11:47
  36. مهمان

    مصطفی

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

    1396/04/04
    12:12
  37. مهمان

    zaman1

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

    1396/04/01
    03:32
  38. مهمان

    مصطفی

    سلام
    من کدها رو اینجوری بهش اعمال کردم ولی از هیچ کدوم از سنسورها دیتا دریافت نمیکنه
    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
    لطفا راهنمایی بفرمایید. دوتا با هم کار نمیکنه. باید چکارش کنم آقای دمرچیلو؟

    1396/04/01
    11:31
    • مهمان

      mahdy

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

      1397/03/05
      12:16
  39. مهمان

    محمد

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

    1396/04/01
    03:14
  40. مهمان

    zaman1

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

    1396/03/31
    11:55
  41. مهمان

    مهدی

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

    1396/03/31
    11:51
  42. مهمان

    مهدی

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

    1396/03/31
    11:51
  43. مهمان

    مصطفی

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

    1396/03/31
    11:27
  44. مهمان

    مصطفی

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

    1396/03/31
    03:53
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/04/07
      09:36
      • مهمان

        مصطفی

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

        1396/04/10
        03:47
        • نویسنده این مطلب

          مهدی دمرچیلو

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

          1396/04/10
          04:10
  45. مهمان

    محمد

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

    1396/03/30
    06:49
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/03/31
      03:54
      • مهمان

        مصطفی

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

        1396/04/01
        01:09
        • نویسنده این مطلب

          مهدی دمرچیلو

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

          1396/04/08
          09:54
  46. مهمان

    مصطفی

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

    1396/03/27
    05:12
  47. مهمان

    مصطفی

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

    1396/03/27
    04:48
    • مهمان

      مصطفی

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

      1396/03/27
      05:15
  48. مهمان

    مصطفی

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

    1396/03/27
    04:46
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/03/28
      10:47
  49. مهمان

    مصطفی

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

    1396/03/27
    01:41
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/03/27
      03:20
      • مهمان

        مصطفی

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

        1396/03/27
        04:00
        • نویسنده این مطلب

          مهدی دمرچیلو

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

          1396/03/27
          04:11
  50. مهمان

    مصطفی

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

    1396/03/27
    11:05
    • مهمان

      مصطفی

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

      1396/03/27
      11:41
      • نویسنده این مطلب

        مهدی دمرچیلو

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

        1396/03/27
        03:21
        • مهمان

          مصطفی

          آره دنبال همین هستم. نمیدونم چطوری باید داده ای که تازه از آنتن اومده رو از ۴۸ کم کنم.
          ارور میده.

          1396/03/27
          04:09
  51. مهمان

    حمید

    سلام و خسته نباشید
    مطالب سایتتون عالیه
    من یه مشکلی با NRF و میکرو دارم
    وقتی برنامه رو برای ATMEGA8 پروگرم میکنم در حالت فرستنده درست کار میکنه ولی در حالت گیرنده عمل نمیکنه
    این مشکل روی بردهای آردیونو وجود نداره
    میشه راهنمایی بفرمایید
    مرسی

    1396/03/26
    01:25
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      تو کدنویسی حتما یه جا مشکل داری دیگه.!!!
      البته اگه تو اتصالات سوتی نداده باشی.

      1396/03/27
      05:34
  52. مهمان

    محمد

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

    1396/03/12
    02:28
  53. مهمان

    محمد

    تنظیمات را مثل پروژه اخر کردم ولی باز هم جواب نداد. dash
    اما قسمت استاتیک را عاالی جواب می دهد.
    یک سوال دیگر داشتم . اگر بخواهم از ماکزیمم قدرت انتقال استفاده بکنم باید مقدار زیر را
    config(100, Crc8Bit, _1Mbps, 5, 10); // channel=100, Crc8Bit, _1Mbps, DelayReTransmin=5, CountReTransmin=10
    به این صورت تغییر دهم؟
    config(100, Crc8Bit, _2Mbps, 5, 10); // channel=100, Crc8Bit, _1Mbps, DelayReTransmin=5, CountReTransmin=10
    یا باید به این صورت تغییر دهم؟
    config(100, Crc8Bit, _250kbps, 5, 10); // channel=100, Crc8Bit, _1Mbps, DelayReTransmin=5, CountReTransmin=10
    ایا با افزایش قدرت برد کم می شود؟ طول داده انثقال یافته در یک ارسال چی؟ ایا ان هم کم می شود؟

    1396/03/11
    05:38
    • نویسنده این مطلب

      مهدی دمرچیلو

      برا بحث افزایش برد دقیقا خاطرم نیست چه تابعی نوشتم ولی هر چی هستش تو مطلب نوشتم و اگه توضیح نداده باشم تابعش رو احیانا – تو مطلب اسمش هستش تو لیست توابع
      والا کمکی من در حال حاظر نمیتونم بکنم جز این که بگم پروژه مربوطه رو دانلود کن – تستش کن – اگه جواب نداد – ماژول هارو در ۱-۲ متری هم قرار بده – جواب نداد – در ساعات مختلف روز تست کن – جواب نداد – اون وایفای خونتونو خاموش کن – جواب نداد ماژولتو عوض کن ( البته چون گفتی استاتیک رو جواب داد این مورد پس هیچی ) – جواب نداد دیگه نمیدونم bomb

      1396/03/12
      12:43
      • مهمان

        مصطفی

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

        1396/03/27
        10:46
  54. مهمان

    محمد

    اقا مهدی الان PayloadSize برای هم گیرنده و هم فرستنده مقدار صفر می باشد. آیا باید مقدار دیگری باشد؟

    1396/03/09
    12:10
    • نویسنده این مطلب

      مهدی دمرچیلو

      بله بایدد ۰ باشه – بقیه تنظیمات رو مثل پروژه آخری این مطلب انجام بده – اصلا همین آخرین پروژه رو تست کن ببین جواب میده یا ن

      1396/03/09
      03:07
  55. مهمان

    نسترن

    سلام من میخوام کتابخانه این ما‍ژول رو. برای CODE VISION بنویسم . میشه راهنماییم کنید.

    1396/03/07
    04:43
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      اگه تازه کاری و پروژه ات صنعتی نیس بیخال شو – وگرنه برو برنامه نویسی C و ++C رو خوب یاد بگیر – چون با راهنمایی و این جور چیزا کارت راه نمیوفته حقیقتا.

      1396/03/07
      05:12
      • مهمان

        نسترن

        ممنون.

        1396/03/07
        05:51
  56. مهمان

    محمد

    سلام اقا مهدی.
    اقا مهدی من قسمت استاتیک را جواب گرفتم ولی قسمت دینامیک را نتوانستم جواب بگیرم دو واقع وقتی مقدار زیر را ارسال می کنم
    char Data[33] = {‘s’,’a’,’l’,’a’,’m’,’o’,’k’,’e’,’y’,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’n’,’l’,’m’,’k’,’j’,’i’,’h’,’g’,’f’,’e’,’d’,’c’,’b’,’a’,’\0′}; // Max Size Payload is 32 byte
    در طرف گیرنده مقدار زیر نمایش داده می شود.
    salamokey1″””$%.$%{}JHIJHA@ED@@@@A
    ,ویا به صورت زیر (تکرار ارسال)
    salamokey!””$%$&01JHIJJHHEDD@B@A
    و یا چیز های دیگر . در واقع این قسمت salamo را درست دریافت می کنند ولی بقیه را خراب دریافت می کند.
    به نظرتان مشکل از کجا ها می تواند باشد؟ wacko
    با تشکر hi

    1396/03/06
    11:52
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      payloadSize رو درست تنظیم نکردی در فرستتده و گیرنده.

      1396/03/07
      04:36
  57. مهمان

    محمد

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

    1396/03/04
    11:11
  58. مهمان

    محمد

    سلام. اقا مهدی قسمت استاتیک ان کار کرد. rofl امید وارم شاد شاد باشید. ما رو که خیلی خوشحال کردید. ممنون. کارتان حرف ندارد ok
    دستتان درد نکند. حالا مانده است قسمت دینامیک آن.
    فقط اقا مهدی چکونه فیلم عملکرد و کد پروژه را برایتان ارسال کنم؟ لطفا راهنمایی ام بفرمایید. با تشکر hi

    1396/03/03
    10:57
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام – فیلم عملکرد چی؟ برای چی؟

      1396/03/04
      04:46
  59. مهمان

    محمد

    اقا مهدی می شود به جای قطعه کد زیر
    void getData(void * data){ // Reads payload bytes into data array
    char* getData = reinterpret_cast(data);
    از کد زیر استفاده کرد؟
    void getData(char * getData){

    1396/03/02
    09:59
    • نویسنده این مطلب

      مهدی دمرچیلو

      بررسی کن خودت!

      1396/03/03
      07:33
  60. مهمان

    محمد

    ممنون. hi

    1396/03/02
    09:34
  61. مهمان

    محمد

    ممنون از پاسختان. hi
    ببخشید این مقدار NULL چی هست؟ در واقع در زبان c این NULL را چه چیزی می توان قرار داد؟ ایا مقدار صفر قرار دهیم درست است؟
    علت پرسیدن این سوال این و سوال قبل این است که دارم کتاب خانه خوب شما را انتقال می دهم به برد stm32f4discovey به خاطر همین باید این تغییرات را اعمال کنم. جواب که گرفتم، کل پروژه را برایتان ایمیل می کنم. (فیلم هم از آن می گیرم.) شاید به کارتان بیاید. با نرم افزار کیل هم دارم این کار را انجام می دهم.

    1396/03/02
    12:15
    • نویسنده این مطلب

      مهدی دمرچیلو

      هیچ چیز – خالی – بدون مقدار
      برا کاراکتر مبشه ‘۰\’

      1396/03/02
      12:29
  62. مهمان

    Remote

    آقا حل شد. (من فرمت گیرنده رو هم int میذاشتم ولی ظاهراً باید همون char باشه)
    عشقی خداییش . . .
    دمت گرم

    1396/03/01
    07:07
  63. مهمان

    Remote

    سلام
    آقا دمت گرم بابت وب سایت فوق العادت
    من یه مشکلی دارم در مورد NRF. در کل من میخوام مقادیر خونده شده از جوی استیک رو به یه میکرو دیگه هستش.( یا همون ریموت) مقادیر هم همه اینتیجرن ولی طاهراً یه مشکلی وجود داره که توی گیرنده مقادیر رو درست دریافت نمیکنم.
    مثلاً از ۰ تا ۱۰ همه رو ۰ میگیرم، از ۱۱ تا ۱۹ به این صورت: ۱B 2B 3B و . . .
    این مبنای خاصی هست؟؟؟ گشتم واسه تبدیل به دسیمال ولی کلاً چیز خاصی پیدا نکردم
    ممنون میشم اگه راهنمایی کنین.
    این قسمت مربوط به فرستنده هست:
    for(int i;i<=۱۵۰;i++){
    Serial.println(i);
    DMF313.sendInt(i, DEC, 3, 0);
    }
    اینم یه قسمتی از گیرنده:
    int joyStick;
    while (DMF313.RXFifo(NULL) != 0)
    {
    DMF313.getData(joyStick);
    Serial.println(joyStick);
    }

    1396/03/01
    04:02
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      درباره اعداد هگزا دسیمال برو یه مطالعه ای بکن.

      1396/03/01
      04:05
      • مهمان

        Remote

        ممنون که جواب دادی ولی داداش مبناها رو بلدم، این اصن هگز نیس. مثلاً ۱۳ هگز خب میشه D اما این کد ۱۳ رو ۳B میده . . .
        یه جای کار (نرم افزاری البته فک میکنم) میلنگه ولی خب نمیدونم کجا . . .

        1396/03/01
        04:38
        • نویسنده این مطلب

          مهدی دمرچیلو

          یعنی میگی ۱۳ میفرستی و ۳b میگیری؟ ببین کا سوتی دادی.
          فایل ته مطلبو دانلود کن – پروژه نمونه کم نزاشتم – اونا رو بررسی کن و همونا رو تغییر بده – اونا همشون تست شده هستن.

          1396/03/01
          05:26
  64. مهمان

    محمد

    با سلام و عرض خسته نباشید.
    ممنون بابت سایت فوق العاده تان. victory
    یک سوالی برای من پیش امده است. ایا در دستور زیر:
    for(uint8 i = 0;i < len;i++)
    متغیر i از نوع int است؟ یا نه طبق دستور زیر
    typedef unsigned char uint8;
    متغیر i از نوع unsigned char می باشد.
    با تشکر

    1396/03/01
    10:45
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      تو منو آموزش آردوینو انواع این متغییر ها رو فک کنم توضیح داده باشم
      منظور از uint8 همون unsigned char هستش که دقیقا صحیح فرمودین.

      1396/03/01
      12:00
  65. مهمان

    احسان

    با سلام و خسته نباشید به شما دوست عزیز
    بنده در راه اندازی nrf مشکل دارم البته فقط درمورد lna دار تمام برنامه ها با مدل معمولی کار میکنند اما با مدل lna دار نه
    البته در گیرنده هردو ماژول کار میکنند اما در فرستنده فقط مدل معمولی
    لطفا راهنمایی کنید

    1395/12/25
    06:56
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام – کتابخونه رو با دیتاشیت مقایسه کنید – مشکلی بود رفع کنید – فعلا این امکان برام وججود نداره که خودم بررسی کنم.

      1395/12/26