Arduino Nano: все пины и зачем они нужны

Arduino Nano — одна из самых популярных плат для прототипирования и готовых устройств. Для радиолюбителя она удобна тем, что компактна, имеет богатый набор интерфейсов и легко подключается к датчикам, дисплеям, модулям связи и исполнительным устройствам. В этой статье разберём все пины платы, их назначение, особенности и типичные ошибки при использовании.

Важно: речь идёт о классической версии Arduino Nano на базе микроконтроллера ATmega328P (самая распространённая). У клонов могут быть отличия в качестве стабилизаторов и разводке, но логика работы пинов совпадает.

Питание: VIN, 5V, 3.3V, GND

Это базовые пины, с которых начинается любая схема.

  • VIN — вход для внешнего питания 7–12 В. Сюда подают напряжение от блока питания или батареи. Плата содержит линейный стабилизатор, который преобразует входное напряжение в 5 В для питания микроконтроллера и периферии.
    Практика: если вы делаете стационарное устройство (например, измеритель на столе), удобно подавать питание через VIN от адаптера 9 В или 12 В. Если устройство мобильное — лучше использовать отдельный стабилизатор и подавать 5 В напрямую (см. ниже).
  • 5V — выход стабилизированных 5 В. Это не вход! Нельзя подавать на этот пин напряжение выше 5 В — риск вывести из строя стабилизатор и/или микроконтроллер.
    Практика: пин 5V можно использовать как источник питания для маломощных модулей (датчики, небольшие дисплеи). Но общий ток ограничен возможностями встроенного стабилизатора (обычно до 500–800 мА, но на практике лучше не нагружать более 200–300 мА, особенно при питании от USB).
  • 3.3V — выход 3.3 В (от встроенного LDO-стабилизатора). Ток обычно ограничен примерно 50 мА.
    Практика: подходит для модулей, работающих на 3.3 В (некоторые датчики, радиомодули, SD‑карты). Не стоит запитывать от него мощные устройства.
  • GND — земля (общий провод). На плате два пина GND — это удобно для разводки и уменьшения петель тока.
    Практика: всегда соединяйте земли источника питания, платы и подключаемых модулей. Отсутствие общей земли — частая причина «плавающих» показаний датчиков и нестабильной работы.

Цифровые входы/выходы (D0–D13)

Все цифровые пины могут работать как входы (INPUT) или выходы (OUTPUT). Логические уровни: низкий уровень ≈ 0 В («0»), высокий уровень ≈ 5 В («1»).

  • D0 (RX) и D1 (TX) — линии UART (Serial). D0 — приём данных, D1 — передача.
    Практика: эти пины используются для связи с компьютером (через USB) и для подключения модулей (Bluetooth, GPS, GSM и т. п.). При загрузке скетча через USB на них идёт обмен данными. Если к D0/D1 постоянно подключён модуль, загрузка может не пройти. Решение: либо отключать модуль на время прошивки, либо использовать программный UART на других пинах.
  • D2–D13 — универсальные цифровые пины. На них можно подключать кнопки, светодиоды, реле, транзисторы и т. д.
    Практика: для кнопок часто используют встроенный подтягивающий резистор (INPUT_PULLUP), чтобы не ставить внешние резисторы.
  • ШИМ (PWM) на пинах D3, D5, D6, D9, D10, D11 (на плате часто помечены тильдой ~).
    Что это: ШИМ (широтно‑импульсная модуляция) позволяет имитировать аналоговый выход. Например, регулировать яркость светодиода или скорость мотора. В коде Arduino это делается функцией analogWrite(pin, value), где value — от 0 до 255.
    Практика: не пытайтесь использовать ШИМ для «аналогового» питания мощных нагрузок напрямую — ток пина ограничен. Для моторов и мощных светодиодов используйте транзисторы или драйверы.

Аналоговые входы (A0–A7)

Эти пины предназначены для измерения напряжения с помощью встроенного АЦП (аналого‑цифрового преобразователя) с разрешением 10 бит (0–1023).

  • A0–A5 — могут работать и как цифровые пины (если не хватает D‑пинов). В коде к ним можно обращаться как к D14–D19.
  • A6 и A7 — только аналоговые входы, не могут быть цифровыми.
  • Диапазон измерения по умолчанию — 0–5 В.
    Практика: чтобы измерять большие напряжения (например, 12 В), используют делитель напряжения на резисторах. Для измерения малых напряжений (милливольты) может понадобиться усиление сигнала (операционный усилитель) и/или изменение опорного напряжения (см. AREF).

