Распиновка Arduino Nano: схема пинов, A6/A7, питание и Old Bootloader
Распиновка Arduino Nano в одном руководстве: D0–D13, A0–A7 (A6/A7 только аналоговые), пины PWM, VIN/5V/3V3, драйвер CH340, Old Bootloader и таблица соответствия пинов Uno и Nano.
Распиновка Arduino Nano — это 30 пинов, выстроенных вдоль двух длинных краёв платы размером 45 × 18 мм: 14 цифровых входов/выходов (D0–D13), 6 из которых умеют выдавать PWM (~3, 5, 6, 9, 10, 11), 8 аналоговых входов (A0–A7), а также пины питания и управления: VIN, 5V, 3V3, AREF, два GND и два RST. Поскольку в Nano стоит тот же процессор ATmega328P, что и в Arduino Uno, номера и функции пинов тоже совпадают: скетч, написанный для Uno, работает без изменений — нужно лишь выбрать Nano в меню плат.
И всё же несколько важных деталей отличают Nano от Uno, и именно на них спотыкаются новички: A6 и A7 только аналоговые, гнезда питания нет, пин 3V3 даёт очень маленький ток, на клонах за USB отвечает микросхема CH340, а для загрузки кода часто приходится выбирать ATmega328P (Old Bootloader). В этом руководстве ты познакомишься с каждым пином, узнаешь, как правильно разместить Nano на макетной плате, увидишь таблицу соответствия пинов Uno и Nano и выяснишь, чем Nano Every и Nano ESP32 отличаются от классической Nano.

