Справочник по распиновке Arduino Mega 2560

Arduino Mega — это старший брат Uno, предлагающий больше выводов, больше памяти и больше возможностей для сложных проектов. С 54 цифровыми выводами ввода/вывода, 16 аналоговыми входами и несколькими последовательными портами он отлично подходит для проектов, требующих подключения множества датчиков, дисплеев или других модулей одновременно.

Чтобы использовать весь потенциал Mega, вам необходимо разобраться в его распиновке. В этом руководстве мы рассмотрим различные типы выводов Arduino Mega и объясним, для чего каждый из них предназначен.

Итак, берите свой Mega и готовьтесь к увлекательному путешествию по выводам!

Распиновка Arduino Mega

Arduino Mega имеет 86 выводов. Распиновка выглядит следующим образом:

Arduino Mega 2560 Pinout Reference

Давайте подробнее рассмотрим выводы Arduino и их функции.

Цифровые выводы ввода/вывода Arduino Mega

Это выводы Arduino Mega, которые можно настроить как входы или выходы. В режиме входа они считывают цифровые сигналы (HIGH или LOW), а в режиме выхода — отправляют цифровые сигналы для управления внешними компонентами, такими как светодиоды, моторы и реле.

Arduino Mega имеет 54 цифровых вывода ввода/вывода с маркировкой от D0 до D53:

Arduino Mega 2560 Pinout Reference

Обратите внимание, что эти выводы работают на логическом уровне 5V, и каждый вывод может отдавать или потреблять максимум 20 мА тока.

Чтобы установить цифровой вывод как вход, используется функция pinMode(pin, INPUT), а затем функция digitalRead(pin) для считывания состояния входного вывода. Для установки вывода как выхода используется функция pinMode(pin, OUTPUT), а затем digitalWrite(pin, HIGH/LOW) для установки нужного состояния.

Встроенный светодиод

Arduino Mega имеет встроенный светодиод, подключённый к выводу D13. Он загорается, когда вывод установлен в HIGH, и гаснет, когда установлен в LOW. Это удобный индикатор для отладки или отображения состояния проекта.

Если вы используете D13 для других целей, помимо управления светодиодом, помните, что встроенный светодиод также будет реагировать на изменения состояния вывода. Это может сбивать с толку, если вы не знаете о таком подключении.

Внутренние подтягивающие резисторы

Каждый цифровой вывод имеет внутренний подтягивающий резистор, который можно включить в режиме INPUT с помощью pinMode(pinNumber, INPUT_PULLUP). Этот резистор слабо подтягивает вывод к HIGH, когда к нему ничего не подключено, предотвращая «плавание» между состояниями HIGH и LOW из-за электрических помех.

Значение подтягивающего резистора гарантированно находится в диапазоне 20-50 кОм.

Выводы прерываний Arduino Mega

Выводы прерываний — это специальные цифровые входные выводы, которые могут запускать определённый блок кода (известный как процедура обработки прерывания, или ISR) при наступлении внешнего события, например, при изменении уровня напряжения (с HIGH на LOW или наоборот). Это позволяет Arduino мгновенно реагировать на события без постоянной проверки состояния вывода в основном цикле программы.

Arduino Mega имеет 6 выводов внешних прерываний:

  • Вывод 2 (Interrupt 0)

  • Вывод 3 (Interrupt 1)

  • Вывод 21 (Interrupt 2)

  • Вывод 20 (Interrupt 3)

  • Вывод 19 (Interrupt 4)

  • Вывод 18 (Interrupt 5)

Arduino Mega 2560 Pinout Reference

Функция attachInterrupt(interrupt, ISR, mode) используется для настройки выводов как внешних прерываний, где interrupt — это номер прерывания (например, 0 для вывода 2, 1 для вывода 3), ISR — процедура обработки прерывания (функция, вызываемая при наступлении прерывания), а mode определяет условие срабатывания (LOW, RISING, FALLING или CHANGE).

