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

این آموزش ها همراه ویدیو هستند و خط به خط کدهای نوشته شده با بیان دلیل آموزش داده می شوند.

در ادامه این مقاله همراه ما باشید تا با یک برد آردوینو، موسیقی پخش کنید و درب های منزل را باز و بسته کنید.

1# آشنایی با آردوینو

نکته اولیه ولی مهم در آشنایی با آردوینو این است که، آردوینو یک میکروکنترلر نیست و در واقع یک ماژول است که
از هسته مرکزی میکروکنترلر AVR استفاده می­ کند و
با قرار دادن سایر المان های مورد نیاز راه اندازی میکروکنترلر، کار با آن را بسیار راحت کرده است.

2# آردوینو چیست؟

آشنایی با آردوینو نانو

آردوینوها در خانواده های مختلفی با امکانات متفاوت ارائه می ­شوند که ساده ترین مدل و کوچکترین آن ها NANO است.
آشنایی با آردوینو نانو برای گام اول در آموزش برنامه نویسی دیجیتالی بهترین و سبک ترین گزینه است.

3# اجزای قطعات جانبی برد نانو

آشنایی با آردوینو 7 قطعه روی برد

آشنایی با آردوینو 3 قطعه پشت برد

برای آشنایی با آردوینو به طور کامل لازم است تا قطعات تشکیل دهنده آن را بشناسیم.

1-3# شناخت قطعات روی برد نانو

1.هسته مرکزی میکروی  AVR ATmega328

این را هم ببینید
میکروکنترلر AVR

2.یک دکمه برای ریست کردن ماژول

3. چهار عدد LED از نوع SMD برای کاربردهای مختلف (ارتباط سریال و پایه خروجی)

4. یک کریستال اسیلاتور (کریستال) که برای تولید قلب تپنده میکروکنترلر یعنی ” سیگنال پالس مربعی ” استفاده می شود.

5. تعدادی پین با پایه های بلند و دیپ از برد بیرون آمده اند که هرکدام یک کاربرد خاص دارند.
به این قطعه که پایه های مدار SMD را به پایه های DIP تبدیل می ­کند، PIN HEADER می­ گویند.

6. تعدادی پین با اسامی مشخص از طرف دیگر برد بیرون آمده اند که
در واقع اکثرا پایه های میکرو هستند که با track (سیم کشی) از کنار میکرو با پین های نزدیک به هم و کوچک، به طرفین برد رفته تا به راحتی قابل استفاده باشند.

7. یک پورت USB mini برای اتصال برد به کامپیوتر

2-3# شناخت قطعات پشت برد نانو

8. در سمت دیگر برد چندین خازن از نوع سرامیکی قرار دارد
با هدف بای پس کردن و حذف نویز.

9. یک رگولاتور تبدیل 5 ولت به 3.3 ولت قابل استفاده میکرو AVR.

10. یک IC هم در پشت برد به منظور تبدیل USB به ارتباط سریال است قرار دارد.

4# پین های برد آردوینو نانو

یکی از مباحث مهم در شناخت برد نانو، کاربرد هر کدام از پین های خارج شده از این برد است.

  1. تعدادی پین دیجیتال تحت عناوین D2-D13 که برای کاربردهای صفر و یکی استفاده می­ شوند.
    مثلا برای روشن خاموش کردن LED از این پین می­ توان استفاده کرد.
  2. تعدادی پین آنالوگ با عناوین A0-A7 که در اصل برای استفاده از سیگنال های آنالوگ هستند و
    همان کاربرد تبدیل آنالوگ به دیجیتال را دارند.
    مثلا برای کار با سنسور دمای LM35 نسبت به دما یک ولتاژ آنالوگ می سازد که با اتصال به این پین ها به دیجیتال تبدیل می­­ شود.
  3. پین های 5V و 3V مانند یک منبع تغذیه DC هستند و ولتاژ برای کاربردهای مختلف تولید می ­کنند.
  4. پین GND که زمین مشترک مدار است.
  5. یک پایه VIN دارد که برای اتصال تغذیه خارجی استفاده می ­شود ولی از مزایای آردوینو این است که با کامپیوتر و با استفاده از پورت USB روشن می ­شود و نیازی به دستگاه منبع خارجی نیست.

5# ویژگی های برد آردوینو نانو

  1. کریستال موجود در این مدل 16MHz است.
  2. پایه RST) reset)، همه میکروکنترلرها یک پین برای ریست شدن دارند که
    بدون نیاز به قطع و وصل شدن منبع تغذیه مدار خاموش و روشن شود. این پایه در اکثر میکروها با علامت ˉ (not) مشخص شده اند که
    نشان دهنده active low بودن پایه است.
    یعنی این پایه برای این که فعال باشد برخلاف پیش فرض همه پین ها باید به صفر ولت وصل شود.
    برای این پین معمولا یک مدار RC هم قرار می­ دهند که
    میکروی از قبل روشن شده، توسط خازن پین RST به زمین وصل و میکرو کاملا ریست شود.
    سپس با شارژ شدن خازن، ولتاژ 5 ولت روی این پین افتاده و سیستم شروع به کار خواهد کرد.
  3. یکی از LED های موجود روی برد برای نمایش این موضوع است که آیا تغذیه به میکرو می­رسد یا نه.
  4. دو LED دیگر متصل به پین های RX و TX ارتباط سریال است که
    برای ارتباط با کامپیوتر استفاده می­ گردند.

