Шпаргалка для макетной платы

Arduino Nano

Все контакты классической Nano на ATmega328P. Смотрите на плату USB-разъёмом вверх, как на рисунке.

ATmega328P · 5 V · 16 MHz
Цифровой PWM (~) Аналоговый Интерфейс Питание Земля Служебный
Вид сверху · USB-разъём направлен вверх · ~ (тильда) означает аппаратный PWM.
D11 умеет PWM, а D7/D12 — нет; все три работают как цифровой вход/выход. Подробности ниже, в карточке PWM.
Встроенный LEDТакже SPI SCK
D13
Питание 3,3 ВОбычно до 50 мА
3V3
Опорное напряжениеДля analogReference(EXTERNAL)
AREF
Аналоговый вход 0Можно использовать как D14
A0
Аналоговый вход 1Можно использовать как D15
A1
Аналоговый вход 2Можно использовать как D16
A2
Аналоговый вход 3Можно использовать как D17
A3
I²C: данныеSDA; также аналоговый вход
A4
I²C: тактированиеSCL; также аналоговый вход
A5
Только аналоговый входНе работает как цифровой выход
A6
Только аналоговый входНе работает как цифровой выход
A7
Линия 5 ВПитание модулей от USB
5V
ПерезагрузкаКратко соединить с GND
RST
Общая земляМинус для всей схемы
GND
Внешнее питаниеВход 7–12 В, не выход
VIN
NANO
RST
ATmega
328P
ICSP / SPI
D12
Цифровой вход/выходТакже SPI MISO
D11 ~
PWMТакже SPI MOSI
D10 ~
PWMТакже SPI SS / CS
D9 ~
PWMЯркость LED, скорость мотора
D8
Цифровой вход/выходHIGH или LOW
D7
Цифровой вход/выходHIGH или LOW
D6 ~
PWManalogWrite(): 0–255
D5 ~
PWMВаш внешний светодиод
D4
Цифровой вход/выходHIGH или LOW
D3 ~
PWM + прерываниеINT1; сейчас OUT датчика
D2
Внешнее прерываниеINT0; также обычный I/O
GND
Общая земляОдинакова с GND слева
RST
ПерезагрузкаОдинаков с RST слева
D0 RX
UART: приёмЗанят USB при загрузке/Serial
D1 TX
UART: передачаЗанят USB при загрузке/Serial

Ваша текущая схема

Nano получает питание от компьютера по USB. Модули получают 5 В от контакта платы, а все земли объединены.

D3 ← OUTИК-датчик препятствия
D5 → LEDОбязательно через 220–1000 Ом
A4 ←→ SDAДанные дисплея LCD1602
A5 → SCLТактирование дисплея

Цифровые контакты D0–D13

Работают с двумя логическими уровнями: LOW ≈ 0 В и HIGH ≈ 5 В.

Основные команды

  • pinMode(3, INPUT) — принимать сигнал.
  • pinMode(5, OUTPUT) — управлять нагрузкой.
  • digitalRead(3) — прочитать HIGH/LOW.
  • digitalWrite(5, HIGH) — включить выход.

Аналоговые контакты A0–A7

D = digital: цифровой вход различает LOW/HIGH. A = analog: аналоговый вход измеряет величину напряжения. analogRead(A0) возвращает 0–1023 для диапазона 0–5 В при стандартной опоре 5 В.

  • A0–A5 также могут быть цифровыми контактами.
  • A6–A7 умеют только измерять аналоговый сигнал.
  • A4/A5 заняты LCD, пока используется I²C.

Буква A не означает аналоговый выход: настоящего ЦАП (DAC) у этой Nano нет.

PWM: почему у D11 есть ~, а у D7/D12 нет?

Знак ~ (тильда) отмечает аппаратный PWM, или ШИМ (широтно-импульсную модуляцию). Таймер сам переключает выход. У классической Nano это только D3, D5, D6, D9, D10, D11.

D11, D7 и D12 одинаково подходят для digitalRead() и digitalWrite() с нужным pinMode(). Но из этих трёх только D11 даёт аппаратный PWM через analogWrite(). Отсутствие ~ не мешает обычному цифровому вводу/выводу (GPIO).

PWM — быстрые импульсы между ≈0 и ≈5 В. Меняется доля времени на HIGH (коэффициент заполнения), например для регулировки яркости LED через резистор:

  • analogWrite(11, 0): 0%, постоянно LOW.
  • analogWrite(11, 128): около 50%, половину времени HIGH.
  • analogWrite(11, 255): 100%, постоянно HIGH.
