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

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

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

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 مقاله

درباره نویسنده : حانیه برمایون

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

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

۱۳ دیدگاه

  1. Avatar
    شهریار ۱۳۹۹/۰۷/۰۶ در ۱۱:۴۲ - پاسخ

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

    • حانیه برمایون
      حانیه برمایون ۱۳۹۹/۰۷/۰۸ در ۱۱:۵۸ - پاسخ

      سلام
      ممنون میشم سوالتون رو در فروم نماتک مطرح بفرمایید
      katibeha.com

  2. Avatar
    نیما اصلانی ۱۳۹۹/۰۷/۰۴ در ۰۹:۰۹ - پاسخ

    با سلام و تشکر
    برای ارتباط ماژول آردیوینو به کامپیوتر در جه ٰمحیط برنامه نویسی کد نویسی انجام می شود؟
    تشکر

    • حانیه برمایون
      حانیه برمایون ۱۳۹۹/۰۷/۰۵ در ۰۹:۳۳ - پاسخ

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

      موفق باشید

  3. Avatar
    مهرداد اخوان ۱۳۹۹/۰۶/۲۵ در ۰۹:۴۴ - پاسخ

    باسلام.ممنون از مطلب آموزشی بسیار مفید وآموزنده. لطفا در صورت امکان درمورد برد آردوینو UNO R3 ، اجزای آن ونحوه آپلود کردن کدها بر روی آن ، آموزش ارائه بفرمایید.باتشکر

    • حانیه برمایون
      حانیه برمایون ۱۳۹۹/۰۶/۲۵ در ۱۰:۱۰ - پاسخ

      سلام مهندس
      ممنون از شما
      قطعا پیشنهاد خوب شما به تیم نویسنده ارائه خواهد شد.
      موفق باشید

  4. Avatar
    علیرضا ۱۳۹۹/۰۳/۱۸ در ۱۱:۱۷ - پاسخ

    سلام میخواستم بپرسم با آردوینو میشه فایل ویدئویی هم پخش کرد مثلاً روی یه خروجی hdmi؟ اگه آره چه فرمت هایی حداکثر با چه رزولوشن و بیت ریتی و اگه نه با چی میشه این کارو کرد؟

    • حانیه برمایون
      حانیه برمایون ۱۳۹۹/۰۳/۱۹ در ۱۰:۳۲ - پاسخ

      سلام
      لطفا سوالات تخصصی خودتون در فروم نماتک مطرح کنید.
      katibeha.com

  5. Avatar
    مهدی محمدی ۱۳۹۸/۰۹/۱۵ در ۰۲:۰۷ - پاسخ

    سلام دورود آموزشتان عالی درحین آموزش از بسته وسایل آموزشی صحبت می کنید مثل بِردبُرد، ترانزیستور، ال ای دی، دیود، مقاومت، رله، ای سی و……..این وسایل را برای تست و آزمایش خودمان از بازار تهیه کنیم . یا از طریقه شما ؟ بانشکر

    • حانیه برمایون
      حانیه برمایون ۱۳۹۸/۰۹/۱۶ در ۱۰:۱۹ - پاسخ

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

  6. امیر محبعلی نژاد
    امیر محبعلی نژاد ۱۳۹۷/۱۱/۰۹ در ۱۵:۲۵ - پاسخ

    خیلی ممنون آقای گودینی و آقای معین عالی بود.

  7. Avatar
    احمد ۱۳۹۷/۰۸/۰۴ در ۲۳:۱۰ - پاسخ

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

    • Avatar
      تیم نماتک ۱۳۹۷/۰۸/۰۵ در ۰۱:۵۳ - پاسخ

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

ارسال دیدگاه