آموزش آردوینو

معرفی کامل برد آردوینو مگا 2560: پین ها و عملکردها

آردوینو مگا را می توان بزرگتر و پرپین تر از آردوینو اونو دانست؛ بردی که حافظه بیشتر و تعداد بیشتری پین برای پروژه های پیچیده ارائه می دهد. با 54 پایه دیجیتال، 16 ورودی آنالوگ و چند پورت سریال سخت افزاری، مگا مناسب پروژه هایی است که نیاز به اتصال همزمان به سنسورها، نمایشگرها یا ماژول های متعدد دارند.

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

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

دوره آموزش آردوینو دوره آموزش ESP32 دوره آموزش اینترنت اشیا حرفه ای دوره آموزش AVR

Pinout آردوینو مگا

آردوینو مگا در مجموع 86 پین دارد. نقشه کلی پین ها به صورت زیر است:

نمای کلی Pinout آردوینو مگا 2560 با شماره پین ها

حالا هر دسته از پین ها را جداگانه و با جزئیات بررسی می کنیم.

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

پین های دیجیتال قابل تنظیم به عنوان ورودی یا خروجی هستند. در حالت ورودی آن ها می توانند وضعیت منطقی HIGH یا LOW را بخوانند و در حالت خروجی توانایی ارسال سیگنال دیجیتال برای کنترل اجزایی مثل LED، موتور یا رله را دارند.

مگا دارای 54 پین دیجیتال است که با D0 تا D53 شماره گذاری شده اند.

تصویر پین های دیجیتال D0 تا D53 روی برد مگا

این پین ها در سطح ولتاژ منطقی 5V عمل می کنند و هر پین می تواند حداکثر 20 mA جریان منبع یا چاه باشد.

برای پیکربندی پین به صورت ورودی از pinMode(pin, INPUT) و سپس digitalRead(pin) برای خواندن وضعیت استفاده می شود. برای خروجی شدن پین از pinMode(pin, OUTPUT) و سپس digitalWrite(pin, HIGH/LOW) بهره می گیریم.

LED داخلی برد

یک LED روی برد به پین D13 متصل است. وقتی این پین HIGH شود LED روشن می شود و در حالت LOW خاموش می شود، بنابراین D13 گزینه مناسبی برای نشانگر وضعیت یا دیباگ است. اگر از D13 برای عملکردهای دیگر استفاده کنید، تغییر وضعیت LED ممکن است شما را گیج کند چون LED همزمان پاسخ خواهد داد.

مقاومت های داخلی کششی Pull-up

هر پین دیجیتال دارای یک مقاومت Pull-up داخلی است که در حالت ورودی با فرمان pinMode(pinNumber, INPUT_PULLUP) فعال می شود. این مقاومت به صورت ضعیف پین را به HIGH می کشد تا پین هنگام اتصال نداشتن معلق یا noisy نماند. مقدار مقاومت کششی داخلی بین 20-50 kΩ تضمین شده است.

پین های وقفه (Interrupt)

پین های وقفه ورودی های دیجیتالی ویژه ای هستند که می توانند با وقوع یک رویداد خارجی (مثلا تغییر سطح ولتاژ) اجرای یک روال خاص به نام Interrupt Service Routine یا ISR را راه اندازی کنند. این امکان باعث می شود نیازی به بررسی مداوم وضعیت پین در حلقه اصلی کد نداشته باشید و آردوینو بلافاصله به رویدادها پاسخ دهد.

آردوینو مگا 6 پین وقفه خارجی دارد:

  • پین 2 (Interrupt 0)
  • پین 3 (Interrupt 1)
  • پین 21 (Interrupt 2)
  • پین 20 (Interrupt 3)
  • پین 19 (Interrupt 4)
  • پین 18 (Interrupt 5)
محل پین های وقفه خارجی Interrupt های آردوینو مگا

برای پیکربندی پین به عنوان وقفه خارجی از attachInterrupt(interrupt, ISR, mode) استفاده می شود؛ در این تابع interrupt شماره وقفه است (مثلا 0 برای پین 2، 1 برای پین 3)، ISR نام تابعی است که هنگام وقوع وقفه اجرا می شود و mode شرط فعال شدن را مشخص می کند (LOW, RISING, FALLING یا CHANGE).