Условные сигналы PWM для 0, 128 и 255 Время идёт вправо. При 0 линия остаётся на 0 В; при 128 чередуются равные участки 5 В и 0 В; при 255 линия остаётся на 5 В. 0: 0 В128: 5/0 В255: 5 В Время →

Это не ЦАП: при 128 на выводе не постоянные 2,5 В, а импульсы 0/5 В. Около 2,5 В — лишь среднее значение.

Не используйте analogWrite() на D7/D12 для регулировки: стандартное ядро Arduino AVR выдаёт LOW при значении <128 и HIGH при ≥128 (в диапазоне 0–255). Это переключение, а не PWM; для него понятнее digitalWrite().

Интерфейсы связи

Надписи SPI, SDA, RX и другие — дополнительные роли тех же контактов, а не отдельные выводы и не запрет на GPIO.

ИнтерфейсКонтактыПример
I²CA4 SDA, A5 SCLLCD1602, датчики
UARTD0 RX, D1 TXSerial, GPS, Bluetooth
SPID10–D13SD-карта, RFID
  • SPI: когда Nano ведёт обмен, D11 MOSI передаёт данные модулю, D12 MISO принимает ответ, D13 SCK задаёт такты. D10 SS/CS — выбор устройства (обычно LOW); для CS модуля часто можно выбрать другой GPIO.
  • I²C: A4 SDA — данные в обе стороны, A5 SCL — такты, синхронизирующие обмен.
  • UART: D0 RX — приём, D1 TX — передача с точки зрения Nano. Эти линии связаны с USB-Serial и используются при загрузке скетча и работе Serial.

Одному контакту выбирают одну роль на время работы. D11 может быть обычным GPIO, PWM-выходом или MOSI для SPI, но не независимыми PWM и MOSI одновременно. Пока интерфейс использует контакт, не управляйте им отдельно; освободите его или выберите другой вывод. Разные интерфейсы могут работать одновременно, если их контакты не конфликтуют.

Несколько I²C-модулей можно подключать к одним A4/A5, если их адреса не совпадают.

Контакты питания

5V5 В от USB или стабилизатора Nano; питание обычных модулей.
3V33,3 В для маломощных модулей, обычно не более 50 мА.
GNDОбщий минус. Все компоненты схемы должны иметь общий GND.
VINВход внешнего питания 7–12 В. Это не 5-вольтовый выход.
RSTПерезагрузка платы при кратком соединении с GND.
AREFВнешняя опора АЦП; новичку обычно не нужна.

Разъём ICSP 2×3

Дублирует линии SPI и используется для прошивки микроконтроллера программатором.

MISO = D12, MOSI = D11, SCK = D13, а также 5V, GND и RST.

Для ваших текущих модулей этот разъём не нужен.

Важно, чтобы не повредить плату

  • Рекомендуемый ток одного сигнального контакта — не более 20 мА. Светодиод подключайте только через резистор.
  • 200 мА через VCC/GND ATmega328P и 40 мА на вывод — абсолютные максимумы, не рабочие цели. Учитывайте собственное потребление МК и одновременные токи GPIO; ток модулей от 5V отдельно ограничен источником и платой.
  • Группы GPIO ATmega328P: при стоке тока (LOW) не более 100 мА на каждую группу C0–C5, B0–B5/D5–D7/XTAL1/XTAL2, D0–D4; при истоке (HIGH) не более 150 мА на C0–C5/D0–D4 и B0–B5/D5–D7/XTAL1/XTAL2. Это имена портов МК, не номера Arduino: B0–B5 = D8–D13, C0–C5 = A0–A5, D0–D7 = D0–D7. Все ограничения действуют одновременно, нужен запас.
  • Не подключайте моторы, мощные ленты, насосы и реле напрямую к пинам — нужен драйвер или транзистор.
  • Не подавайте на входы напряжение выше 5 В и ниже GND.
  • При питании от USB не подавайте одновременно другое напряжение на контакт 5V.
  • Перед перестановкой проводов питания отключайте USB.

Источник ограничений: ATmega328P datasheet, §28.1–28.2, стр. 258–259: Absolute Maximum Ratings и примечания к DC Characteristics. ADC6/ADC7 не являются цифровыми выходами.