Что такое Arduino Nano и чем она отличается от Uno?
Arduino Nano вмещает все основные возможности Uno в плату размером 45 × 18 мм и весом около 7 граммов. Её пины направлены вниз, поэтому она вставляется прямо в макетную плату: перемычек нужно меньше, а когда схема готова, её легко перенести в корпус или на постоянную плату. Внутри стоит тот же ATmega328P на 16 MHz, что и на Uno, логический уровень — 5 V, и те же библиотеки работают без изменений. На оригинальной Nano роль USB-UART-преобразователя выполняет микросхема FT232RL; почти у всех недорогих клонов на рынке вместо неё на обратной стороне платы стоит CH340G или CH340C. Для роботов-машинок, носимых устройств, пультов и любой схемы, которая должна поместиться в корпус, Nano удобнее, чем Uno.
| Характеристика | Arduino Nano (V3) |
|---|---|
| Микроконтроллер | ATmega328P, 8 бит, 16 MHz (корпус TQFP-32) |
| Логическое (рабочее) напряжение | 5 V |
| Входное напряжение VIN | Рекомендуется 7–12 V |
| Цифровые входы/выходы | 14 пинов (D0–D13); 20 вместе с A0–A5 |
| Выход PWM | 6 пинов: D3, D5, D6, D9, D10, D11 |
| Аналоговые входы | 8 пинов (A0–A7), 10 бит (0–1023) |
| Ток на пин | Рекомендуется 20 mA, абсолютный максимум 40 mA |
| Память | 32 КБ флеш-памяти (в IDE доступно 30 720 байт), 2 КБ SRAM, 1 КБ EEPROM |
| USB | Mini-B; FT232RL (оригинал) или CH340 (клон) |
| Размер и вес | 45 × 18 мм, около 7 г |
Схема пинов Arduino Nano: какой пин где?
30 пинов Nano расположены в два ряда по 15 друг напротив друга, расстояние между рядами — 15,24 мм (0,6 дюйма). Положи плату перед собой разъёмом mini USB к себе, и прямо у разъёма увидишь два пина друг напротив друга: D12 и D13. В ряду с D13 находятся 3V3, AREF, A0–A7 и пины питания; в ряду с D12 — цифровые пины от D11 до D2, затем GND, RST, RX0 (D0) и TX1 (D1). На дальнем от USB конце рядов друг напротив друга стоят VIN и TX1, и там же расположен разъём ICSP 2×3. Вокруг кнопки сброса посередине находятся светодиод питания (POW или ON), светодиод L, подключённый к D13, и светодиоды TX и RX, которые мигают во время загрузки.
| Позиция (от USB) | Ряд аналоговых пинов и питания | Цифровой ряд | Примечание |
|---|---|---|---|
| 1 | D13 (SCK, светодиод L) | D12 (MISO) | Сразу у разъёма USB |
| 2 | 3V3 | ~D11 (MOSI) | 3V3 даёт очень маленький ток |
| 3 | AREF | ~D10 (SS) | - |
| 4 | A0 | ~D9 | - |
| 5 | A1 | D8 | - |
| 6 | A2 | D7 | - |
| 7 | A3 | ~D6 | - |
| 8 | A4 (SDA) | ~D5 | Линия данных I2C |
| 9 | A5 (SCL) | D4 | Линия тактирования I2C |
| 10 | A6 | ~D3 (INT1) | A6 только аналоговый |
| 11 | A7 | D2 (INT0) | A7 только аналоговый |
| 12 | 5V | GND | 5V и GND напротив друг друга |
| 13 | RST | RST | Оба пина — одна и та же линия сброса |
| 14 | GND | D0 (RX0) | D0 подключён к USB-UART-преобразователю |
| 15 | VIN | D1 (TX1) | На этом конце находится разъём ICSP |
Цифровые пины (D0–D13), PWM и особые функции
Каждый цифровой пин настраивается как вход или выход с помощью pinMode(); в режиме выхода HIGH даёт около 5 V, а LOW — 0 V. Чтобы вход не «висел в воздухе», можно включить встроенный резистор микросхемы на 20–50 kΩ через INPUT_PULLUP. Безопасный ток на пин — 20 mA; красный светодиод с резистором 220 Ω потребляет около 13 mA, а подходящий резистор можно подобрать в калькуляторе резистора для светодиода. У некоторых пинов есть дополнительные функции, и если знать их заранее, конфликтов не будет, когда проект разрастётся:
| Пин | Дополнительная функция | На что обратить внимание |
|---|---|---|
| D0 (RX), D1 (TX) | Аппаратный последовательный порт (Serial) | Подключены к USB-UART-преобразователю через резисторы 1 kΩ; во время загрузки оставляй их свободными |
| D2, D3 | Внешние прерывания INT0, INT1 | attachInterrupt() работает только на этих двух пинах |
| ~D3, ~D11 | PWM, Timer2 (около 490 Hz) | PWM на этих пинах перестаёт работать, пока звучит tone() |
| ~D5, ~D6 | PWM, Timer0 (около 980 Hz) | Тот же таймер, что у millis() и delay() |
| ~D9, ~D10 | PWM, Timer1 (около 490 Hz) | Библиотека Servo отключает PWM на этих двух пинах |
| D10–D13 | SPI: SS, MOSI, MISO, SCK | При работе с SPI пин D10 должен оставаться выходом |
| D13 | Встроенный светодиод L | Светодиод и его резистор подключены прямо к пину |
Небольшая, но важная деталь, отличающая Nano от Uno, касается пина D13. На Uno R3 светодиод L управляется через операционный усилитель, а на Nano светодиод и его резистор подключены прямо к пину. Если использовать D13 как вход для кнопки с INPUT_PULLUP, светодиод тянет пин вниз, и даже при ненажатой кнопке можно прочитать LOW; оставь этот пин для выходов или SPI. Как работает PWM и что означают значения analogWrite(), рассказано в статье Что такое PWM?, а о прерываниях — в статье Прерывания в Arduino.
Аналоговые пины A0–A7: чем отличаются A6 и A7?
Восемь аналоговых входов Nano измеряют напряжение от 0 до 5 V с разрешением 10 бит: analogRead() возвращает число от 0 до 1023, а один шаг равен примерно 4,9 mV. При необходимости A0–A5 работают и как обычные цифровые пины (A0 = 14 … A5 = 19), а A4 и A5 одновременно служат линиями SDA и SCL шины I2C. A6 и A7, которых нет у Uno, — это два дополнительных канала АЦП, которые есть у ATmega328P в корпусе для поверхностного монтажа (TQFP). Эти два канала подключены только к аналого-цифровому преобразователю: за ними нет ни регистра порта, ни выходного драйвера, ни подтягивающего резистора. Поэтому pinMode(), digitalRead(), digitalWrite() и INPUT_PULLUP на этих двух пинах не работают.
То, что A6 и A7 только аналоговые, может показаться недостатком, но это можно использовать с умом. Если подключить несколько кнопок к одному аналоговому пину через резисторы разного номинала, каждая кнопка будет давать своё напряжение; так ты читаешь четыре кнопки одним пином, а цифровые пины остаются свободными для моторов и дисплеев. В схеме подключи A6 к 5V через резистор 10 kΩ; первую кнопку подключи прямо между A6 и GND, а остальные три — к GND через резисторы 2,2 kΩ, 4,7 kΩ и 10 kΩ соответственно.
1// A6'da 4 buton: 10 kΩ pull-up + farklı seri dirençler / 4 buttons on A6: 10 kΩ pull-up + different series resistors
2const byte LADDER_PIN = A6; // yalnız analog pin / analog-only pin
3
4byte readButton() {
5 int v = analogRead(LADDER_PIN);
6 if (v < 92) return 1; // 0 Ω -> yaklaşık 0 / about 0
7 if (v < 256) return 2; // 2,2 kΩ -> yaklaşık 184 / about 184
8 if (v < 419) return 3; // 4,7 kΩ -> yaklaşık 327 / about 327
9 if (v < 767) return 4; // 10 kΩ -> yaklaşık 512 / about 512
10 return 0; // basılı değil -> 1023 / not pressed -> 1023
11}
12
13void setup() {
14 Serial.begin(9600);
15}
16
17void loop() {
18 static byte lastButton = 0;
19 byte b = readButton();
20 if (b != lastButton) {
21 delay(20); // kontak sıçramasını bekle / wait out contact bounce
22 b = readButton(); // değeri doğrula / confirm the value
23 if (b != lastButton) {
24 lastButton = b;
25 if (b != 0) {
26 Serial.print(F("Buton / Button: "));
27 Serial.println(b);
28 }
29 }
30 }
31}| Кнопка | Последовательный резистор к GND | Ожидаемое значение analogRead | Диапазон, принимаемый в коде |
|---|---|---|---|
| Кнопка 1 | 0 Ω (напрямую) | 0 | 0–91 |
| Кнопка 2 | 2,2 kΩ | Около 184 | 92–255 |
| Кнопка 3 | 4,7 kΩ | Около 327 | 256–418 |
| Кнопка 4 | 10 kΩ | Около 512 | 419–766 |
| Нет | - | 1023 | 767–1023 |
Значения получаются по формуле analogRead = 1023 × R / (10 kΩ + R), а каждый порог стоит ровно посередине между двумя соседними значениями. Поскольку подтягивающий резистор и АЦП питаются от одной и той же линии 5 V, показания не меняются, даже если питание просядет до 4,7 V; это называется ратиометрическим измерением. Если нажать две кнопки одновременно, их резисторы окажутся включены параллельно и показание упадёт: код увидит кнопку с меньшим номером, а одновременное нажатие 3 и 4 и вовсе читается как 2. Поэтому резисторная лестница подходит для меню, где за раз нажимается только одна клавиша. Проверить расчёт делителя можно в калькуляторе делителя напряжения, а подробнее об аналоговых измерениях читай в статье об АЦП.
Пины питания: VIN, 5V, 3V3 и GND
| Пин | Что делает | Ограничения и предостережения |
|---|---|---|
| VIN | Питает плату напряжением 7–12 V; стабилизатор понижает его до 5 V | AMS1117 на клонах выдерживает не более 15 V и быстро нагревается при 12 V |
| 5V | Линия 5 V платы: как выход питает датчики, как вход принимает стабилизированные 5 V | От USB около 4,7 V; никогда не подавай на него снаружи больше 5 V |
| 3V3 | Выход 3,3 V | На оригинале берётся от FT232RL, на клонах — от CH340; ток очень ограничен |
| GND (2 пина) | Общая земля | Сюда нужно подключать GND каждого внешнего источника питания |
| RST (2 пина) | Перезапускает плату при подаче LOW | Для внешней кнопки сброса; оба пина — одна линия |
| AREF | Вход внешнего опорного напряжения для аналоговых измерений | Перед использованием вызови analogReference(EXTERNAL) |
Питать Nano можно тремя способами. При питании по USB 5 V приходит от компьютера через диод Шоттки; на диоде падает около 0,3 V, поэтому мультиметр на пине 5V обычно показывает 4,6–4,8 V, а диод MBR0520 на оригинальной плате рассчитан максимум на 500 mA. Если подать 7–12 V на пин VIN, стабилизатор на обратной стороне платы (LM1117 на оригинале, обычно AMS1117 на клонах) понизит его до 5 V. Избыточное напряжение стабилизатор превращает в тепло: рассеиваемая мощность равна (VIN − 5 V) × ток, поэтому при потреблении 150 mA от входа 12 V маленький стабилизатор рассеивает около 1 W и раскаляется так, что не дотронуться. Поэтому для VIN идеально 7–9 V. Третий способ — подать стабилизированные 5 V снаружи на пин 5V; тогда стабилизатор не участвует, а диод со стороны USB не даёт току течь обратно в компьютер. Если работаешь от источника 12 V, гораздо «холоднее» получить 5 V понижающим преобразователем LM2596 и подать их на пин 5V; все варианты питания разобраны в статье Как питать Arduino.
Пин 3V3 — тот, который у Nano чаще всего понимают неправильно. На Uno этот пин питается от отдельного стабилизатора, а у классической Nano отдельного стабилизатора на 3,3 V нет. На оригинальной Nano 3,3 V берётся от маленького стабилизатора внутри микросхемы FT232RL (максимум 50 mA), и, согласно старой документации Arduino, этот выход недоступен, если плата питается не по USB. На большинстве клонов пин подключён к собственному встроенному стабилизатору CH340 и безопасен только для нагрузки в несколько mA. Поэтому не питай от этого пина модули на 3,3 V, такие как nRF24L01, ESP-01 или RC522; используй отдельный стабилизатор AMS1117-3.3, запитанный от пина 5V. А при подключении выхода Nano на 5 V к входу модуля на 3,3 V ставь между ними преобразователь уровней или делитель напряжения.
То, что пин 5V от USB держится около 4,7 V, влияет и на аналоговые измерения: analogRead() использует напряжение питания как верхнюю границу, поэтому если подставить в расчёт 5,0 V, результат будет ошибаться на 4–6 процентов. Реальное напряжение питания можно вычислить, измерив внутреннее фиксированное опорное напряжение ATmega328P около 1,1 V. Первый тестовый скетч ниже делает именно это: переводит все восемь аналоговых входов в вольты по реальному напряжению питания и мигает светодиодом L на D13:
1// Arduino Nano: A0-A7'yi ve gerçek besleme gerilimini oku / read A0-A7 and the real supply voltage
2const byte ANALOG_PINS[8] = {A0, A1, A2, A3, A4, A5, A6, A7};
3
4long readVccMillivolts() {
5 // Referans AVcc, ölçülen kanal dahili 1,1 V / reference AVcc, measured channel internal 1.1 V
6 ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
7 delay(2); // referansın oturmasını bekle / let the reference settle
8 ADCSRA |= _BV(ADSC); // dönüşümü başlat / start the conversion
9 while (bit_is_set(ADCSRA, ADSC)) {} // bitmesini bekle / wait until it finishes
10 unsigned int raw = ADC; // 10 bit sonuç / 10-bit result
11 return 1125300L / raw; // 1,1 V x 1023 x 1000 / 1.1 V x 1023 x 1000
12}
13
14void setup() {
15 Serial.begin(9600);
16 pinMode(LED_BUILTIN, OUTPUT); // D13'teki L LED'i / L LED on D13
17}
18
19void loop() {
20 long vcc = readVccMillivolts();
21 analogRead(A0); // kanal değişti, ilk okumayı at / channel changed, discard the first reading
22 Serial.print(F("Vcc: "));
23 Serial.print(vcc);
24 Serial.print(F(" mV |"));
25 for (byte i = 0; i < 8; i++) {
26 int raw = analogRead(ANALOG_PINS[i]); // A6 ve A7 de okunur / A6 and A7 are read too
27 Serial.print(F(" A"));
28 Serial.print(i);
29 Serial.print(F("="));
30 Serial.print(raw * (vcc / 1000.0) / 1023.0, 2); // gerçek Vcc ile volta çevir / convert to volts using the real Vcc
31 }
32 Serial.println();
33 digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); // L LED'ini çevir / toggle the L LED
34 delay(1000);
35}После загрузки открой монитор порта на скорости 9600 бод. Значение Vcc должно быть около 4600–4800 mV от USB и около 5000 mV при питании через VIN. Неподключённые аналоговые пины показывают случайные значения; если подключить потенциометр к A0 и покрутить его, значение будет плавно меняться от 0 до Vcc. Внутреннее опорное напряжение может отличаться на ±10% от микросхемы к микросхеме; для большей точности измерь пин 5V мультиметром и умножь константу 1125300 в коде на отношение измеренное мультиметром значение / значение, которое показывает код. Поскольку этот скетч напрямую использует регистры ATmega328P, на Nano Every и Nano ESP32 он не заработает.
Mini USB, CH340 и установка драйвера
У классической Nano разъём Mini-B USB; кабели Micro-USB или USB-C от телефонов к нему не подойдут. У некоторых новых клонов стоят разъёмы Micro-USB или USB-C, но у большинства по-прежнему mini USB. Самая частая причина, по которой плата вообще не появляется в списке портов, — кабель только для зарядки, без проводов данных: светодиод питания горит, но компьютер плату не видит. Если с кабелем всё в порядке, переверни плату и посмотри на микросхему рядом с разъёмом USB. Если на ней написано FT232RL, у тебя оригинальная Nano, и её драйвер обычно уже есть в операционной системе; если CH340G или CH340C — у тебя клон.
Windows 10 и 11 часто устанавливают драйвер CH340 автоматически через Центр обновления Windows, и плата появляется в Диспетчере устройств под именем вроде USB-SERIAL CH340 (COM3). Если в разделе «Другие устройства» видишь USB2.0-Serial с жёлтым восклицательным знаком, установи драйвер CH341SER от производителя микросхемы, компании WCH, затем отключи плату и подключи снова. В актуальных версиях macOS драйвер уже есть; порт отображается как /dev/cu.usbserial-…, а установка старых драйверов поверх может вызвать конфликты. В Linux драйвер встроен в ядро; если в Ubuntu 22.04 или новее порт исчезает сразу после подключения платы, значит, пакет экранного диктора brltty перехватывает CH340, и если он тебе не нужен, его можно удалить командой sudo apt remove brltty. Все проблемы с портами и драйверами разобраны в статье Arduino не загружает код, а различия USB-UART-микросхем — в статье Преобразователи USB-TTL.
Загрузка кода: ATmega328P или Old Bootloader?
- В Arduino IDE выбери Инструменты › Плата › Arduino AVR Boards › Arduino Nano (Tools › Board).
- Подключи плату и выбери появившийся порт в Инструменты › Порт (Tools › Port), например COM3 в Windows или /dev/cu.usbserial-… в macOS.
- В Инструменты › Процессор (Tools › Processor) сначала попробуй загрузить пример Blink с вариантом ATmega328P.
- Если в выводе десять попыток подряд повторяется programmer is not responding (программатор не отвечает) или not in sync (нет синхронизации), выбери в пункте «Процессор» вариант ATmega328P (Old Bootloader) и загрузи снова.
- Если всё равно не получается, попробуй другой порт USB, убери все провода с D0 и D1 и проверь, что светодиод L быстро мигает при нажатии кнопки сброса.
- Запиши, какой вариант сработал: другим Nano от того же продавца, скорее всего, понадобится та же настройка.
Причина этой путаницы — изменение 2018 года. В Arduino заменили старый загрузчик Nano размером 2 КБ (ATmegaBOOT) на 512-байтный Optiboot, который используется на Uno. Optiboot принимает код на скорости 115200 бод, а старый загрузчик ждёт 57600 бод; когда скорости не совпадают, плата будто совсем не отвечает. Поскольку производители клонов ещё годами продолжали выпускать платы со старым загрузчиком, IDE предлагает оба варианта, и неверный выбор плате ничем не вредит. При желании можно использовать вторую Arduino как ArduinoISP и записать в Nano новый загрузчик: загрузка станет быстрее, а заодно исчезнет бесконечный цикл перезагрузок, в который старый загрузчик попадает после сброса сторожевым таймером.
| Вариант процессора | Загрузчик | Скорость загрузки | Место для кода |
|---|---|---|---|
| ATmega328P | Optiboot (с 2018 года) | 115200 бод | 30 720 байт |
| ATmega328P (Old Bootloader) | ATmegaBOOT (старый) | 57600 бод | 30 720 байт |
| ATmega168 | ATmegaBOOT (старый) | 19200 бод | 14 336 байт |
Размещение на макетной плате и пайка