Обратите внимание, что выводы 20 и 21 недоступны для прерываний, пока они используются для связи по I2C; также они имеют внешние подтягивающие резисторы, которые нельзя отключить.

Выводы PWM Arduino Mega

Выводы PWM на Arduino Mega — это цифровые выводы, способные имитировать аналоговый выход. Они достигают этого путём быстрого переключения вывода между состояниями HIGH и LOW, создавая прямоугольный сигнал. Отношение времени «включения» к полному периоду сигнала называется коэффициентом заполнения. Изменяя коэффициент заполнения, вы можете управлять средним напряжением, подаваемым на подключённый компонент, что позволяет регулировать яркость светодиодов, скорость моторов и даже генерировать простые звуковые сигналы.

Arduino Mega предоставляет 15 цифровых выводов с поддержкой PWM: D2 — D13 и D44 — D46.

Arduino Mega 2560 Pinout Reference

По умолчанию выход PWM является 8-битным сигналом, то есть может принимать любое значение от 0 до 255. Это соответствует 256 дискретным уровням коэффициента заполнения.

Язык программирования Arduino делает использование PWM простым. Сначала функция pinMode(pin, OUTPUT) устанавливает нужный вывод PWM как выход. Затем функция analogWrite(pin, value) устанавливает значение PWM на выводе. Здесь pin — номер вывода с поддержкой PWM, а value — целое число от 0 до 255. Например:

  • analogWrite(pin, 0): устанавливает коэффициент заполнения 0% (всегда выключен).

  • analogWrite(pin, 127): устанавливает коэффициент заполнения приблизительно 50%.

  • analogWrite(pin, 255): устанавливает коэффициент заполнения 100% (всегда включён).

Выводы АЦП Arduino Mega

Аналоговые входные выводы Arduino Mega предназначены для считывания непрерывных аналоговых сигналов. Эти сигналы часто поступают от датчиков, измеряющих физические величины, такие как температура, интенсивность света или давление. Arduino Mega преобразует эти аналоговые сигналы в цифровые значения с помощью аналого-цифрового преобразователя (АЦП), позволяя обрабатывать и анализировать данные в вашем коде Arduino.

Arduino Mega имеет 16 аналоговых входных выводов с маркировкой от A0 до A15.

Arduino Mega 2560 Pinout Reference

АЦП Arduino Mega имеет разрешение 10 бит. Это означает, что он может распознать 1024 (2^10) дискретных аналоговых уровня. Другими словами, он преобразует входные напряжения в диапазоне от 0 до 5V (рабочее напряжение) в целые числа от 0 до 1023. Это соответствует разрешению 5 вольт / 1024 единицы, или приблизительно 0,0049 вольта (4,9 мВ) на шаг.

Такой уровень точности обычно достаточен для большинства наших проектов, но для более точных измерений следует использовать внешний АЦП с более высоким разрешением.

Для считывания аналогового значения с вывода используется функция analogRead(pin). Эта функция возвращает целое число от 0 до 1023, представляющее измеренное напряжение на выводе. Например, если вывод измеряет напряжение 2,5V (половина от максимальных 5V), функция analogRead() вернёт приблизительно 512.

Имейте в виду, что аналоговые выводы Mega также можно использовать как цифровые выводы ввода/вывода. Если вам нужно больше цифровых выводов и вы не используете все аналоговые, их можно настроить как цифровые выходы с помощью pinMode().

Изменение опорного напряжения

По умолчанию АЦП измеряет напряжения от 0V до 5V, но этот диапазон можно изменить с помощью вывода AREF и функции analogReference(type). Возможные значения параметра type:

  • DEFAULT: использует опорное напряжение по умолчанию 5V.

  • INTERNAL: использует внутреннее опорное напряжение 1,1V.

  • EXTERNAL: использует внешнее опорное напряжение, поданное на вывод AREF.

Выводы разъёма ICSP Arduino Mega