توجه داشته باشید که پین های 20 و 21 زمانی که برای ارتباط I2C استفاده می شوند، برای کاربرد وقفه در دسترس نخواهند بود؛ علاوه بر این این پین ها دارای مقاومت های کششی خارجی هستند که قابل غیرفعال کردن نیستند.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

پین های PWM

پین های PWM پین های دیجیتالی هستند که قادرند خروجی های شبه آنالوگ تولید کنند. این کار با سوئیچ سریع بین حالت های HIGH و LOW و تولید موج مربعی انجام می شود. نسبت زمان روشن به کل دوره موج را Duty Cycle می گویند. تغییر Duty Cycle باعث کنترل میانگین ولتاژ تحویلی به بار می شود و برای کم و زیاد کردن شدت LED، کنترل سرعت موتور یا تولید تون صوتی ساده کاربرد دارد.

آردوینو مگا دارای 15 پین توانمند PWM است: D2 تا D13 و D44 تا D46.

پین های PWM روی آردوینو مگا D2 تا D13 و D44 تا D46

به صورت پیش فرض خروجی PWM یک سیگنال 8 بیتی است، یعنی مقادیر از 0 تا 255 را می پذیرد که معادل 256 سطح تفکیک برای Duty Cycle است.

برای استفاده از PWM ابتدا پین را با pinMode(pin, OUTPUT) خروجی تعریف کنید و سپس با analogWrite(pin, value) مقدار 0 تا 255 را بنویسید. مثال ها:

  • analogWrite(pin, 0): Duty Cycle برابر 0% (همیشه خاموش).
  • analogWrite(pin, 127): Duty Cycle تقریبا 50%.
  • analogWrite(pin, 255): Duty Cycle برابر 100% (همیشه روشن).

پین های ADC و ورودی آنالوگ

پین های آنالوگ برای خواندن سیگنال های پیوسته مناسب هستند؛ سیگنال هایی که معمولا از سنسورهایی می آیند که دما، نور یا فشار را اندازه می گیرند. آردوینو مگا این سیگنال های آنالوگ را با مبدل آنالوگ به دیجیتال (ADC) به مقادیر دیجیتال تبدیل می کند تا بتوان آن ها را در کد پردازش کرد.

مگا دارای 16 پین آنالوگ است که با A0 تا A15 شماره گذاری شده اند.

بلوک پین های آنالوگ A0 تا A15 و ADC 10 بیت

ADC در آردوینو مگا دارای رزولوشن 10 بیت است. یعنی امکان تشخیص 1024 سطح مجزا (2^10) وجود دارد. به عبارت دیگر ولتاژهای ورودی از 0 تا 5V به اعداد صحیح 0 تا 1023 تبدیل می شوند. این معادل رزولوشنی در حدود 5V / 1024 یا تقریبا 0.0049V (4.9 mV) به ازای هر گام است.

این دقت برای اغلب پروژه ها کافی است، ولی اگر نیاز به اندازه گیری دقیق تر دارید باید از ADC خارجی با رزولوشن بالاتر استفاده کنید.

برای خواندن مقدار آنالوگ از analogRead(pin) استفاده می شود که یک عدد بین 0 و 1023 برمی گرداند. مثلا اگر ولتاژ ورودی برابر 2.5V باشد، مقدار بازگشتی تقریبا 512 خواهد بود.

توجه کنید پین های آنالوگ در مگا می توانند به عنوان پین دیجیتال نیز عمل کنند. اگر به پین های دیجیتال بیشتری نیاز دارید و از همه پین های آنالوگ استفاده نمی کنید، می توانید آن ها را با pinMode() به عنوان ورودی یا خروجی دیجیتال تنظیم کنید.

تغییر ولتاژ مرجع ADC

