Платы · разбор

Arduino UNO R4 Minima, UNO R4 WiFi и Nano R4: что изменилось и как с ними работать

Та же форма Uno, те же 5 вольт на выводах, а внутри — 32-битный процессор на 48 МГц, в шестнадцать раз больше оперативной памяти и в восемь — флеша. Здесь — чем R4 отличается от R3 по цифрам, как поставить поддержку и не промахнуться с платой в меню, почему первая прошивка упирается в драйвер DFU, что в старых скетчах перестаёт собираться и четыре проверенных скетча: АЦП и ЦАП, Wi-Fi, матрица, EEPROM.

R3 и R4: что изменилось по цифрам

ЧтоUno R3UNO R4
ПроцессорATmega328P, 8 бит, 16 МГцRenesas RA4M1, ARM Cortex-M4, 32 бита, 48 МГц
Память32 КБ флеш, 2 КБ ОЗУ, 1 КБ EEPROM256 КБ флеш, 32 КБ ОЗУ, 8 КБ data flash вместо EEPROM
Логика выводов5 В5 В — те же шилды и модули, что у R3
Ток на вывод20 мА, предел 408 мА — светодиоду нужен резистор побольше
АЦП10 бит, 0…1023до 14 бит, 0…16383; опорное 5 В или 1,5 В внутреннее
ЦАПНет12-битный на A0: настоящее напряжение, не ШИМ
ШИМ6 выводов, 8 бит6 выводов (3, 5, 6, 9, 10, 11), до 12 бит
USBЧерез ATmega16U2 или CH340, разъём USB-BВ самом чипе, USB-C; плата умеет быть клавиатурой и мышью (у WiFi — с оговоркой, см. ниже)
ПортыОдин Serial на USB и выводах 0/1 сразуSerial — USB, Serial1 — выводы 0 и 1, отдельно
Ещё на плате—Часы RTC, CAN (нужен внешний приёмопередатчик; выводы 4 и 5, у WiFi — 10 и 13), операционный усилитель; у WiFi — матрица 12×8, Wi-Fi, Bluetooth, Qwiic
Питание VIN7–12 В6–24 В; с USB 4,8–5,5 В

Самая важная строка в этой таблице — не про мегагерцы, а про 8 мА. Выводы RA4M1 слабее выводов ATmega328P в два с половиной раза, и привычка вешать светодиод через 220 Ом здесь уже перебор: на 5 В через такой резистор идёт около 14 мА. Берите 470 Ом — яркости хватит. Реле, моторы и ленты — только через транзистор или драйвер, как и раньше, но теперь это не совет, а условие выживания платы.

Три платы: какая у вас

Arduino UNO R4 WiFiПункт меню«Arduino UNO R4 WiFi» — не «Arduino Uno WiFi» из пакетаAVR и не «Elektor Uno R4»ЧипТот же RA4M1 плюс радиомодуль ESP32-S3: Wi-Fi 4 на 2,4 ГГци Bluetooth LE, библиотека WiFiS3USBUSB-C через радиомодуль: он же делает COM-порт и прошиваетчип, драйвер DFU не нуженНа платеМатрица 12×8 светодиодов, разъём Qwiic на 3,3 В (шинаWire1), часы RTC с выводом VRTCПортыSerial — USB, Serial1 — выводы 0 и 1, Serial2 — крадиомодулю; Wire на A4/A5, Wire1 — QwiicГлавная плата семейства: Wi-Fi, матрица и Qwiic из коробки
Пункты меню и способы прошивки — из пакета «Arduino UNO R4 Boards» версии 1.6.0, который лежит на зеркале packages.trema.ru.

Minima и WiFi — один чип и один корпус, разница в радиомодуле ESP32-S3, матрице и разъёме Qwiic. Радиомодуль у WiFi занят не только Wi-Fi: через него же идёт USB, поэтому у WiFi порт и прошивка устроены иначе, чем у Minima. Nano R4 — тот же RA4M1 в корпусе Nano, с USB-C и Qwiic, без радио.

Поддержка плат: пакет и три ловушки одного имени

Платы R4 живут в отдельном пакете «Arduino UNO R4 Boards» — не в пакете AVR, где лежат обычные Uno. В Trema IDE он ставится из раздела «Платы» с нашего зеркала, версия сейчас 1.6.0; в Arduino IDE — через «Менеджер плат» с серверов Arduino, которые из России открываются не всегда (разбор — ошибка 403).