Arduino Mega имеет два разъёма ICSP. Один расположен рядом с основным чипом микроконтроллера, а другой — вблизи USB-разъёма.

Arduino Mega 2560 Pinout Reference

Разъём ICSP имеет два основных назначения:

  • Программирование Arduino Mega: вы можете использовать внешний программатор (например, AVR ISP программатор или другую плату Arduino в качестве ISP) для загрузки кода на Arduino Mega напрямую через разъём ICSP. Это особенно полезно, если загрузчик повреждён или если вы хотите записать загрузчик на новый микроконтроллер.

  • Связь с устройствами SPI: разъём предоставляет доступ к выводам SPI (Serial Peripheral Interface): MISO (Master In Slave Out), MOSI (Master Out Slave In) и SCK (Serial Clock). Эти выводы можно использовать для подключения и обмена данными с устройствами SPI, такими как модули SD-карт или внешние датчики. Важно отметить, что вывод Slave Select (SS), необходимый для управления несколькими устройствами SPI, не включён в разъём и должен управляться вручную.

Выводы I2C Arduino Mega

Arduino Mega имеет два вывода, предназначенных для связи по I2C:

  • D20 (SDA)

  • D21 (SCL)

Также имеется дублирующая пара выводов I2C, расположенная рядом с выводом AREF.

Arduino Mega 2560 Pinout Reference

Скорость шины I2C по умолчанию на Arduino Mega составляет 100 кГц. Вы можете увеличить её до 400 кГц (или даже выше в некоторых случаях) с помощью Wire.setClock(), но учитывайте ограничения подключённых устройств.

Обратите внимание, что Arduino Mega уже имеет встроенные подтягивающие резисторы 10 кОм на выводах SDA и SCL.

Выводы SPI Arduino Mega

Arduino Mega имеет отдельный набор выводов для связи по SPI:

Arduino Mega 2560 Pinout Reference

Вывод 51, обозначенный MOSI (Master Out Slave In), используется ведущим устройством (Arduino) для отправки данных на ведомое устройство. И наоборот, вывод 50, обозначенный MISO (Master In Slave Out), используется ведомым устройством для отправки данных обратно на Arduino. Вывод 52, обозначенный SCK (Serial Clock), передаёт тактовый сигнал, синхронизирующий обмен данными между ведущим и ведомым устройствами. Наконец, вывод 53, обычно назначаемый как SS (Slave Select), используется для выбора конкретного ведомого устройства, с которым вы хотите обмениваться данными, если подключено несколько устройств SPI.

Помимо стандартных выводов SPI, Arduino Mega также имеет разъём ICSP, предоставляющий доступ к тем же сигналам SPI. Вы можете использовать как стандартные выводы, так и разъём ICSP для связи по SPI.

Выводы UART Arduino Mega

Arduino Mega 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).

Arduino Mega 2560 Pinout Reference

UART0 в основном используется для загрузки скетчей и обмена данными с компьютером через USB-подключение, то есть он разделяется с конвертером USB-to-serial на плате. Остальные аппаратные UART (UART1, UART2 и UART3) позволяют Arduino Mega одновременно обмениваться данными с несколькими последовательными устройствами. Каждый UART работает независимо, обеспечивая одновременную передачу и приём данных.

Если вам нужно больше каналов UART, Arduino Mega поддерживает библиотеку SoftwareSerial, которая позволяет создавать дополнительные программные соединения UART на других цифровых выводах. Однако SoftwareSerial имеет ограничения по скорости и надёжности по сравнению с аппаратным UART.

Выводы питания Arduino Mega

Arduino Mega имеет несколько выводов питания. Эти выводы необходимы для питания самой платы и для подачи питания на подключённые компоненты и датчики.

Arduino Mega 2560 Pinout Reference

