آردوینو, آموزش مجازی

آموزش شروع کار با آردوینو Uno

آموزش شروع کار با آردوینو Uno

در این مطلب از بلاگ بهنام رباتیک، شما را با نحوه شروع کار با آردوینو Uno و شیوه برنامه‌نویسی در این برد هوشمند آشنا می‌کنیم؛ پس با ما همراه باشید.

فهرست مطالب

برد آردوینو یونو را می‌توان به وسیله نرم‌افزار Arduino IDE که در واقع محیط برنامه‌نویسی شرکت آردوینو است، پروگرام و راه‌اندازی کرد. آردوینو Uno معروف‌ترین و پرکاربردترین برد آردوینو در بازار است و معمولاً پروژه‌هایی که در اینترنت و یوتیوب می‌بینید، با این برد ساخته می‌شوند.

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

آردوینو Uno یک برد بر پایه میکروکنترلر ATMega328P است. این برد هوشمند 14 پایه دیجیتال ورودی و خروجی دارد که 6 عدد از آنها می‌توانند به عنوان خروجی PWM استفاده شوند. این برد همچنین، 6 ورودی آنالوگ، یک کریستال 16 مگاهرتز، یک پورت USB، یک پورت تغذیه، یک هدر ICSP و یک دکمه فشاری ریست دارد. بر این اساس، هر آنچه که برای راه‌اندازی میکروکنترلر نیاز دارید، با این برد در اختیارتان قرار گرفته است.

آردوینو Uno به سادگی از طریق یک کابل USB به کامپیوتر متصل و یا از طریق یک آداپتور و یا باتری تغذیه می‌شود و می‌توان از آن استفاده کرد.

آشنایی با مشخصات فنی برای شروع کار با آردوینو Uno

میکروکنترلر

ATMega328P

ولتاژ کاری

5 ولت

ولتاژ ورودی توصیه شده

7 تا 12 ولت

ولتاژ ورودی محدود

6 تا 20 ولت

تعداد پین‌های دیجیتالی I/O

14 عدد

تعداد پین‌های PWM دیجیتالی I/O

6 عدد

تعداد پین‌های ورودی آنالوگ

6 عدد

جریان DC در هر پین I/O

20 میلی‌آمپر

جریان DC در پین 3.3 ولت

50 میلی‌آمپر

حافظه فلش

32 کیلوبایت (0.5 کیلوبایت توسط Bootloader استفاده شده)

مقدار SRAM

2 کیلوبایت

مقدار EEPROM

1 کیلوبایت

سرعت

16 مگاهرتز

آموزش شروع کار با آردوینو Uno و نحوه برنامه‌نویسی آن

برای راه‌اندازی برد آردوینو Uno، می‌توان آن را به وسیله یک کابل پرینتر به کامپیوتر متصل کرد. اتصال این کابل برای پروگرام کردن برد ضروری است زیرا آردوینو یونو به طور خودکار انرژی مورد نیاز را از USB یا منبع تغذیه خارجی می‌گیرد. وقتی برد را به وسیله کابل USB به کامپیوتر خود متصل کردید، LED نشانگر اتصال برق که کنار آن PWR یا ON نوشته شده است، باید روشن شده باشد.

برد آردوینو یونو می‌تواند توسط نرم‌افزار Arduino IDE برنامه نویسی شود. برای انجام این کار، از آدرس Tools> Board Menu، برد آردوینو مورد نظر را بر اساس میکروکنترلر روی آن انتخاب کنید.

همچنین خودِ میکروکنترلر ATMega328P که بر روی برد قرار دارد نیز می‌تواند از طریق Bootloader برنامه‌نویسی شود که در این صورت به سخت‌افزار خارجی برای آپلود کد نیاز نخواهد داشت.

دکمه آپلود در نرم‌افزار Arduino IDE
دکمه آپلود در نرم‌افزار Arduino IDE

آموزش شروع کار با آردوینو Uno و نصب درایورها

به محض اتصال، برد آردوینو Uno درایورهای لازم را به صورت خودکار نصب خواهد کرد.