Дальше начинается то, на чём споткнулись и мы сами. В списке плат есть три похожих имени, и только одно — ваше. «Arduino Uno WiFi» из пакета AVR — это старая плата 2016 года на ATmega328P. «Elektor Uno R4» — чужая плата на ATmega328PB, которая попала во встроенный каталог. Настоящие — «Arduino UNO R4 Minima», «Arduino UNO R4 WiFi» и «Arduino Nano R4», все три в пакете «Arduino UNO R4 Boards». Выберете не ту — среда честно попытается прошить чип Renesas программой для AVR и через полминуты сдастся с ошибкой avrdude.

Первая прошивка: у Minima и Nano R4 нужен драйвер DFU

У всех трёх плат COM-порт создаёт сам чип, и Windows 10 и 11 обслуживают его своим драйвером — здесь ставить нечего. Разница в том, как заливается прошивка.

  • UNO R4 WiFi шьётся через COM-порт: радиомодуль ESP32-S3 принимает прошивку и перезаписывает чип. Среда открывает порт на 1200 бод, плата уходит в загрузчик, прошивка идёт — всё как у Leonardo, никаких драйверов сверх системных.
  • UNO R4 Minima и Nano R4 шьются не через порт, а через отдельный интерфейс DFU на том же USB. Ему нужен драйвер WinUSB из пакета плат, и ставится он с правами администратора. Без него порт виден, монитор работает, а загрузка падает: «No DFU capable USB device available». В Trema IDE драйвер ставится кнопкой в разделе «Платы» — там же видно, стоит ли он; Arduino IDE предлагает его при установке пакета. На школьном компьютере, где запрос прав запрещён, драйвер поставит только администратор.
  • Плата зависла или порт пропал. Дважды быстро нажмите RESET — светодиод L начнёт плавно гаснуть и разгораться, плата ждёт прошивку в загрузчике. Для Minima и Nano R4 в этом состоянии порта нет, и это нормально: DFU работает без порта.

Отдельная история с Nano R4, которую мы разбирали по письму: у новой платы из коробки порта может не быть вовсе, а Диспетчер устройств показывает «Неизвестное USB-устройство (сбой запроса дескриптора устройства)». Это не драйвер — это кабель или разъём: компьютер не получил от платы ответа. Другой кабель с линиями данных решил вопрос. Полный разбор строк Диспетчера — на странице про драйверы.

Что меняется в коде

  • Два порта вместо одного. Serial — это USB и монитор порта, Serial1 — выводы 0 и 1. На R3 это был один и тот же порт; скетч с модулем Bluetooth или GPS на выводах 0/1 на R4 должен говорить с ним через Serial1, иначе данные уходят в монитор, а модуль молчит. У WiFi есть ещё Serial2 — он занят связью с радиомодулем, его не трогайте. И осторожнее с привычным while (!Serial): на Minima и Nano R4 без открытого монитора порта он не кончится никогда — от повербанка плата так и будет стоять в setup(). Ждите с ограничением по времени, как в скетче ниже.
  • Светодиод Nano R4 — не на 13. На Nano R4 LED_BUILTIN — это вывод 22, а на 13 висит SCK. Blink с числом 13 соберётся и ничего не зажжёт; пишите LED_BUILTIN, как и положено.
  • Клавиатура и мышь. Библиотеки Keyboard и Mouse из пакета делают из платы устройство ввода. На Minima и Nano R4 это просто работает рядом с портом. На WiFi USB переключается с радиомодуля на RA4M1 в момент Keyboard.begin(): COM-порт пропадает, и чтобы залить следующий скетч, плату вводят в загрузчик двойным нажатием RESET.
  • АЦП на 14 бит и ЦАП. analogReadResolution(14) — и analogRead() возвращает 0…16383 (допустимы 10, 12 и 14 бит). analogWrite(DAC, значение) после analogWriteResolution(12) выдаёт на A0 настоящее напряжение 0…5 В — синусоиду, звук, опорное напряжение. Разрешение общее: после этой строки и ШИМ на остальных выводах ждёт 0…4095, а не 0…255.
  • Регистров AVR нет. Любой скетч с PORTB, DDRB, TCCR1A, ISR(TIMER1_COMPA_vect) останавливается на «'DDRB' was not declared in this scope». Заголовком это не починить — у RA4M1 другие регистры. Переписывайте на digitalWrite(), прерывания — на attachInterrupt(), таймеры — на класс FspTimer из ядра, или оставляйте такой скетч на R3. А вот PROGMEM и F() собираются: ядро подставляет заглушки, строки просто лежат во флеше.
  • Qwiic — это 3,3 В. У WiFi и Nano R4 разъём Qwiic сидит на второй шине Wire1 и питает модуль 3,3 вольтами, хотя вся плата 5-вольтовая. Модуль, воткнутый в Qwiic, ищите через Wire1.begin(), а в библиотеке датчика передавайте Wire1 вместо Wire. Выводы A4/A5 — это Wire, 5 В, как у R3.
  • EEPROM есть, но другая. Библиотека EEPROM.h и команды put(), get(), write() работают, под ними 8 КБ data flash. Писать туда каждую секунду не стоит: ресурс у флеша конечный, а запись идёт блоком. И стёртую память ядро показывает как 0xFF, поэтому отличать «пусто» от «настройки есть» надёжнее меткой в структуре, как в скетче ниже.
  • Библиотеки. Servo, SoftwareSerial, Wire, SPI, LiquidCrystal собираются — проверено на пакете 1.6.0. Свежие версии FastLED и Adafruit NeoPixel знают RA4M1, а библиотеки, внутри которых ассемблер AVR или прямые регистры (старые драйверы лент, TimerOne), — нет: ищите в описании слово «renesas» или «UNO R4».