Вставляя Nano в макетную плату, расположи её так, чтобы два ряда пинов оказались по разные стороны центральной канавки. Тогда каждый пин попадёт в свою полоску, и провода к нему можно подключать через свободные отверстия этой полоски. Поскольку плата закрывает канавку и отверстия между пинами, рядом с каждым пином остаётся лишь несколько отверстий; на распространённых макетных платах на 830 точек, если поставить плату по центру канавки, с одной стороны останется 2 свободных отверстия, а с другой — 3. Если развернуть разъём USB к короткому краю макетной платы, кабель будет удобно подключать. Затем соедини пины 5V и GND Nano с красной и синей шинами питания макетной платы, чтобы питать от них датчики. Чтобы освежить в памяти, как макетная плата устроена внутри, загляни в статью Что такое макетная плата?.
- Пайка гребёнок: на клонах, которые поставляются с отдельными пинами, сначала вставь штыревые гребёнки в макетную плату, положи сверху Nano и паяй прямо так; макетная плата держит гребёнки ровно и точно на расстоянии 0,6 дюйма друг от друга. Технику пайки найдёшь в статье Как паять.
- Извлечение: если поднимать плату за один край, пины гнутся; поднимай оба края понемногу или подсунь снизу плоскую отвёртку и вытащи плату ровно.
- Плохой контакт: на старых или дешёвых макетных платах пружинные контакты изнашиваются; Nano время от времени перезагружается или какой-нибудь датчик иногда пропадает. Попробуй переставить плату в другую часть макетной платы.
- Плата расширения для Nano: в постоянном проекте шилд ввода-вывода для Nano (Nano I/O shield) с винтовыми клеммами или разъёмами на 3 пина, которые дают для каждого пина сигнал, 5V и GND, сильно уменьшает путаницу проводов.
- Мини-макетная плата: у маленьких макетных плат на 170 точек нет шин питания; выведи 5V и GND на отдельные полоски и пометь их цветом проводов.
Таблица соответствия пинов Arduino Uno и Nano
| Функция | Arduino Uno R3 | Arduino Nano | Примечание |
|---|---|---|---|
| Цифровые входы/выходы | D0–D13 | D0–D13 | Те же номера и функции |
| PWM | ~3, 5, 6, 9, 10, 11 | ~3, 5, 6, 9, 10, 11 | Те же частоты и таймеры |
| Аналоговый вход | A0–A5 | A0–A7 | A6 и A7 есть только у Nano, и они только аналоговые |
| I2C SDA / SCL | A4 / A5 (копия рядом с AREF) | A4 / A5 | У Nano нет отдельных пинов SDA/SCL |
| SPI SS / MOSI / MISO / SCK | 10 / 11 / 12 / 13 | 10 / 11 / 12 / 13 | У обеих они есть и на разъёме ICSP |
| Внешние прерывания | D2, D3 | D2, D3 | Одинаково |
| Встроенный светодиод | D13 (через буфер на ОУ) | D13 (подключён прямо к пину) | На Nano осторожнее с D13 в роли входа |
| Вход питания | Гнездо DC и Vin, 7–12 V | Только пин VIN, 7–12 V | У Nano гнезда нет |
| USB | USB-B; ATmega16U2 или CH340 | Mini-B; FT232RL или CH340 | Разные кабели |
| Выход 3,3 V | Отдельный стабилизатор, 50 mA | От USB-микросхемы, очень ограничен | На Nano не питай от него модули |
| IOREF | Есть | Нет | Для совместимости с шилдами |
| Место для кода | 32 256 байт | 30 720 байт | IDE резервирует на Nano 2 КБ |
| Установка шилдов | Напрямую | Через адаптер или плату расширения | - |
Как видно из таблицы, чтобы перенести схему с Uno на Nano, достаточно подключить провода к пинам с теми же номерами: сервопривод с D9 на Uno идёт на D9 на Nano, а I2C-дисплей на A4/A5 по-прежнему подключается к A4/A5. Единственное изменение в коде — выбрать Arduino Nano в Инструменты › Плата. А вот шилды, которые вставляются прямо в Uno, на Nano не встанут; для этого есть платы-адаптеры, переводящие Nano на расположение пинов Uno. Подробную роль каждого пина Uno найдёшь в статье Распиновка Arduino Uno, а помощь в выборе платы — в статье Какую Arduino купить?.
Nano Every и Nano ESP32: чем они отличаются от классической Nano
| Характеристика | Классическая Nano (V3) | Nano Every | Nano ESP32 |
|---|---|---|---|
| Процессор | ATmega328P, 8 бит, 16 MHz | ATmega4809, 8 бит, 16 MHz в IDE (до 20 MHz) | ESP32-S3, двухъядерный, 32 бита, 240 MHz |
| Флеш / SRAM | 32 КБ / 2 КБ | 48 КБ / 6 КБ | 16 МБ / 512 КБ (+8 МБ PSRAM) |
| Логическое напряжение | 5 V | 5 V | 3,3 V (5 V недопустимо) |
| USB | Mini-B | Micro-B | USB-C |
| Диапазон VIN | Рекомендуется 7–12 V | 7–21 V | 6–21 V |
| Пины PWM | D3, D5, D6, D9, D10, D11 | D3, D5, D6, D9, D10 (на D11 нет) | Почти все цифровые пины |
| A6 / A7 | Только аналоговые | Аналоговые и цифровые | Аналоговые и цифровые |
| Внешние прерывания | Только D2, D3 | Все цифровые пины | Все пины |
| Последовательная линия D0 / D1 | Общая с USB (Serial) | Отдельно от USB (Serial1) | Отдельно от USB (Serial0) |
| Беспроводная связь | Нет | Нет | Wi-Fi и Bluetooth LE |
| Пакет плат в IDE | Arduino AVR Boards | Arduino megaAVR Boards | Arduino ESP32 Boards |
Nano Every — более мощная версия классической Nano того же размера и с тем же расположением пинов. Внутри у неё ATmega4809, она работает от 5 V и предлагает 48 КБ флеш-памяти и 6 КБ SRAM, так что проектам с OLED и светодиодными лентами, которым тесно в ОЗУ классической Nano, становится свободнее. На стороне USB мостом служит микросхема SAMD11, а код загружается через интерфейс UPDI, поэтому возни с Old Bootloader нет. Чтобы работать с платой, установи пакет Arduino megaAVR Boards из «Менеджера плат» (Boards Manager). Отличия, на которые стоит обратить внимание: PWM есть только на D3, D5, D6, D9 и D10 (на D11 PWM нет), A6 и A7 работают и как цифровые пины, любой цифровой пин можно использовать как внешнее прерывание, а D0 и D1 — это порт Serial1, независимый от USB. Настройка Инструменты › Registers emulation › ATMEGA328 эмулирует регистры портов вроде PORTB, но старый код, который пишет напрямую в регистры таймеров или АЦП, всё равно не заработает. Скетч ниже показывает сразу два отличия Every: он общается с модулем на D0/D1, пока открыт монитор порта, и использует A7 как вход кнопки со встроенной подтяжкой.
1// Nano Every: Serial = USB, Serial1 = D0 (RX) ve D1 (TX) / Serial = USB, Serial1 = D0 (RX) and D1 (TX)
2const byte BUTTON_PIN = A7; // Every'de A7 dijital de çalışır / A7 also works as digital on the Every
3
4bool lastState = HIGH;
5
6void setup() {
7 Serial.begin(9600); // Seri Monitör / Serial Monitor
8 Serial1.begin(9600); // D0/D1'deki modül, ör. HC-05 / module on D0/D1, e.g. HC-05
9 pinMode(BUTTON_PIN, INPUT_PULLUP); // klasik Nano'nun A7'sinde çalışmaz / does not work on the classic Nano's A7
10}
11
12void loop() {
13 if (Serial1.available()) {
14 Serial.write(Serial1.read()); // modülden bilgisayara / module to computer
15 }
16 if (Serial.available()) {
17 Serial1.write(Serial.read()); // bilgisayardan modüle / computer to module
18 }
19 bool state = digitalRead(BUTTON_PIN);
20 if (state != lastState) { // durum değişince bildir / report when the state changes
21 lastState = state;
22 Serial1.println(state == LOW ? "Buton basildi / Button pressed" : "Buton birakildi / Button released");
23 delay(20); // kontak sıçraması / contact bounce
24 }
25}Nano ESP32 же — совсем другой мир в том же размере платы: процессор ESP32-S3 в модуле u-blox NORA-W106 работает на 240 MHz и даёт Wi-Fi и Bluetooth LE. Главное отличие — напряжение: все пины работают на 3,3 V и не выдерживают 5 V, поэтому датчик с выходом 5 V, который к классической Nano можно подключить напрямую, способен повредить Nano ESP32. Там, где у классической Nano пин 5V, находится пин VBUS, который даёт 5 V только при питании платы по USB; при питании через VIN этот пин мёртв. Вместо AREF и пина RST на аналоговой стороне находятся BOOT0 и BOOT1. Плата программируется через пакет Arduino ESP32 Boards, а в меню Инструменты › Pin Numbering есть два варианта: при настройке по умолчанию By Arduino pin действуют названия D и A, напечатанные на плате, а в режиме By GPIO number номера — это номера GPIO самой ESP32. Например, D2 на самом деле GPIO5; в режиме GPIO запись pinMode(2, OUTPUT) настроит вместо него пин A1. Если всегда писать пины по именам, вроде D2 и A0, код будет правильно работать в обоих режимах.
1// Nano ESP32: Araçlar > Pin Numbering > By Arduino pin (default)
2// Nano ESP32: Tools > Pin Numbering > By Arduino pin (default)
3bool ledOn = false;
4
5void setup() {
6 Serial.begin(115200); // USB-C üzerinden / over USB-C
7 pinMode(LED_BUILTIN, OUTPUT); // D13 = GPIO48
8 pinMode(LED_RED, OUTPUT);
9 pinMode(LED_GREEN, OUTPUT);
10 pinMode(LED_BLUE, OUTPUT);
11 digitalWrite(LED_RED, HIGH); // RGB LED ters mantık: HIGH = sönük / active low: HIGH = off
12 digitalWrite(LED_GREEN, HIGH);
13 digitalWrite(LED_BLUE, HIGH);
14 analogReadResolution(12); // 0-4095 arası / range 0-4095
15}
16
17void loop() {
18 int raw = analogRead(A0); // 12 bit ham değer / 12-bit raw value
19 int mv = analogReadMilliVolts(A0); // kalibre edilmiş milivolt / calibrated millivolts
20 Serial.printf("A0: %d (%d mV)\n", raw, mv);
21 digitalWrite(LED_GREEN, mv > 1650 ? LOW : HIGH); // 1,65 V üstünde yeşil / green above 1.65 V
22 digitalWrite(LED_RED, mv > 1650 ? HIGH : LOW); // altında kırmızı / red below
23 ledOn = !ledOn;
24 digitalWrite(LED_BUILTIN, ledOn ? HIGH : LOW); // D13 LED'ini yakıp söndür / blink the D13 LED
25 delay(500);
26}Аналоговые входы Nano ESP32 делают 12-битные измерения и возвращают значения от 0 до 4095, а analogReadMilliVolts() использует калибровочные данные микросхемы и выдаёт результат сразу в милливольтах. Встроенный RGB-светодиод работает с инверсной логикой, поэтому загорается, когда пишешь LOW. Если код не загружается и плата пропадает из списка портов, её можно перевести в режим загрузчика, дважды быстро нажав кнопку сброса. Чтобы узнать о Wi-Fi-возможностях ESP32, загляни в статью Что такое ESP32?, а чтобы определиться с платой, прочитай Arduino или ESP32?. Из других членов семейства Nano R4 переносит тот же процессор Renesas RA4M1 на 48 MHz, что и в Uno R4, в 5-вольтовый формат Nano, но даёт всего 8 mA на пин, а Nano 33 IoT и Nano 33 BLE — платы на 3,3 V, как и Nano ESP32.
Идеи проектов на Arduino Nano
- Карманный термометр: выводи температуру, измеренную DHT11, на маленький OLED-дисплей; Nano и дисплей помещаются в спичечный коробок.
- Мини-робот-машинка: маленький размер Nano экономит место на шасси; управляй моторами через L298N и следуй шагам из статьи Как собрать робота-машинку.
- Робот, следующий по линии: восьми аналоговых входов с запасом хватает, чтобы читать линейку из пяти датчиков; подробности — в статье Робот, следующий по линии.
- Bluetooth-пульт: подключи модуль HC-05 к D8 и D7 через SoftwareSerial и управляй светодиодом или реле с телефона; D0 и D1 остаются свободными для загрузки.
- Носимая подсветка: сделай подсветку для значка или сумки из Nano на батарейке и нескольких светодиодов WS2812B.
- Клавиатура на одном пине: собери описанную выше резисторную лестницу и на A6, и на A7 — получится меню на восемь кнопок, а цифровые пины останутся для дисплея и моторов.
- Нужна USB-клавиатура? В ATmega328P классической Nano нет встроенного USB, поэтому компьютер не может распознать её как клавиатуру или мышь; для этого нужны платы на ATmega32U4, такие как Leonardo и Pro Micro.
Частые ошибки и как их исправить
| Симптом | Причина | Решение |
|---|---|---|
| Nano не появляется в списке портов | Кабель только для зарядки или нет драйвера CH340 | Возьми кабель с передачей данных, установи драйвер CH341SER; в Linux удали brltty |
| Загрузка прерывается ошибкой «not in sync» (нет синхронизации) | На плате старый загрузчик | Инструменты › Процессор › ATmega328P (Old Bootloader) |
| Кнопка на A6 или A7 совсем не реагирует | У этих пинов нет digitalRead и встроенной подтяжки | Добавь внешнюю подтяжку 10 kΩ и используй порог с analogRead |
| Кнопка на D13 всегда читается как нажатая | Светодиод L и его резистор тянут пин вниз | Перенеси кнопку на другой пин |
| Модуль, питаемый от 3V3, работает нестабильно или не работает | Пин 3V3 даёт очень маленький ток | Используй отдельный стабилизатор на 3,3 V, запитанный от 5V |
| Аналоговые показания завышены на несколько процентов | От USB на пине 5V около 4,7 V | Измерь реальное Vcc или питай плату через VIN |
| Плата сильно греется при 12 V на VIN | Стабилизатор рассеивает в виде тепла (12 − 5) × ток | Подавай на VIN 7–9 V или питай пин 5V от понижающего модуля |
| С подключённым сервоприводом яркость светодиода на D9/D10 не регулируется | Библиотека Servo использует Timer1 | Перенеси светодиод на D3, D5, D6 или D11 |
Arduino Nano — самый простой способ перенести всё, что освоено на Uno, в маленькие постоянные проекты; если знать отличия, связанные с A6/A7, 3V3 и загрузчиком, сюрпризов не будет. Если хочется вернуться к основам, начни со статьи Что такое Arduino?. В приложении BlueGrays есть пошаговые проекты со схемами подключения и готовым кодом: мигающий светодиод, светодиод с кнопкой, измерение освещённости фоторезистором (LDR), расстояния с HC-SR04, температуры и влажности с DHT11, RGB-светодиод, сервопривод с потенциометром и последовательная связь между двумя Arduino; все они работают на Nano с теми же номерами пинов.
Частые вопросы
Сколько пинов у Arduino Nano?
У классической Arduino Nano 30 пинов в два ряда. 14 из них — цифровые входы/выходы (D0–D13), 8 — аналоговые входы (A0–A7), а остальные — VIN, 5V, 3V3, AREF, два GND и два RST. Так как A0–A5 тоже можно использовать как цифровые, всего получается 20 цифровых пинов; A6 и A7 умеют только читать аналоговые значения.
Какие пины Arduino Nano поддерживают PWM?
Пины PWM — D3, D5, D6, D9, D10 и D11; на плате и на схемах распиновки они отмечены значком ~ рядом с номером. D5 и D6 работают на частоте около 980 Hz, остальные — около 490 Hz. Библиотека Servo влияет на PWM на D9 и D10, а функция tone() — на D3 и D11.
Можно ли использовать A6 и A7 на Arduino Nano как цифровые пины?
Нет. A6 и A7 — это два канала ATmega328P, подключённые только к аналого-цифровому преобразователю; pinMode, digitalRead, digitalWrite и встроенная подтяжка на этих пинах не работают. Чтобы прочитать кнопку, добавь внешний подтягивающий резистор 10 kΩ и сравнивай значение analogRead() с порогом. А вот на Nano Every и Nano ESP32 A6 и A7 можно использовать и как цифровые пины.
Какое напряжение можно подавать на Arduino Nano?
Nano можно питать по USB, напряжением 7–12 V на пин VIN или стабилизированными 5 V на пин 5V. Стабилизатор AMS1117 на платах-клонах может выйти из строя выше 15 V и быстро греется уже при 12 V, поэтому для VIN идеально 7–9 V. Никогда не подавай на пин 5V больше 5 V.
Что означает Old Bootloader на Arduino Nano?
В 2018 году в Arduino заменили загрузчик Nano на более компактный и быстрый Optiboot; новый загрузчик обменивается данными на скорости 115200 бод, а старый — на 57600 бод. На большинстве клонов Nano на рынке до сих пор стоит старый загрузчик, поэтому, если не выбрать ATmega328P (Old Bootloader) в «Инструменты › Процессор», загрузка останавливается с ошибкой not in sync. Неверный вариант плате не вредит, так что можно просто попробовать оба.
Чем Arduino Nano отличается от Uno?
Обе платы используют ATmega328P на 16 MHz, поэтому номера пинов, пины PWM, линии I2C (A4/A5) и SPI (D10–D13) и код у них одинаковые. Nano меньше, вставляется в макетную плату и имеет два дополнительных аналоговых входа (A6, A7), но у неё нет гнезда питания DC и колодок для шилдов. Кроме того, у Nano разъём mini USB, и IDE выделяет ей 30 720 байт под код, тогда как у Uno предел — 32 256 байт.
Что собрать после прочтения
Все проекты
Мигающий светодиод
Самое первое «привет» в электронике: включение и выключение одного светодиода. Arduino включает и выключает светодиод через короткие промежутки, поэтому свет быстро мигает. Ты самым простым способом в

