Справочник плат
Arduino Leonardo, Micro и Pro Micro: платы-клавиатуры
У этих трёх плат общий секрет — микроконтроллер ATmega32U4 с USB прямо внутри чипа. Компьютер видит такую плату не только как порт для прошивки, но и как настоящую клавиатуру или мышь: можно собрать кнопку-«горячую клавишу», педаль для презентаций или мини-геймпад. Здесь распиновка, отличия от Uno, работа с Keyboard.h и лечение знаменитого «порт исчез при прошивке».
В чём фокус
USB живёт прямо в микроконтроллере
У Uno и Nano за связь с компьютером отвечает отдельный чип-переводчик (ATmega16U2 у Uno, FT232RL у фирменной Nano, CH340 у клонов) — сам контроллер про USB ничего не знает. У ATmega32U4 переводчик не нужен: USB встроен в тот же кристалл, который выполняет скетч. Отсюда оба фирменных свойства семейства. Приятное: плата умеет притворяться любым USB-устройством ввода. Хлопотное: во время прошивки USB-порт на несколько секунд исчезает и появляется заново — для новичка это выглядит как поломка, хотя это штатная работа загрузчика.
Технические характеристики
| Микроконтроллер | ATmega32U4 (8 бит, AVR) — USB встроен в сам чип |
| Тактовая частота | 16 МГц (Pro Micro бывает и 8 МГц на 3,3 В) |
| Flash-память | 32 КБ, из них 4 КБ занимает загрузчик Caterina — скетчу доступно 28 672 байта |
| Оперативная память (SRAM) | 2 560 байт — на четверть больше, чем у Uno и Nano |
| EEPROM | 1 КБ |
| Цифровые выводы | Leonardo и Micro — 20, из них 7 с ШИМ (3, 5, 6, 9, 10, 11, 13) |
| Аналоговые входы | 12: A0–A5 плюс A6–A11 на цифровых ножках 4, 6, 8, 9, 10 и 12 |
| Шина I2C | SDA — вывод 2, SCL — вывод 3 (не A4/A5, как у Uno!) |
| Последовательные порты | Два: Serial (виртуальный, через USB) и Serial1 (аппаратный, ножки 0/1) |
| USB-разъём | Leonardo, Micro и большинство Pro Micro — micro-USB |
| Особый талант | Определяется компьютером как клавиатура и мышь (USB HID) |
Обратите внимание на две строки, из-за которых чаще всего «не работает» переезд проекта с Uno: шина I2C здесь живёт на выводах 2 и 3, а не на A4/A5 — дисплей, подключённый «как на Uno», молчит, — и портов Serial два. Как подключать экраны на новые ножки — в разборах LCD 1602 и OLED-дисплея.
Одна плата в трёх форматах
Leonardo — полноразмерная плата под шилды Uno. Micro — та же схема, ужатая под макетку, официальная плата Arduino. Pro Micro — народный формат от SparkFun ещё компактнее: ради размера с платы убрали кнопку RESET, светодиод L и часть выводов. Клоны Pro Micro — самые дешёвые платы на 32U4, поэтому именно из них делают самодельные геймпады и макро-клавиатуры.
| Leonardo | Micro | Pro Micro | |
|---|---|---|---|
| Размер | 68,6 × 53,4 мм (как Uno) | 48 × 18 мм | ≈33 × 18 мм |
| Куда ставить | Под шилды формата Uno | В макетную плату | В макетную плату |
| Кнопка RESET | Есть | Есть | Нет — замыкают RST на GND |
| Гнездо питания 7–12 В | Есть | Нет | Нет (вход RAW на плате) |
| SPI | Только колодка ICSP | ICSP и ножки MISO/MOSI/SCK | Выводы 14, 15, 16 |
| Выведено аналоговых | 12 (A0–A11) | 12 (A0–A11) | 9 (A0–A3, A6–A10) |
| Светодиод на выводе 13 | Есть | Есть | Нет — только RX/TX-светодиоды |
| Статус | Продаётся у Arduino | Продаётся у Arduino | Плата SparkFun + море клонов |
Распиновка Pro Micro: схема выводов
Схема повторяет плату при взгляде сверху, USB вверху. У Leonardo и Micro назначение выводов то же самое — просто выводов больше: добавляются 11, 12, 13, A4, A5 и колодка ICSP. Наведите на категорию в легенде — её выводы подсветятся.
Главные сюрпризы для тех, кто пришёл с Uno: I2C на выводах 2/3, SPI на выводах 14/15/16, а аналоговые входы прячутся и среди цифровых ножек — полный список АЦП у Pro Micro: A0–A3 плюс выводы 4, 6, 8, 9 и 10. ШИМ умеют выводы 3, 5, 6, 9 и 10 (у Leonardo и Micro — ещё 11 и 13).
Скетч-клавиатура: плата печатает сама
Классический первый проект на 32U4 — кнопка, которая печатает текст. Библиотеки Keyboard и Mouse в Trema IDE уже вшиты в среду, ничего скачивать не надо. Мы собрали этот скетч для Leonardo — 5 718 байт из 28 672:
// Кнопка на D2 печатает текст — плата работает USB-клавиатурой.
// Собирается только для плат на ATmega32U4: на Uno будет ошибка
// «'Keyboard' was not declared in this scope».
#include <Keyboard.h>
void setup() {
pinMode(2, INPUT_PULLUP); // кнопка между D2 и GND
Keyboard.begin();
}
void loop() {
if (digitalRead(2) == LOW) { // кнопка нажата
Keyboard.print("privet ot arduino"); // плата «печатает» сама
delay(500); // защита от повтора
}
}
Ловушка, о которой предупреждает даже официальная справка Arduino: если скетч печатает или двигает мышь без остановки, плата начинает мешать вам работать — и перепрошить её становится трудно, среда просто не успевает открыть порт. Поэтому печатайте только по событию: по кнопке, как в примере, или по команде. Если плата уже «взбесилась» — нажмите RESET один раз и сразу запускайте загрузку: загрузчик ждёт около 8 секунд, среда успеет.
Что ещё умеет семейство: Mouse.h двигает курсор, а библиотека Joystick из каталога библиотек превращает плату в геймпад, который видят игры. На Uno и Nano всё это не работает совсем: мы проверили — сборка падает с ошибкой 'Keyboard' was not declared in this scope, потому что у ATmega328P нет USB-железа в чипе.
Порт исчезает при прошивке — это нормально
Перед загрузкой скетча среда открывает порт платы на скорости 1200 бод и тут же закрывает — это условный сигнал «перейди в режим загрузчика». Плата перезапускается, её USB-порт пропадает из системы и через секунду появляется снова — иногда под другим номером. Загрузчик Caterina ждёт прошивку около 8 секунд, затем запускает старый скетч. Классическая Arduino IDE в этот момент нередко теряет плату — «порт недоступен», особенно если скетч завис или порт сменил номер.
Trema IDE делает этот танец сама: посылает сигнал 1200 бод, до 8 секунд следит за списком портов и находит загрузчик по USB-номерам платы, даже когда тот появился под другим именем, — в журнале сборки это видно по строкам «1200-baud touch». Если плата не ответила на сигнал (скетч завис намертво), поможет кнопка RESET — у Pro Micro вместо неё дважды быстро замыкают RST на GND. Полный разбор ошибок загрузки — на странице «Ошибка загрузки скетча».
Два порта Serial: почему монитор молчит
Ещё одно отличие от Uno, которое ловит переезжающие скетчи: у 32U4 порт Serial — виртуальный, он живёт внутри USB-соединения. А на ножках 0/1 работает отдельный аппаратный порт Serial1. Это удобно: GPS или Bluetooth-модуль подключается к Serial1, а монитор порта остаётся свободным — на Uno так не получится. Мы собрали мост между портами (4 456 байт; на Uno этот же код не собирается — 'Serial1' was not declared):
// Мост между USB-портом и аппаратным UART на ножках 0/1.
// Serial — виртуальный порт через USB, Serial1 — настоящий UART:
// к нему можно подключить GPS или Bluetooth-модуль, не теряя монитор.
void setup() {
Serial.begin(9600); // порт в компьютер (USB)
Serial1.begin(9600); // порт на ножках 0 (RX) и 1 (TX)
}
void loop() {
if (Serial1.available()) Serial.write(Serial1.read()); // модуль -> ПК
if (Serial.available()) Serial1.write(Serial.read()); // ПК -> модуль
}
Почему после прошивки монитор пустой: Serial через USB «оживает» не мгновенно, и всё, что скетч печатает в первые мгновения, пропадает. Если вывод нужен с первой строки, добавьте в setup() после Serial.begin(9600) строку while (!Serial) {} — скетч подождёт, пока компьютер откроет порт. Только не оставляйте её в автономном устройстве: без компьютера ожидание не закончится никогда.
Память: USB-стек всегда с собой
За встроенный USB приходится платить флеш-памятью. Мы измерили: пустой скетч на Leonardo занимает 3 462 байта — против 444 байт на Uno. Почти три килобайта съедает USB-стек, который держит связь с компьютером в каждом скетче. Плюс загрузчик Caterina забирает 4 КБ из 32: скетчу остаётся 28 672 байта — меньше, чем у Uno (32 256). Утешение: SRAM здесь 2 560 байт, на четверть больше. Что делать, если скетч перестал помещаться — в разборе «Память Arduino».
Где купить
В магазине iarduino.ru (проверяли 21 августа 2026 года) из всей троицы в наличии — полноразмерная Arduino Leonardo за 790 ₽: разъём micro-USB, гнездо питания, колодки под шилды Uno. Кабель micro-USB в комплект не входит — берите сразу, если дома не найдётся. Pro Micro в этом магазине нет — его обычно покупают как клон на маркетплейсах, и это нормально: формат открытый. Карточка Arduino Micro (1 090 ₽) в момент проверки значилась «скоро в продаже». Забавная деталь: в описании Leonardo на сайте магазина упомянут «USB ATmega16U2» — это копипаста из карточки Uno, у Leonardo отдельного USB-чипа нет, в этом весь его смысл.
Чем программировать
Семейство 32U4 в Trema IDE
Все три платы — и обе версии Pro Micro, 5 В и 3,3 В — есть во встроенном списке плат Trema IDE: выбираете с панели, ничего не доустанавливая. Хитрую прошивку с исчезающим портом среда отрабатывает сама, а если что-то пойдёт не так — объяснит по-русски. Чем ещё отличается от классики — на странице «Arduino IDE на русском».
- Leonardo, Micro и Pro Micro (5 В и 3,3 В) — во встроенном списке плат
- Keyboard.h и Mouse.h уже вшиты в среду — ничего ставить не надо
- Авто-сброс 1200 бод среда делает сама и до 8 секунд ждёт новый порт
- Ошибки сборки объясняются по-русски карточками
- Дома — бесплатно, скачивается с российского сервера
Чем Arduino Leonardo отличается от Uno?
Микроконтроллером: у Leonardo стоит ATmega32U4 с USB прямо в чипе, отдельного USB-переводчика на плате нет. Отсюда таланты — плата умеет притворяться клавиатурой и мышью, портов Serial два, оперативной памяти 2 560 байт вместо 2 048. И отличия в разводке: I2C живёт на выводах 2/3, а не на A4/A5, поэтому дисплей, подключённый «как на Uno», молчит.
Почему при прошивке Leonardo порт исчезает и появляется?
Это штатная работа загрузчика: по сигналу 1200 бод плата перезапускается, её USB-порт пропадает из системы и через секунду возвращается — иногда под другим номером. Загрузчик ждёт прошивку около 8 секунд. Trema IDE отрабатывает этот танец сама и находит новый порт по USB-номерам платы.
Будет ли Keyboard.h работать на Uno или Nano?
Нет. Мы проверили: сборка падает с ошибкой «'Keyboard' was not declared in this scope», потому что у ATmega328P нет USB-железа в кристалле. Клавиатурой и мышью умеют быть только платы на ATmega32U4 (Leonardo, Micro, Pro Micro) и старшие 32-битные платы.
Почему Serial.println ничего не печатает на Leonardo?
Порт Serial здесь виртуальный, через USB, и оживает не мгновенно: всё, что скетч напечатал в первые мгновения, пропадает. Добавьте после Serial.begin() строку while (!Serial) {} — скетч дождётся, пока компьютер откроет порт. В автономном устройстве эту строку уберите, иначе без компьютера скетч не стартует.
Плата с Keyboard.h взбесилась и не прошивается. Что делать?
Скетч, который печатает без остановки, мешает среде открыть порт. Нажмите кнопку RESET один раз и сразу запускайте загрузку — загрузчик ждёт около 8 секунд, среда успеет. У Pro Micro кнопки нет: дважды быстро замкните RST на GND. И добавьте в скетч кнопку-предохранитель, как в примере на этой странице.
Чем Pro Micro отличается от Leonardo и Micro?
Это плата SparkFun (и множество клонов) на том же ATmega32U4, но урезанная ради размера: нет кнопки RESET и светодиода L, выведено меньше ножек — 9 аналоговых входов вместо 12, ШИМ на пяти выводах. Бывает в версиях 5 В/16 МГц и 3,3 В/8 МГц: если прошить с неверной настройкой, USB перестаёт определяться — лечится двойным замыканием RST на GND и прошивкой с правильной платой в списке.
Плата-клавиатура на столе? Осталась среда
Скачайте Trema IDE — Leonardo, Micro и Pro Micro уже в списке плат, Keyboard.h вшита, а исчезающий порт среда ловит сама. Дома — бесплатно навсегда. Все платы семейства — в обзоре «Платы Arduino».