Скетч для первого знакомства: АЦП на 14 бит, пила на ЦАП и второй порт. На Minima занимает 42 444 байта из 256 КБ — ядро R4 заметно толще AVR, но места всё равно вдесятеро больше, чем было у R3 целиком.

// Что умеет UNO R4: 14-битный АЦП, настоящий ЦАП и два порта.
void setup() {
  Serial.begin(115200);   // USB: монитор порта
  Serial1.begin(9600);    // выводы 0 и 1: отдельный аппаратный порт
  unsigned long started = millis();
  while (!Serial && millis() - started < 3000) {
    // ждём монитор не дольше трёх секунд: от повербанка его не будет
  }
  analogReadResolution(14);   // 0…16383 вместо 0…1023
  analogWriteResolution(12);  // 0…4095 — и для ЦАП на A0, и для ШИМ на остальных
}

void loop() {
  int raw = analogRead(A1);
  Serial.print("A1 = ");
  Serial.print(raw);
  Serial.print(" из 16383, это ");
  Serial.print(raw * 5.0 / 16383, 3);
  Serial.println(" В");

  for (int v = 0; v < 4096; v += 64) {   // пила на выводе A0, 0…5 В
    analogWrite(DAC, v);
    delay(2);
  }
  Serial1.println("тик");  // уйдёт в выводы 0/1, не в монитор
  delay(500);
}

Wi-Fi на UNO R4 WiFi

Библиотека называется WiFiS3 и лежит в пакете плат; команды привычные — WiFi.begin(), WiFi.status(), WiFiClient, WiFiServer, — но файл заголовка именно такой: скетчи с WiFiNINA.h или WiFi101.h не соберутся. Радиомодуль — отдельный процессор со своей прошивкой; обновляют её не из скетча, а с компьютера: в Arduino IDE 2 — «Инструменты → Firmware Updater». Bluetooth LE у этой же платы — через библиотеку ArduinoBLE, не через WiFiS3. Сканер сетей, 57 360 байт:

#include <WiFiS3.h>  // Wi-Fi UNO R4 WiFi: не WiFiNINA и не WiFi101

void setup() {
  Serial.begin(115200);
  delay(1500);  // дать монитору порта открыться
  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println("Радиомодуль не отвечает");
    while (true) {
    }
  }
  Serial.print("Прошивка радиомодуля: ");
  Serial.println(WiFi.firmwareVersion());
}

void loop() {
  int n = WiFi.scanNetworks();
  Serial.print("Сетей вокруг: ");
  Serial.println(n);
  for (int i = 0; i < n; i++) {
    Serial.print(WiFi.SSID(i));
    Serial.print("  ");
    Serial.print(WiFi.RSSI(i));
    Serial.println(" дБм");
  }
  delay(10000);
}

Дальше — веб-страница, MQTT, запросы к сайту — всё, что разобрано для ESP32 в статье про Wi-Fi и веб-сервер, работает и здесь с поправкой на имя библиотеки. Только 2,4 ГГц.

Матрица 12×8

Девяносто шесть красных точек на плате WiFi — через библиотеку Arduino_LED_Matrix из пакета. Самый понятный способ — массив 8 строк по 12 чисел, где единица значит «горит», и renderBitmap(). Массив должен быть обычным, не const: библиотека требует изменяемый, иначе сборка остановится на «invalid conversion from 'const uint8_t*'».

#include <Arduino_LED_Matrix.h>  // библиотека из пакета UNO R4

