Назначение пинов Arduino плат: Uno, Nano, Mega 2560

 

Назначение пинов Arduino плат: Uno, Nano, Mega 2560 — важная информация, для тех кто начал свое знакомство с микроконтроллерами этого семейства. Мы решили в этом обзоре максимально подробно описать аналоговые, цифровые и шим пины Arduino, также вы узнаете, как сделать аналоговые пины цифровыми. Еще мы рассмотрим назначение пинов с дополнительными функциями: SDA и SCL, TX и RX, и другие.

Аналоговые, цифровые и шим пины Ардуино

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega

Все пины можно разделить на несколько видов, различие будет только в количестве данных выводов на различных платах. Например, на Arduino Mega 2560 цифровых и аналоговых портов, значительно больше, чем на Uno или Nano из-за большего размера платы и производительности микроконтроллера. В остальном характеристики и способы программирования пинов не отличаются друг от друга.

  1. Power Pins — порты питания, режим их работы нельзя запрограммировать или изменить. Они выдают стабилизированное напряжение 5V или 3,3V, Vin выдает напряжение от источника питания, а GND — это заземление (общий минус);
  2. PWM Pins — порты с ШИМ модуляцией, которые можно запрограммировать, как цифровой выход/вход. Данные порты обозначены на плате знаком тильда (˜);
  3. Analog In — порты, принимающие аналоговый сигнал от датчиков, работают на вход. Данные порты тоже можно запрограммировать, как цифровой вход/выход. Данные пины не поддерживают ШИМ модуляцию.

Режим пинов назначается в процедуре void setup с помощью pinMode(), например:

void setup() {
    pinMode(10, OUTPUT); // объявляем пин 10 как выход
    pinMode(A2, OUTPUT); // объявляем пин A2 как выход

    pinMode(12, INPUT); // объявляем пин 12 как вход
    pinMode(A1, INPUT); // объявляем пин A1 как вход
}

Пояснения к коду:

  1. к выходу 10 и A2 можно подключить светодиод, который будет включаться и выключаться при вызове команды в программе;
  2. пин 10 может использоваться для ШИМ сигнала, например, чтобы плавно включить светодиод, а пин A2 может выдавать только цифровой сигнал (0 или 1);
  3. к входу 12 и A1 можно подключить цифровой датчик и микроконтроллер будет проверять наличие сигнала на этих пинах (логический нуль или единицу);
  4. к входу A1 можно подключить аналоговый датчик тогда микроконтроллер будет получать не только сигнал но и узнавать характеристику сигнала.

Мы не случайно разделили пины с ШИМ модуляцией (PWM Pins) и аналоговые. PWM пины создают аналоговый сигнал, к ним подключают сервопривод, шаговый двигатель и другие устройства, где требуется подавать сигнал с разными характеристиками. Аналоговые пины (Analog In) используются для подключения аналоговых датчиков, с них входящий сигнал преобразуется в цифровой с помощью встроенного АЦП.

Пины Ардуино Уно: шим, аналоговые, цифровые

Arduino UNO распиновка платы на русском
Arduino UNO распиновка платы на русском
ШИМ (PWM) порты
(Analog Out)
3, 5, 6, 9, 10, 11
Аналоговые порты
(Analog In)
A0, A1, A2, A3, A4, A5
на некоторых платах: A6, A7
Цифровые порты
(Digital In/Out)
все порты со 2 по 13 пин
можно использовать: A0 — A7

Из таблицы видно, какие пины на Arduino UNO поддерживают шим. Аналоговые пины (Analog In) используют, как цифровые если недостаточно портов общего назначения, например, вы хотите подключить к плате 15 светодиодов. Кроме того, на плате Arduino Uno и Nano порты A4 и A5 используются для I2C протокола (SDA и SCL пины) — они работают параллельно с пинами A4 и A5. Об этом мы расскажем чуть позже.

Пины Ардуино Нано: шим, аналоговые, цифровые

Arduino Nano распиновка платы на русском
Arduino Nano распиновка платы на русском
ШИМ (PWM) порты
(Analog Out)
3, 5, 6, 9, 10, 11
Аналоговые порты
(Analog In)
A0, A1, A2, A3, A4, A5
на некоторых платах: A6, A7
Цифровые порты
(Digital In/Out)
все порты со 2 по 13 пин
можно использовать: A0 — A7