اگر فایل فشرده با پسوند ZIP را دانلود کرده‌اید و یا به دلایلی برد به درستی تشخیص داده نشد، مراحل زیر را دنبال کنید:

بر روی منوی Start کلیک کرده و Control Panel را باز کنید.

همزمانی که در Control Panel هستید، روی My Computer یا This PC راست کلیک و سپس بر روی Manage کلیک کنید. حال در پنجره باز شده، Device Manager را انتخاب نمایید.

در زیر منو Ports (COM & LPT) باید گزینهArduino Uno (COMxx) را مشاهده کنید. اگر COM & LPT وجود نداشت، در منوی Other Devices به دنبال گزینه Unknown Devices بگردید.

در ادامه بر روی Arduino Uno (COMxx) راست کلیک کرده و گزینه Update Driver Software را انتخاب کنید.

حال بر روی گزینه Browse my computer for driver software کلیک کنید.

در نهایت، در پنجره باز شده به محل نصب نرم‌افزار Arduino IDE بروید و در پوشه Drivers فایل arduino-org.inf یا گزینه arduino.inf را انتخاب کنید. در این میان، اگر از نسخه 1.0.3 یا قدیمی‌تر نرم‌افزار Arduino IDE استفاده می‌کنید، فایل arduino-uno.inf را انتخاب کنید.

از این قسمت به بعد، ویندوز مراحل نصب باقیمانده را انجام خواهد داد.

آموزش شروع کار با آردوینو Uno و آپلود اولین کد

در نرم‌افزار Arduino IDE به آدرس File> Examples> 01.Basics> Blink بروید تا مثال چشمک زدن چراغ LED روشن شود.

Blink Example در نرم‌افزار Arduino IDE
Blink Example در نرم‌افزار Arduino IDE

انتخاب نوع برد و پورت برای شروع کار با آردوینو Uno

از منوی Tools گزینه Board: ’’Arduino/Genuino Uno’’ را انتخاب کنید.

اینک از قسمت Port، پورت سریالی که آردوینو خود را به آن متصل کردید را انتخاب کنید. برای اینکه ببینید کدام پورت مشخص شده، برد را از رایانه جدا نمایید و ببینید کدام گزینه حذف می‌شود.

انتخاب برد آردوینو در نرم‌افزار Arduino IDE
انتخاب برد آردوینو در نرم‌افزار Arduino IDE

هشدارها در زمان شروع کار با آردوینو Uno

برد آردوینو Uno دارای یک فیوز محافظ است که اگر جریان بیشتر از 500 میلی‌آمپر به پورت USB اعمال شود، فیوز عمل کرده و جریان را قطع می‌کند.

تغذیه برد آردوینو Uno

آردوینو Uno می‌تواند از طریق اتصال USB یا منبع تغذیه خارجی، انرژی مورد نیاز خود را دریافت کند. لازم به ذکر است که منبع تغذیه به صورت خودکار انتخاب می‌شود. ضمناً، در صورت نبود کابل USB، می‌توانید از یک آداپتور یا چند باتری با ولتاژ 6 تا 12 ولت بهره ببرید.

اگر برد با ولتاژ کمتر از 7 ولت تغذیه شود، پایه 5 ولت رگولاتور نیز ممکن است کمتر از 5 ولت بدهد و برد ناپایدار شود. در سمت دیگر، اگر بیشتر از 12 ولت وارد گردد، رگولاتور ولتاژ بیش از حد گرم خواهد شد و در این شرایط شاید برد صدمه ببیند. همان‌طور که در جدول مشخصات فنی دیدید، رنج پیشنهادی 7 تا 12 ولت است.