VIN: этот вывод позволяет подавать питание на плату Arduino от внешнего источника питания, такого как сетевой адаптер или батарейный блок. Это полезно для автономных проектов, когда плата не подключена к компьютеру через USB. Диапазон входного напряжения для VIN обычно составляет 7-12 вольт. Входное напряжение, подаваемое на этот вывод, стабилизируется до 5V встроенным регулятором напряжения, который затем питает микроконтроллер и другие компоненты на плате. Вывод Vin внутренне соединён с положительным контактом разъёма питания DC. Это означает, что при подаче напряжения через разъём DC оно доступно через вывод Vin.

5V: этот вывод обеспечивает стабилизированный выход 5V от встроенного регулятора напряжения. Вы можете использовать этот вывод для питания различных компонентов и датчиков, требующих стабильного напряжения 5V. Вывод 5V может обеспечить максимум 500 мА тока при питании Arduino Mega через USB-кабель. Встроенный регулятор напряжения технически рассчитан на 800 мА, но из-за проблем с рассеиванием тепла не следует превышать 400-500 мА. Если ваш проект требует больше энергии, чем может безопасно обеспечить вывод 5V, вам потребуется внешний источник питания.

3.3V: этот вывод обеспечивает стабилизированный выход 3,3V, что полезно для компонентов, работающих при пониженном напряжении. Будьте осторожны и не потребляйте слишком много тока с этого вывода, так как его максимальная токовая нагрузка составляет примерно 50 мА. Стоит отметить, что регулятор 3,3V подключён к выходу регулятора 5V. Потребление тока от регулятора 3,3V будет рассеивать тепло как в регуляторе 3,3V, так и в регуляторе 5V. Это означает, что при подключении устройства 3,3V к выводу 3,3V также ограничивается максимальный ток, доступный для модулей 5V, подключённых к выводу 5V.

GND: этот вывод представляет собой общую точку заземления для всех электрических соединений на Arduino. Обязательно подключайте выводы заземления ваших внешних компонентов к этому выводу для замыкания электрической цепи.

Выводы специальных функций Arduino Mega

Arduino Mega 2560 Pinout Reference

D13: к этому выводу подключён встроенный светодиод. Он загорается, когда вывод установлен в HIGH, и гаснет, когда установлен в LOW. Это удобный индикатор для отладки или отображения состояния проекта. Если вы используете D13 для других целей, помимо управления светодиодом, помните, что встроенный светодиод также будет реагировать на изменения состояния вывода. Это может сбивать с толку, если вы не знаете о таком подключении.

IOREF: означает Input/Output Reference Voltage (опорное напряжение ввода/вывода). Этот вывод обеспечивает опорное напряжение, указывающее рабочее напряжение платы Arduino. В случае Arduino Mega вывод IOREF выдаёт напряжение 5V. Этот вывод в основном предназначен для использования с платами расширения, называемыми шилдами. Правильно спроектированный шилд может считать напряжение на выводе IOREF для определения рабочего напряжения Arduino. Эта информация позволяет шилду регулировать свои собственные уровни напряжения или включать трансляторы уровней по мере необходимости, обеспечивая совместимость и предотвращая повреждения из-за несоответствия напряжений. Имейте в виду, что вывод IOREF не предназначен для использования в качестве источника питания для внешних компонентов. Это может привести к повреждению платы Arduino.

RESET: вывод используется для сброса микроконтроллера Arduino Mega, по сути перезапуская выполняемую на нём программу. Вывод RESET активен при LOW, что означает, что при подтяжке к LOW (подключении к земле) микроконтроллер сбрасывается. Обычно внутренний подтягивающий резистор удерживает вывод RESET в состоянии HIGH по умолчанию. Вы можете сбросить Arduino программно, подключив вывод RESET к цифровому выходному выводу и переключив его в LOW с помощью digitalWrite(RESET_PIN, LOW), а затем обратно в HIGH. Или вы можете подключить к этому выводу внешнюю кнопку или устройство. Когда кнопка нажата или устройство отправляет сигнал LOW, Arduino будет сброшен.