به صورت پیش فرض مرجع ADC برابر بازه 0V تا 5V است، اما با استفاده از پین AREF و تابع analogReference(type) می توان این بازه را تغییر داد. مقادیر ممکن برای type عبارت اند از:

  • DEFAULT: استفاده از مرجع پیش فرض 5V.
  • INTERNAL: استفاده از مرجع داخلی 1.1V.
  • EXTERNAL: استفاده از ولتاژ مرجع خارجی که به پین AREF اعمال می شود.

هدرهای ICSP

آردوینو مگا دو هدر ICSP دارد؛ یکی نزدیک میکروکنترلر اصلی و دیگری نزدیک کانکتور USB قرار گرفته است.

دو هدر ICSP روی برد برای برنامه ریزی و SPI

دو کاربرد اصلی هدر ICSP عبارت اند از:

  • برنامه ریزی برد: می توانید با یک پروگرامر خارجی (مثلا AVR ISP یا یک آردوینو دیگر به صورت ISP) کد را از طریق هدر ICSP مستقیما روی مگا آپلود کنید. این روش زمانی مفید است که بوتلودر خراب شده یا بخواهید بوتلودر را روی میکروکنترلر جدید بسوزانید.
  • ارتباط با دستگاه های SPI: هدر دسترسی به سیگنال های SPI یعنی MISO، MOSI و SCK را فراهم می کند. از این سیگنال ها می توانید برای اتصال به دستگاه های SPI مثل ماژول کارت SD یا سنسورهای خارجی استفاده کنید. توجه داشته باشید که Slave Select یا SS برای کنترل چند دستگاه SPI روی هدر ارائه نشده و باید آن را به صورت جداگانه مدیریت کنید.

پین های I2C

آردوینو مگا دو پین اختصاصی برای I2C دارد:

  • D20 (SDA)
  • D21 (SCL)

یک مجموعه تکراری از پین های I2C نیز نزدیک پین AREF قرار دارد.

محل پین های I2C SDA و SCL نزدیک AREF

سرعت پیش فرض باس I2C بر روی مگا برابر 100 kHz است. با استفاده از Wire.setClock() می توانید آن را تا 400 kHz یا در مواردی بیشتر افزایش دهید، اما باید محدودیت های دستگاه های متصل را در نظر بگیرید.

توجه داشته باشید که روی SDA و SCL مقاومت های کششی 10k داخلی نصب شده اند.

پین های SPI

آردوینو مگا مجموعه ای از پین ها را برای ارتباط SPI در اختیار دارد:

موقعیت پین های SPI MOSI MISO SCK و SS روی برد

پین 51 با برچسب MOSI (Master Out Slave In) برای ارسال داده از مستر به اسلیو استفاده می شود. پین 50 با برچسب MISO (Master In Slave Out) برای ارسال داده از اسلیو به مستر است. پین 52 با برچسب SCK سیگنال کلاک را حمل می کند که تبادل داده را زمانبندی می کند. در نهایت پین 53 که معمولا SS نامیده می شود برای انتخاب اسلیو مورد نظر هنگام اتصال چند دستگاه SPI کاربرد دارد.

همچنین هدر ICSP سیگنال های مشابه SPI را ارائه می دهد؛ می توانید از پین های استاندارد یا هدر ICSP برای ارتباط SPI استفاده کنید.

پین های UART

آردوینو مگا 2560 در واقع چهار مجموعه پین UART سخت افزاری دارد: UART0، UART1، UART2 و UART3.

تخصیص پین ها به صورت زیر است:

  • UART0: پین 1 (TX0) و پین 0 (RX0)
  • UART1: پین 18 (TX1) و پین 19 (RX1)
  • UART2: پین 16 (TX2) و پین 17 (RX2)
  • UART3: پین 14 (TX3) و پین 15 (RX3)
چهار مجموعه UART روی آردوینو مگا با شماره پین ها

UART0 عمدتا برای آپلود اسکچ و ارتباط سریال با کامپیوتر از طریق USB به کار می رود، بنابراین این UART با مبدل USB-to-serial روی برد مشترک است. بقیه UART های سخت افزاری (UART1 تا UART3) امکان ارتباط همزمان با چند دستگاه سریال را فراهم می کنند، زیرا هر کدام به صورت مستقل کار می کنند.

