آردوینو پروژه های آردوینو

آموزش ارتباط دو طرفه توسط NRf24l01 آردوینو

NRF Training- Digispark
نوشته شده توسط علیرضا قربانی

در پست‌های قبلی روش اتصال ماژول nrf24l01 را به آردوینو و همچنین برنامه نویسی آن را که به صورت کنترل یک سروو موتور به وسیله جوی استیک بود را آموزش دادیم که می‌توانید برای دیدن آن به پست زیر مراجعه کنید.

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

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

 

سخت افزار مورد نیاز

دو عدد آردوینو Uno

دو عدد ماژول nrf24l01

دو عدد LED
دو عدد تاچ سویج

 

اتصالات

اتصالات در هر دو آردوینو به صورت زیر می‌باشد.

پین های CE   و CSN میتوانند به هر پین دیجیتالی منصل شوند(‌ ما پین ce را به پین ۹ و پین csn را به پین شماره ۱۰ آردوینو متصل می‌کنیم)

در برد آردوینو uno  پین های پرروتوکل spi به صورت زیر می باشند:

  • MOSI is connected to the digital pin 11
  • MISO is connected to the digital pin 12
  • SCK is connected to the digital pin 13

همچنین یک تاچ سوییچ را به پین شماره ۳ متصل می‌کنیم و آن را به صورت PULL Down در می‌آوریم . یک عدد LED نیز به پین شماره ۲ متصل می‌کنیم.

 

آموزش راه اندازی nrf24l01 -دیجی اسپارک

 

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

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

 

کدنویسی

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

دانلو د کتابخانه nrf24l01

آموزش نصب کتابخانه در آردوینو

 

کد‌های زیر را بر روی هر دو آردوینو آپلود کنید. همانطور که مشاهده می‌کنید بر روی هر آردوینو که کلید را فشار دهید ، وضعیت LED متصل به آردوینو مقابل تغییر می‌کند.

 

 

 

 

شیوه کار

در setup برنامه تنظیمات مربوط به ماژول و LEDها و کلید‌ها را انجام‌می‌دهیم. سپس تابعی به نام chk_incoming تعریف می‌کنیم .

در این تابع چک می‌کنیم که در صورتی  که آردوینو مقابل اطلاعات را ارسال کند، آن اطلاعات را دریافت کند و متناسب با  آن‌ اطلاعات دریافت شده(این اطلاعات شامل وضعیت کلید‌های متصل  به آردوینو مقایل می‌باشد) وضعیت LED ها را تغییر دهد.

 

سپس تابعی به نام  TX_mode تعریف می‌کنیم.

در این تابع ابتدا ماژول در وضعیت  فرستنده قرار می‌گیرد سپس اطلاعات را ارسال می‌کند ، پس از ارسال اطلاعات دوباره ماژول در وضعیت گیرنده قرار می‌گیرد.

 

بعد از مراحل فوق تابعی به نام chk_outgoing ایجاد می‌کنیم.

در این تابع مرتبا وضعیت فشرده شدن کلید‌ها چک می‌شود و در صورتی که یکی از کلید‌ها فشرده شود از تابع TX_mode قرار می‌گیرد و اطلاعات مربوط به وضعیت کلید‌ها را برای آردوینو مقابل ارسال می‌کند و سریع دوباره ماژول در مد گیرنده قرار می‌گیرد.

 

 

در مرحله آخر تمام توابع نوشته شده را در loop برنامه قرار می‌هیم:

 

 

 

درباره نویسنده

علیرضا قربانی

علیرضا قربانی هستم دانشجوی مهندسی پزشکی. چیزهای خیلی زیادی رو در دنیا دوست دارم. یک گیک هستم و یشه گفت یک هکر. نه به معنی دزدی پسورد و ایمیل مردم. به معنی عشق به دونستن و عشق به تحقیق درباره خیلی از چیزهایی که می بینم و می‌شنوم. اگر بخوام علاقه‌مندی‌ درجه یکم رو نام ببرم میتونم بگم برنامه نویسی و بعد از اون امبدد سیستم ها.

۱۴ دیدگاه

دیدگاهتان را بنویسید