Интерфейсы связи: I2C, SPI, UART

Arduino Nano поддерживает несколько стандартных шин, что удобно для подключения множества модулей.

I2C (TWI)

  • A4 (SDA) — линия данных.
  • A5 (SCL) — тактовая линия.
  • Практика: на шине I2C можно подключить много устройств (дисплеи, датчики температуры, акселерометры и т. п.) с разными адресами. Обычно на плате уже стоят подтягивающие резисторы, но при длинных линиях или большом числе устройств может потребоваться внешняя подтяжка.

SPI

  • D10 (SS) — выбор ведомого устройства (chip select).
  • D11 (MOSI) — данные от мастера к ведомому.
  • D12 (MISO) — данные от ведомого к мастеру.
  • D13 (SCK) — тактовый сигнал.
  • Практика: SPI удобен для TFT‑дисплеев, карт памяти, радиомодулей. Особенность: несколько устройств на SPI используют общие линии MOSI/MISO/SCK, а выбор устройства происходит через разные пины SS.

UART (Serial)

  • Уже упомянутые D0 (RX) и D1 (TX).
  • Практика: можно использовать несколько UART одновременно: аппаратный (Serial) и программные (SoftwareSerial) на других пинах, если нужно подключить несколько модулей.

Специальные пины

  • AREF — вход опорного напряжения АЦП. По умолчанию АЦП использует напряжение питания (5 В) как опорное. Если подать на AREF точное опорное напряжение (например, от ИОН), можно повысить точность измерений в нужном диапазоне.
    Практика: при работе с AREF нужно правильно настроить режим в коде (analogReference(EXTERNAL)) и не подавать на AREF напряжение выше допустимого.
  • RST — вход сброса. При подаче низкого уровня (GND) плата перезагружается.
    Практика: удобно подключить кнопку между RST и GND, чтобы иметь возможность ручного сброса.

ICSP‑разъём (внутрисхемное программирование)

На плате есть 6‑контактный разъём ICSP для внутрисхемного программирования. Он нужен, если вы:

  • Прошиваете «голый» ATmega328P без загрузчика Arduino.
  • Восстанавливаете загрузчик.
  • Используете программатор для более гибкой настройки фьюзов.

Назначение контактов ICSP:

  • MISO, MOSI, SCK — линии SPI для программирования.
  • RST — сигнал сброса для запуска режима программирования.
  • VCC, GND — питание и земля.

Практические рекомендации и типичные ошибки

Для радиолюбительских проектов важно не только знать, какие пины есть, но и понимать, как их безопасно использовать.

  1. Токи и нагрузки. Каждый цифровой пин рассчитан на небольшой ток (рекомендуется не более 20–40 мА). Суммарная нагрузка по всем пинам ограничена. Для мощных нагрузок (реле, моторы, мощные светодиоды) используйте транзисторы, драйверы или реле‑модули.
  2. Питание от USB. При питании от USB максимальный ток обычно ограничен портом (часто 500 мА). Если схема потребляет больше, возможны перезагрузки и сбои.
  3. Защита входов. При работе с внешними сигналами (особенно если источник не согласован по уровням) полезно ставить ограничительные резисторы, диоды‑супрессоры или оптроны.
  4. Заземление и помехи. Для чувствительных схем (например, измерения малых напряжений) важно аккуратно разводить землю, избегать длинных проводов и сильных нагрузок на ту же линию питания.
  5. Конфликты при прошивке. Если к пинам D0/D1 или к ICSP постоянно подключены модули, прошивка может не пройти. Лучше предусматривать возможность отключения таких модулей на время загрузки.

Пример применения для радиолюбительского проекта

Допустим, вы делаете простой измеритель температуры и влажности с выводом на OLED‑дисплей:

  • Датчик температуры/влажности подключаете по I2C: SDA → A4, SCL → A5.
  • OLED‑дисплей тоже по I2C на те же пины (проверьте, чтобы адреса устройств не конфликтовали).
  • Светодиод для индикации — на любой цифровой пин (например, D7) через токоограничивающий резистор.
  • Питание всей схемы — через VIN от внешнего адаптера 9–12 В, либо через 5V (если суммарный ток небольшой).
  • Земли всех модулей соединяете с GND платы.

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