Управление светодиодом кнопкой (удержание)
Как дверной звонок: свет горит, пока ты нажимаешь, и гаснет, когда отпускаешь. Arduino всё время слушает кнопку; пока она нажата, светодиод горит, а как только ты убираешь палец, он гаснет. Эта просте

Измерение освещённости с LDR
Хочешь увидеть яркость своей комнаты в виде числа? LDR — маленькая деталь, реагирующая на свет, — измеряет освещённость вокруг, а Arduino каждые полсекунды выводит значение на экран компьютера. Закрой

Измерение расстояния HC-SR04 (вывод в порт)
Датчик HC-SR04 работает совсем как летучая мышь, которая находит дорогу в темноте: он посылает звук, которого ты не слышишь, слушает эхо и измеряет, насколько далеко предмет перед ним. Arduino каждые

Температура и влажность с DHT11
Насколько тепло в твоей комнате и влажный ли воздух или сухой? Датчик DHT11 измеряет температуру и влажность, а Arduino выводит значения на двухстрочный LCD-экран и обновляет их каждые пару секунд. Ес

Работа с RGB-светодиодом
В одном светодиоде прячутся три цвета: RGB-светодиод загорается красным, затем зелёным, затем синим, каждый цвет горит полсекунды и полсекунды не горит, а потом цикл начинается снова. Нужны всего один

Управление сервоприводом потенциометром
Когда ты поворачиваешь ручку потенциометра, рычаг сервопривода поворачивается вместе с ней: одно крайнее положение ручки — ноль градусов, другое — пол-оборота. Arduino всё время читает положение ручки

Односторонняя связь между двумя Arduino
Ты заставляешь две Arduino разговаривать по одному проводу: нажми кнопку на одной, и на другой загорится светодиод, нажми снова — погаснет. Плата-передатчик сообщает о нажатии кнопки коротким сообщени
Другие статьи
Приложение BlueGrays
Собери эту схему шаг за шагом в телефоне
Схема подключения, код и список деталей на одном экране. 200+ проектов на Arduino, ESP32 и Pico готовы к сборке.
Наведи камеру телефона
Наведи камеру на код — откроется магазин приложений на телефоне.
или открыть магазин