اگر به کانال های UART بیشتری نیاز دارید می توانید از کتابخانه SoftwareSerial برای ایجاد پورت های سریال نرم افزاری روی پین های دیجیتال دیگر استفاده کنید. با این حال SoftwareSerial از نظر سرعت و قابل اطمینان بودن نسبت به UART سخت افزاری محدودیت دارد.

پین های تغذیه

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

پین های تغذیه VIN 5V 3.3V و پایه های GND روی مگا

VIN: این پین برای تامین ولتاژ ورودی از منبع خارجی مثل آداپتور دیواری یا پک باتری کاربرد دارد. بازه ولتاژ ورودی برای VIN معمولا 7-12 volts است. ولتاژ اعمال شده به این پین توسط رگولاتور روی برد به 5V تنظیم می شود تا میکروکنترلر و سایر بخش ها تغذیه شوند. پین Vin به ترمینال مثبت جک DC متصل است، پس وقتی از طریق جک DC تغذیه می کنید همان ولتاژ در Vin در دسترس است.

5V: این پین خروجی 5V تنظیم شده از رگولاتور داخلی را ارائه می دهد و می توانید قطعاتی که به 5V نیاز دارند را با آن تغذیه کنید. اگر برد را از طریق کابل USB تغذیه می کنید، پین 5V می تواند حداکثر 500mA جریان فراهم کند. رگولاتور روی برد از نظر مشخصات فنی برای 800mA طراحی شده اما به دلیل اتلاف حرارت نباید از حدود 400 تا 500mA فراتر رفت. اگر پروژه شما جریان بیشتری لازم دارد باید از منبع تغذیه خارجی مناسب استفاده کنید.

3.3V: این پین خروجی 3.3V تنظیم شده را ارائه می کند که برای قطعاتی با ولتاژ پایین تر مناسب است. جریان قابل تامین از این پین تقریبا 50mA است؛ دقت کنید که رگولاتور 3.3V از خروجی 5V تغذیه می شود، بنابراین کشیدن جریان از 3.3V باعث اتلاف حرارت در هر دو رگولاتور 3.3V و 5V می شود و ظرفیت جریان قابل استفاده روی پین 5V را نیز محدود می کند.

GND: این پین مرجع زمین مشترک برای تمام اتصالات الکتریکی روی برد است. اتصال زمین قطعات خارجی به این پین برای تکمیل مدار ضروری است.

پین های ویژه و کاربردی

پین های ویژه شامل D13 IOREF و RESET روی برد

D13: همانطور که قبلا اشاره شد، LED داخلی برد به این پین متصل است و برای نمایش وضعیت یا دیباگ مفید است. اگر D13 را برای کار دیگری استفاده کنید حواستان باشد LED هم به تغییرات پاسخ خواهد داد.

IOREF: این پین نمایانگر ولتاژ مرجع ورودی/خروجی برد است. در آردوینو مگا مقدار IOREF برابر 5V است. شیلدها (shield) می توانند با خواندن این ولتاژ تشخیص دهند برد با چه ولتاژی کار می کند و در صورت نیاز سطح ولتاژهای خود را تنظیم یا مبدل ولتاژ را فعال کنند تا از ناسازگاری ولتاژ جلوگیری شود. IOREF برای تامین برق دستگاه های خارجی طراحی نشده و استفاده به عنوان منبع تغذیه می تواند باعث آسیب شود.

RESET: این پین برای ریست کردن میکروکنترلر و راه انداختن مجدد برنامه اجرا شده روی برد به کار می رود. RESET فعال LOW است؛ یعنی وقتی این پین به زمین کشیده شود میکروکنترلر ریست می شود. معمولا یک مقاومت کششی داخلی پین RESET را به صورت پیش فرض HIGH نگه می دارد. می توانید با اتصال RESET به یک خروجی دیجیتال و کشیدن آن به LOW با digitalWrite(RESET_PIN, LOW) و سپس بازگرداندنش به HIGH برنامه را به صورت نرم افزاری ریست کنید، یا از سوئیچ یا دستگاه خارجی استفاده کنید تا با ارسال سیگنال LOW برد را ریست کند.

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

5 (1 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

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

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