Если вы заметили, то пины на Arduino Nano и Uno имеют одинаковое количество и назначение. Платы отличаются лишь своими габаритами. Nano — более компактная и удобная плата, для экономии места на нее не ставят разъем питания, для этого используются пины Vin и GND на которое подается питание от источника.

Пины Ардуино Мега: шим, аналоговые, цифровые

Схема распиновки платы Arduino Mega 2560 r3
Схема распиновки платы Arduino Mega 2560 r3
ШИМ (PWM) порты
(Analog Out)
все порты со 2 по 13 пин
дополнительно: 44, 45, 46 пин
Аналоговые порты
(Analog In)
с A0 до A15
Цифровые порты
(Digital In/Out)
все порты со 2 по 13, со 22 по 52 пин
можно использовать: A0 — A15

Пины коммуникации нежелательно использовать, как обычные цифровые порты. Особенно при таком количестве портов общего назначения, как на Mega 2560. Более подробную информацию о рассмотренных платах, а также о других микроконтроллерах семейства Arduino (Pro Mini, Leonardo, Due и пр.): характеристики, описание пинов, габариты и т.д. можно узнать в разделе Микроконтроллеры на нашем сайте.

Аналоговые пины Ардуино, как цифровые

Как вы уже поняли, при подключении большого количества устройств к плате, пинов общего назначения может не хватить. Тогда в скетче указываете, что вы используете аналоговые пины, как цифровые. Также можно использовать не буквенное, а цифровое обозначение выходов, т.е. A0 — это 14 пин, A1 — это 15 пин и т.д. (работает только на Uno или Nano). В следующем примере две строчки имеют одинаковое значение.

void setup() {
    pinMode(A2, OUTPUT); // объявляем пин A2, как цифровой выход
    pinMode(16, OUTPUT); // объявляем пин 16, как цифровой выход
}



Пины коммуникации на плате Arduino

Назначение пинов SDA, SCL Arduino

Данные пины используются для приема/передачи информации по протоколу I2C. Например, при подключении жк дисплея с модулем I2C или GPS модуля. С помощью специальной библиотеки микроконтроллер может обмениваться информацией с подключенным периферийным устройством, поддерживающим данный протокол. На Ардуино Мега, в отличии от Уно и Нано, имеется целых три пары пинов SDA, SCL.

Назначение пинов TX, RX Arduino

Пины TX/RX также используются для коммуникации, но уже по протоколу UART. На платах Уно и Нано пины TX/RX подключены параллельно USB разъему для связи с компьютером. Поэтому, если вы подключите к данным портам устройство, например, блютуз модуль, то вы не сможете загрузить в Ардуино скетч, так как плата автоматически переключается на чтение данных с устройства, а не с компьютера.



14 Replies to “Цифровые и аналоговые пины Ардуино”

  1. Лаконично и понятно. Благодарю! Страничка стремится попасть в закладки браузера 🙂 Не могли бы для полноты счастья добавить сюда же в статью и краткое описание платы Arduino Pro Mini?

  2. Что-то не понял по статье разницу между объявлением А2 дискретным выходом и просто выходом. И там и там pinMode(A2, OUTPUT);. В чем прикол?

    1. Смысл в том, что A2 тоже может работать, как цифровой выход с напряжением 5 Вольт и к нему можно подключить тот же светодиод

  3. статья полезная, но качество картинок резко эту полезность снижает.
    и опять же непонятно — что понимается под «пинами» — это номер ноги микросхемы, или номер сигнала буфера, или когда как что? Например:
    pinMode(10, OUTPUT); // объявляем пин 10 как выход
    pinMode(A2, OUTPUT); // объявляем пин A2 как выход
    если 10 — порядковый номер ноги микросхемы, то А2 — точно не может быть порядковым номером.
    Как транслятор понимает, что когда мы имеем ввиду???

    1. пин — это порт на плате Ардуино. 10 и A2 — это имена пинов (портов) на Ардуино. Откуда вы взяли микросхему, буфер и транслятор?

    2. Смените Ардуино на STM32, и будет нормальные наименования ног и классический С++, в полном объеме. И миллион листов техдокументации, в том числе с непротокольной работой ))

  4. Натурально в замешательстве от последней информации про пины Rx/Tx и подключенный модуль радиосвязи…

    Выходит, в скетче можно объявить (по незнанию) названные выше пины, залить в плату, и… и всё? Не исправить через usb?

    У меня на хозяйстве пять плат Nano, в которые (когда-то в прошлом) загрузил скетч, и все пять теперь не позволяют ничего иного перезалить…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.