آشنایی با پایه‌های تغذیه برای شروع کار با آردوینو Uno

  • Vin: شما می‌توانید در زمان استفاده از منبع تغذیه خارجی مانند آداپتور، ولتاژ تغذیه را از طریق این پایه اعمال کنید.
  • 5V: این پایه، خروجی 5 ولت رگوله شده رگولاتور روی برد است. آردوینو Uno می‌تواند از طریق پورت پاور 7 تا 12 ولت DC، از طریق USB ولتاژ 5 ولت و یا از طریق پایه Vin ولتاژ 7 تا 12 ولت را دریافت کند.
  • V3.3: با این پایه، توسط رگولاتور روی برد، تغذیه 3.3 ولت تولید می‌شود. ضمناً، حداکثر جریان تحویلی 50 میلی‌آمپر است.
  • GND: اتصال به زمین
  • IOREF: این پایه بر روی برد آردوینو Uno، ولتاژ مرجع با آنچه که میکروکنترلر عمل می‌کند را فراهم می‌آورد. برای مثال، یک شیلد که به درستی پیکربندی شده باشد، می‌تواند پایه ولتاژ IOREF و منبع تغذیه مناسب را انتخاب یا مبدل‌های ولتاژ در خروجی‌ها را فعال کند تا برد با ولتاژ 5 یا 3.3 ولت کار فعالیت نماید.

حافظه آردوینو Uno

  • مقدار حافظه میکروکنترلر ATMega328P: حدود 32 کیلوبایت
  • مقدار حافظه SRAM: حدود 2 کیلوبایت
  • مقدار حافظه EEPROM: حدود 1 کیلوبایت که توسط کتابخانه نوشته و خوانده می‌شود.

آشنایی با پایه‌های ورودی و خروجی برای شروع کار با آردوینو Uno

با استفاده از توابع pinmode()، digitalWr و digitalRead()، تمامی 14 پایه دیجیتال می‌توانند به صورت ورودی و خروجی به کار بروند. ولتاژ مناسب آنها 5 ولت است و هر پایه می‌تواند 20 میلی‌آمپر جریان بدهد. ضمن اینکه این پایه‌ها مقاومت پول‌آپ داخلی در حدود 20 تا 50 کیلو اهم دارند.

سایر پایه‌ها که کاربردهای خاصی دارند نیز در ادامه آمده‌اند:

  • Serial: صفر (RX) برای دریافت و یک (TX) برای ارسال استفاده می‌شود. این پین بر مبنای TTL است. این پایه‌ها به پایه‌های متناسب چیپ USB-to-TTL سریال متصل می‌شوند.
  • External Interrupts (وقفه‌های خارجی): شامل پایه‌های 2 و 3. این پایه‌ها می‌توانند برای فعال کردن وقفه بر اساس کم ارزش بودن، لبه بالا رونده یا پایین رونده و یا یک تغییر در ارزش دیتا پیکربندی شوند.
  • PWM: شامل پایه‌های 3، 5، 6، 9، 10 و 11. این پین هشت بیت، PWM خروجی را با تابع analogWrite مهیا می‌کند.
  • SPI: شامل پایه‌های (MISO) 12، (MOSI) 11 و SCK 13. این پایه‌ها از ارتباط SPI با استفاده از کتابخانه SPI پشتیبانی می‌کنند.
  • LED: شامل پایه 13. پایه 13 یک LED را درایو می‌کند. زمانیکه ارزش پایه HIGH است، LED روشن و اگر پایه LOW شود، LED خاموش خواهد شد.
  • TWI: شامل پایه A4 یا SDA و پایه A5 یا SCL. ارتباط TWI را با استفاده از تابع Wire پشتیبانی می‌کند.
  • آردوینو Uno شش ورودی آنالوگ دارد که از A0 تا A5 نامگذاری شده‌اند. هر کدام از این ورودی‌ها 10 بیت رزولوشن داشته و این یعنی 1024 حالت مختلف دارند. به صورت پیش‌فرض، این پایه‌ها از صفر تا 5 ولت را اندازه می‌گیرند اما می‌توانید حد بالای آنها را با استفاده از پایه AREF و تابع analogRefrence() تغییر دهید.
  • Reset: با کمک این شاسی، میکروکنترلر ریست می‌شود.

نحوه ارتباط با رایانه برای شروع کار با آردوینو Uno