ArduinoLEDMatrix matrix;

// 12 x 8 точек: 1 — горит. Здесь — стрелка вправо.
uint8_t ARROW[8][12] = {
  {0,0,0,0,0,0,0,1,0,0,0,0},
  {0,0,0,0,0,0,0,0,1,0,0,0},
  {0,0,0,0,0,0,0,0,0,1,0,0},
  {1,1,1,1,1,1,1,1,1,1,1,0},
  {0,0,0,0,0,0,0,0,0,1,0,0},
  {0,0,0,0,0,0,0,0,1,0,0,0},
  {0,0,0,0,0,0,0,1,0,0,0,0},
  {0,0,0,0,0,0,0,0,0,0,0,0}
};

void setup() {
  matrix.begin();
}

void loop() {
  matrix.renderBitmap(ARROW, 8, 12);
  delay(1000);
  matrix.clear();
  delay(300);
}

EEPROM: настройки, которые переживают выключение

#include <EEPROM.h>  // на R4 это 8 КБ data flash, а не настоящая EEPROM

const unsigned long MAGIC = 0x52344E31;  // метка «здесь наши настройки»

struct Settings {
  unsigned long magic;
  unsigned long starts;
  float threshold;
};

void setup() {
  Serial.begin(115200);
  delay(1500);
  Settings s;
  EEPROM.get(0, s);
  if (s.magic != MAGIC) {  // пусто или чужой мусор от прошлого скетча
    s.magic = MAGIC;
    s.starts = 0;
    s.threshold = 25.0;
  }
  s.starts++;
  EEPROM.put(0, s);  // переписывается целым блоком, часто писать не стоит
  Serial.print("Запуск номер ");
  Serial.println(s.starts);
}

void loop() {
}

Метка MAGIC в начале структуры — единственный надёжный способ понять, что в памяти лежат именно ваши настройки, а не всё единицы после стирания и не остатки прошлого скетча. На R3 той же цели обычно служила проверка одного байта на 255, и она подводила по тем же причинам.

Ошибки, которые встречают чаще всего

СообщениеПричина и лекарство
No DFU capable USB device availableMinima или Nano R4 без драйвера WinUSB. Поставить драйвер из пакета (в Trema IDE — раздел «Платы»), переподключить плату.
'DDRB' was not declared in this scope, 'TCCR1A' was not declaredСкетч написан под регистры AVR. На R4 их нет — переписать на digitalWrite() или оставить скетч для R3.
expected constructor, destructor, or type conversion before '(' token на строке с ISR(…)Макрос прерываний AVR. На R4 — attachInterrupt() для выводов и библиотеки таймеров для RA4M1.
WiFiNINA.h: No such file or directoryСкетч от Uno WiFi Rev2 или MKR. На UNO R4 WiFi библиотека называется WiFiS3.
invalid conversion from 'const uint8_t*' в Arduino_LED_MatrixМассив картинки объявлен как const. Уберите const.
avrdude: stk500_recv() — полминуты тишины и ошибкаВыбрана не та плата: «Arduino Uno WiFi» или «Elektor Uno R4» вместо «Arduino UNO R4 …». Среда шьёт чип Renesas программой для AVR.
Модуль на выводах 0/1 молчит, а в мониторе мусорСкетч пишет в Serial, а модуль сидит на Serial1. На R4 это разные порты.
Датчик в Qwiic не найденQwiic — это Wire1, а не Wire. И питание там 3,3 В: 5-вольтовый модуль через Qwiic не заработает.

Что купить

В нашем магазине на 28 октября 2026 года есть обе Uno; Nano R4 пока нет.

Arduino UNO R4 WiFi

RA4M1 плюс ESP32-S3: Wi-Fi, Bluetooth, матрица 12×8, Qwiic, USB-C. Та плата, с которой стоит начинать, если R4 берётся ради сети.

2 490 ₽
В магазин
арт. 1811 · цена и наличие на 28.10.2026

Arduino UNO R4 Minima

Тот же RA4M1 без радио и матрицы, с разъёмом SWD для отладчика. Для учебного класса и проектов, где нужны память и ЦАП, а не Wi-Fi.

1 690 ₽
В магазин
арт. 1810 · цена и наличие на 28.10.2026

Если задача — уроки с набором и шилды, классической Uno R3 по-прежнему хватает; R4 берут за память, ЦАП, Wi-Fi и USB-клавиатуру.