5# اجرای چندین پروژه آردوینو

1-5# پروژه پخش موسیقی

در این پروژه با یکی از قابلیت های جذاب آردوینو آشنا می شویم که
برای هر پروژه مدنظر لااقل یک کد در اینترنت وجود دارد.

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

پخش آهنگ با آردوینو

تحلیل کد پروژه آردوینو برای پخش موسیقی

برای پخش موسیقی با آردوینو به کد ساده ای نیازمندیم که در ادامه به جزئیات آن می پردازیم.

  • در خط اول کد متغیر buzzer را از نوع const تعریف شده و مقدار 10 داخل آن ریخته می شود.
    این متغیر پایه ای از برد است که اسپیکر به آن متصل شده است.
  • در ادامه متغیر ثابت songSpeed با مقدار 1.5 تعریف شده که
    برای ساختن دوره زمان پخش استفاده خواهد شد هر چه این ضریب بیشتر باشد موسیقی کندتر است و بر عکس.
  • نت هایی که برای این موزیک استفاده شده است را define کرده و می­ بینیم که
    این موسیقی جالب با تعداد خیلی کمی از نت ها ساخته شده است.
  • در بخش بعدی آرایه notes را تعریف کرده و داخل آن به ترتیب نت های استفاده شده را می نویسیم.
  • در ادامه آرایه duration برای مدت زمان play شدن هر نت تعریف شده است که
    اعدادی مثل 250 یا 125 میلی ثانیه درون آن به همان ترتیب نت ها چیده شده است.
    “این دو بخش برای هر پخش موسیقی با آردوینو و نواختن هر موسیقی خاص یک کد مشخص دارند”
  • در بخش setup بدنه اصلی کد را می نویسیم که یک بار فقط اجرا شود.
    یک حلقه for با شاخص i با 203 حالت و گام 1 نوشته شده است و
    در ادامه tone را صدا زده روی پایه buzzer با فرکانس [notes[i و
    مدت زمان wait نت مورد نظر را پخش می ­کند.
    wait یک متغیر است که مقدار آن از ضرب [duration[i در عدد songSpeed حاصل شده است.
  • در نهایت هم یک مقدار wait تاخیر داریم که برای این است که صدای نت ها داخل هم نروند.

تغییر پارامترهای پروژه آردوینو

اگر songSpeed را 1 بگذاریم، سرعت پخش موزیک بالاتر می­ رود و
موزیک روی دور تند پخش خواهد شد.

اگر این مقدار را 5 قرار دهیم موزیک خیلی کند پخش می­ شود.

برای پخش آهنگ با آردوینو می توانید کد نت های مورد علاقه خودتان را از اینترنت پیدا کرده و
آن را با همین کد پیاده کنید.

2-5# پروژه راه اندازی ماژول RFID

برای راه اندازی ماژول RFID در این پروژه لازم است، کارت RFID صحیح را بخوانیم و
آن را به عنوان بازکننده درب ذخیره کنیم.

در ابتدای پروژه به جای زبانه برقی در از LED استفاده می کنیم که
اگر کارت صحیح بود LED سبز روشن شده و اگر کارت اشتباه استفاده شده بود LED قرمز روشن شود.

این را هم ببینید
آشنایی جامع با سیستم RFID

کدنویسی پروژه RFID

2پین از آردوینو مثل 12 و 11 را به عنوان خروجی با اسم greenLED و redLED به صورت const و
یک بافر با ظرفیت 13 برای خواندن کد کارت RFID تعریف می کنیم.

در ادامه باید این ID باید با مقدار مورد نظر ما مقایسه شود.

برای این کار یک string با اسم karteMajid تعریف می کنیم و آن را مساوی “رمز” باز کننده درب قرار می دهیم.

بخش setup کد

داخل setup باید پین های خروجی را تعریف کرده و ارتباط سریال را راه اندازی کنیم.

خانه آخر (12 امی) از بافر را مساوی مقدار “n/” قرار می دهیم که
انتهای بازه بافر را برای میکرو مشخص کرده باشیم.

بخش loop کد

در بخش loop این پروژه آردوینو، یک while با شرط Serial.available نوشته و با استفاده از دستور ()Serial.readString متغیر Buffer را با اندازه 12 بایت می­ خوانیم.
با استفاده از این دستور تا زمانی که 12 کاراکتر از ارتباط سریال وارد نشود کد در این خط متوقف شده و به بخش های بعدی نمی رود.

در ادامه یک if می­ نویسیم با این شرط که بافر خوانده شده از ارتباط سریال و متغیر karteMajid مساوی باشند و توجه داریم که باید متغیر بافر تعریف شده را با روش cast کردن از نوع char به string تغییر دهیم.

در داخل شرط if باید led سبز را روشن، قرمز را خاموش و برای else به صورت برعکس روشن و خاموش کنیم.

در ادامه برای طبیعی تر شدن، کد را به حالت چشمک زن led تغییر می­ دهیم.

با آپلود کردن کد روی آردوینو و تست کردن 2 کارت مختلف می ­بینیم که کد به درستی در حال اجراست.

نکته: اگر هم زمان 2 کارت را با هم به ماژول RFID نزدیک کنیم مشکل تداخل (COLLISION) اتفاق می­ افتد، کارت های معمولی مثل کارت مترو با این مشکل کار نمی کنند.

تگ هایی وجود دارند که ANTI COLLISION هستند و می­ توانند چندین تگ را با هم بخوانند.

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

در فرکانس کاری ما (125 کیوهرتز) که رنج low frequency به حساب می ­آید، RFID نهایت تا 10 سانتی متر را پوشش می­ دهد.

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

برای بستن مدار راه اندازی RFID و زبانه برقی، باید به پین 12 که به led متصل است، یک ترانزیستور وصل کنیم و
بیس را با مقاومت 1 کیلو به همان پایه led متصل کنیم و سپس از کلکتور به پایه تحریک زبانه برقی و از پایه دیگر آن به منبع تغذیه 10 ولت وصل می کنیم.
در نهایت با تست کردن 2 کارت RFID می بینیم که زبانه درب با یک کارت باز شده و با دیگری باز نمی شود.
به راحتی با تعمیم و توسعه این پروژه آردوینو ساده، می توان کارت های مختلفی را برای سیستم تعریف کرد.

3-5# پروژه ساخت چراغ راهنمایی رانندگی

وسایل مورد نیاز پروژه

  1. 3 عدد led به رنگ های سبز، زرد و قرمز
  2. یک سون سگمنت
  3. آردوینو نانو

منطق پروژه چراغ راهنمایی رانندگی با آردوینو

منطق کلی پروژه این است که ابتدا در محض روشن شدن led قرمز روشن است و شمارنده 9 ثانیه می شمارد.
سپس به محض 0 شدن مقدار شمارنده، led سبز روشن شده و قرمز خاموش می شود. 9 ثانیه شمارش می شود و
وقتی به 0 صفر رسید تایمر قطع شده و led زرد به تنهایی به مدت 2 ثانیه روشن مانده و دوباره به قرمز روشن می رسیم.

کد نوشته شده پروژه آردوینو

در گام نخست از این پروژه با آردوینو، باید به کد نوشته شده برای این پروژه مسلط شویم.
چون کد به صورت حلقه ای اجرا می‌شود آن را داخل loop می‌نویسیم.
بعد از تعریف متغیر i ابتدا led قرمز را با دستور digitalWrite روشن می‌کنیم و
شمارنده را با حلقه for معکوس و تاخیر 1 ثانیه ای صدا می‌زنیم.

بعد از اتمام دستورات for با دستور digitalWrite باید led قرمز را خاموش کرده و سبز را روشن کنیم.
بعد از آن دوباره دستور for معکوس را تکرار می‌کنیم تا شمارش چراغ سبز را داشته باشیم و
در نهایت بعد از صفر شدن این مقدار تابع reset7segment را صدا زده و آن را خاموش می‌کنیم.
بلافاصله led سبز رنگ خاموش و زرد روشن می‌شود و به مدت 2 ثانیه تاخیر می‌دهیم.
می‌توان زمان این تاخیر را با عنوان yellowDelay در بخش اول کد define کرد.
در خط آخر حلقه، led زرد خاموش می‌شود و با تکرار مجدد loop، led قرمز روشن خواهد شد.

بستن مدار پروژه

ساخت چراغ راهنمایی رانندگی با آردوینو نانو

پایه های سون سگمنت را به پین های 6 تا 12 را به ترتیب متصل کرده و
led ها به پین های 3-4-5 میکرو متصل شده اند.

این را هم ببینید
سون سگمنت چیست؟

اجرای پروژه

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

در مدار بسته شده کد را آپلود می‌کنیم و با اجرای پروژه می‌بینیم که به راحتی کار می‌کند.

توسعه پروژه ساخت چراغ راهنمایی رانندگی

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

برای یادگیری و راه اندازی پروژه آردوینو بیشتر آموزش جامع الکترونیک نماتک را تهیه کنید.

دانلود pdf مقاله

مقاله بالا بخشی از مطالب گسترده الکترونیک است.

برای یادگیری صفر تا صد این حوزه به آموزش جامع الکترونیک نماتک مراجعه کنید.

برای مشاهده توضیحات کامل بسته کلیک کنید.

بسته الکترونیک

اگر به دنبال یاد گرفتن مهارت بیشتر و افزایش درآمد هستید،

برای دریافت آموزش های رایگان مرتبط با حوزه علاقه‌مندی خود فقط کافیه فرم رو تکمیل کنید.

لطفا موبایل خود را وارد نمایید

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