آردوینو یونو چندین امکان برای ارتباط با یک کامپیوتر، یک برد آردوینو یونو دیگر و یا سایر میکروکنترلرها دارد. Atmega328 ارتباط سریال 5 ولت UART TTL را مهیا می‌کند که بر روی پایه‌های دیجیتال صفر (RX) و یک (TX) در دسترس است.

بر روی کانال‌های برد این ارتباط سریال، علاوه بر USB، یک ATMega16U2 به عنوان پورت COM مجازی برای نرم‌افزار Arduino IDE ظاهر می‌شود. نرم‌افزار Arduino IDE شامل یک سریال مانیتور است که اجازه می‌دهد اطلاعات متنی ساده به برد ارسال و همچنین از آن دریافت شود. هنگام انتقال اطلاعات از طریق چیپ USB-to-TTL و اتصال USB، LEDهای RX و TX بر روی برد چشمک می‌زنند.

شروع کار با آردوینو Uno و ریست نرم‌افزاری خودکار

برد آردوینو Uno به گونه‌ای طراحی شده تا حتی در زمان وصل بودن به رایانه و اجرا شدن نرم‌افزار و با وجود فشار دادن شاسی ریست قبل از آپلود، ریست شود.

آردوینو یونو شامل یک اتصال است که اگر قطع شود، ریست خودکار غیرفعال می‌گردد و اگر دوباره اتصال برقرار شود، می‌تواند ریست خودکار را فعال کند. نام این اتصال Reset-EN است. البته امکان دارد بتوانید با اتصال یک مقاومت 110 اهم از 5 ولت تا خط ریست، ریست خودکار را غیرفعال کنید.

آشنایی با اصلاحات انجام شده برای شروع کار با آردوینو Uno

سه اصلاحی که بر روی برد آردوینو Uno انجام شده، نتایج و ویژگی‌های زیر را در پی داشته‌اند:

  • اضافه کردن پایه‌های SDA و SCL در نزدیکی پایه AREF و دو پایه جدید دیگر که نزدیک پایه RESET قرار دارد، به IOREF اجازه می‌دهد تا شیلدها با ولتاژی که برد فراهم می‌کند، فعالیت نمایند.
  • مدار ریست قدرتمندتر
  • جایگزین شدن ATMega 16U2 با U28