Эта тема в Trema IDE

  • Пакет «Arduino UNO R4 Boards» — с российского зеркала packages.trema.ru, установка из раздела «Платы» без ссылок и без обхода блокировок.
  • Драйвер DFU для Minima и Nano R4 ставится из того же раздела с запросом прав администратора, и там же видно, стоит ли он.
  • Подсказка «В USB вставлена плата»: платы R4 узнаются по USB-номеру точно — «это Arduino UNO R4 WiFi», — и промахнуться мимо «Elektor Uno R4» сложнее.
  • Ошибки по-русски: карточка на «No DFU capable USB device» называет плату и ведёт к драйверу, а не советует кнопку BOOTSEL от Pico.

Вопросы и ответы

Коротко о главном

Если чего-то не хватает — напишите нам через форму поддержки, мы дополняем страницы по реальным вопросам.

Чем Arduino UNO R4 отличается от R3?

Внутри 32-битный Renesas RA4M1 на 48 МГц вместо 8-битного ATmega328P на 16 МГц: 256 КБ флеш и 32 КБ ОЗУ против 32 и 2, 14-битный АЦП, настоящий 12-битный ЦАП на A0, USB в самом чипе с разъёмом USB-C, часы RTC и CAN. Снаружи — та же форма, те же 5 В на выводах и те же шилды. Главная ловушка — 8 мА на вывод вместо 20.

Подходят ли старые скетчи для Uno к UNO R4?

Обычные — да: digitalWrite, analogRead, Serial, Wire, SPI, Servo и SoftwareSerial собираются. Не соберутся скетчи с регистрами AVR (PORTB, DDRB, TCCR1A, ISR) — у RA4M1 их нет — и библиотеки с ассемблером AVR внутри. Ещё одно отличие: на R4 Serial — это USB, а выводы 0 и 1 — Serial1.

UNO R4 Minima: порт есть, а прошивка не идёт — «No DFU capable USB device»

Minima и Nano R4 шьются не через COM-порт, а через интерфейс DFU на том же USB, которому нужен драйвер WinUSB из пакета плат. В Trema IDE он ставится кнопкой в разделе «Платы» с запросом прав администратора, в Arduino IDE — при установке пакета. UNO R4 WiFi этот драйвер не нужен: её прошивает радиомодуль через порт.

Какую плату выбрать в списке: Arduino Uno WiFi, Elektor Uno R4 или Arduino UNO R4?

Только «Arduino UNO R4 Minima», «Arduino UNO R4 WiFi» или «Arduino Nano R4» из пакета «Arduino UNO R4 Boards». «Arduino Uno WiFi» в пакете AVR — старая плата 2016 года на ATmega328P, «Elektor Uno R4» — чужая плата на ATmega328PB. С ними прошивка упрётся в ошибку avrdude после полуминуты ожидания.

Какая библиотека Wi-Fi у UNO R4 WiFi?

WiFiS3 — она лежит в пакете плат, ставить отдельно не нужно. Команды те же, что у WiFiNINA: WiFi.begin, WiFiClient, WiFiServer, но заголовок другой, и скетчи с WiFiNINA.h или WiFi101.h не соберутся. Сеть только 2,4 ГГц; Bluetooth LE того же радиомодуля — через библиотеку ArduinoBLE.

Можно ли подключать 5-вольтовые модули к UNO R4?

Да: выводы RA4M1 работают от 5 В, как у R3, и старые шилды и модули подходят. Исключение — разъём Qwiic на WiFi и Nano R4: там 3,3 В и вторая шина Wire1. Модуль на 5 В в Qwiic не включайте, а в скетче для него используйте Wire1.

Правда, что у UNO R4 слабые выводы?

Да: вывод RA4M1 безопасно отдаёт до 8 мА, у ATmega328P было 20. Светодиод через привычные 220 Ом тянет около 14 мА — больше нормы; ставьте 470 Ом. Всё, что берёт больше, — реле, моторы, ленты, — только через транзистор или драйвер. Для питания модулей есть вывод 5V: до 1,2 А от стабилизатора при питании через VIN.

Nano R4 не появляется в портах — что делать?

Сначала кабель: если Диспетчер устройств показывает «Неизвестное USB-устройство (сбой запроса дескриптора)», компьютер не получил от платы ответа, и дело в кабеле или разъёме, а не в драйвере. С рабочим кабелем порт появляется сам на Windows 10 и 11, а для прошивки нужен драйвер DFU из пакета плат.

Дальше по теме

Классическая плата — Arduino Uno. Все платы с номерами — Платы Arduino. Порт не появился — Драйверы. Wi-Fi дальше сканера — Wi-Fi на Arduino.