8 دیدگاه در “آموزش شروع کار با آردوینو Uno

  1. Unknown گفت:

    سلام وقت بخیر من برای یک پروژه از تعداد زیادی سنسور و رله و تعدادی دکمه استفاده می کنم و برای منبع تغذیه نمیدونم باید چکار کنم چون وقتی برد رو به ۵ ولت وصل می کنم دو تا موتور سروو توانی برای حرکت ندارند و وقتی هم برد رو به ۱۲ ولت وصل می کنم قسمت های نزدیک جک اداپیتور بعد از چند ثانیه شدید داغ میشه و همچنین باید از ۱ منبع تغذیه حتما استفاده کنم .زیاد از الکترونیک سر در نمیارم.ممنون میشم راهنماییم کنید .

    1. فروشگاه بهنام رباتیک گفت:

      سلام
      دلیل داغ شدن رگولاتور نزدیک جک آداپتور اینه که سروو ها جریان زیادی می‌کشه و رگولاتور توان جریان‌دهی کافی به سرووها رو نداره
      برای حل این مشکل می‌تونید از دو روش استفاده کنید:
      اول اینکه از یک آداپتور 5 ولت برای آردوینو و هم برای سروو ها استفاده کنید.
      روش دوم اینکه اگه قطعه یا ماژولی دارید که 12 ولت هست می‌تونید از یک اداپتور 12 استفاده کنید. برای آردوینو که مستقیم به جک آداپتور یا پایه vin متصل کنید و برای سرووها هم از یک کاهنده مثل LM2596 یا XL4015 استفاده کنید.
      تفاوت این دو کاهنده هم مقدار جریان‌دهی خروجی هست که متناسب با جریان کشی سرووهاتون می‌تونید انتخاب کنید.
      با تشکر از همراهی شما

  2. علیرضا زبرجد گفت:

    سلام ، وقت شما بخیر و شادی ، من تا الان با آردوینو کار نکردم ، آشنایی ندارم ، با انواع ماژول های مختلف مخصوصا ماژولهای کنترل از راه دور وای فای و سیمکارتی و… به خوبی آشنا و مسلط هستم و پروژه های زیادی رو هوشمند سازی کردم . برای یک پروژه نیاز دارم ، که ۶ رله رو به صورت پشت سر هم در تایم های مختلف روشن و خاموش کنم ، به عنوان مثال لازمه که در یک تایم یک ساعته بعد از روشن شدن آردوینو رله شماره یک، ۱۰ دقیقه کار کنه و بعدش خاموش شه ، سپس رله شماره دو ۱۵ دقیقه کار کرده و خاموش شه ، سپس رله ۳ و ۴ و ۵ و ۶ هر کدام به ترتیب ۳۰ و ۱۰ ، ۱۵ ، ۵ دقیقه روشن شده و سپس خاموش بشن .
    همین چرخه میخام دوباره از اول شروع بشه ، با این تفاوت که اینبار رله ها به همون ترتیب ولی با تایم های کوتاه تری روشن و خاموش بشن
    و این چرخه در دور سوم و چهارم ، همون رله ها رو در تایم های باز هم کوتاه تر روشن و خاموش بشن.

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

    سوالم اینه که کدوم مدل آردوینو میتونه این پروژه رو برام راحت تر و با قیمت مناسب تر انجام بده ، خواهشمندم بنده رو راهنمایی کنید ، و آردوینو مناسب رو معرفی و روش خریدش رو اعلام بفرمایید
    چون کارفرما های زیادی این پروژه رو از بنده میخوان، و در مرحله اول حدود ۲۰ آردوینو لازم دارم ، سپاسگزارم . منتظر راهنمایی شما هستم .

    1. فروشگاه بهنام رباتیک گفت:

      سلام
      فرقی نداره همه آردوینوها میتونن کار شما رو انجام بدن
      از نظر قیمت مدل pro mini از همه ارزون‌تره ولی برای پروگرام کردن باید از یک مبدل usb to ttl استفاده کنید و مزیت دیگه‌ای هم که داره خیلی کوچکتر هست
      ولی اگه بخواهید راحتتر پروگرام کنید، مدل nano بهتره چون مستقیم با کابل mini usb به سیستم متصل میشه و ابعاد این مدل یکم از مدل pro mini بزرگتر هست
      با تشکر از توجه شما

      1. علیرضا زبرجد گفت:

        سپاس از توجه و راهنمایی شما
        لطفا لینک فردش مدل nano که فرمودید مستقیم با کابل پروگرام میشه رو بزارید که خرید کنم ، اگر ممکنه فایل یا راهنمای پروگرام که میتونه پروژه بنده رو راه اندازی کنه رو هم ارائه بفرمایید ،

  3. بدون نام گفت:

    سلام وقت بخیر به پایه های pwm آردوینو عدد منفی هم میشه داد؟

    1. فروشگاه بهنام رباتیک گفت:

      سلام
      وقت شما هم بخیر
      در آردوینو، سیگنال PWM (مدولاسیون عرض پالس) معمولاً فقط مقادیر مثبت را می‌پذیرد. به عبارت دیگر، مقادیر ورودی برای تابع PWM باید در بازه 0 تا 255 باشد، که نشان‌دهنده درصد روشنایی یا قدرت سیگنال است. اگر شما عدد منفی به تابع PWM بدهید، نتیجه یا نادیده گرفته می‌شود یا ممکن است به صورت ناخواسته رفتار کند. بنابراین، برای استفاده صحیح از PWM در آردوینو، باید اطمینان حاصل کنید که مقادیر ورودی در محدوده مجاز (0 تا 255) قرار دارند. اگر نیاز دارید که یک مقدار منفی را مدیریت کنید، می‌توانید آن را به یک مقدار مثبت تبدیل کنید یا از روش‌های دیگری برای کنترل استفاده کنید.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *