Справочник по распиновке Arduino UNO R4 WiFi

Arduino UNO R4 WiFi представляет собой значительный шаг вперёд для сообщества мейкеров, привнося бесшовное беспроводное подключение в классический форм-фактор UNO. Как и его собрат UNO R4 Minima, он знаменует окончательный переход от старой 8-битной архитектуры AVR (ATmega328P в Arduino UNO R3) к современной и гораздо более мощной 32-битной экосистеме Arm Cortex-M.

Благодаря интеграции мощного микроконтроллера Renesas RA4M1 совместно с сопроцессором ESP32-S3, UNO R4 WiFi обеспечивает значительный прирост скорости, памяти и возможностей, добавляя надёжную функциональность Wi-Fi и Bluetooth Low Energy (BLE).

Помимо беспроводных функций, UNO R4 WiFi сохраняет расширенные возможности платформы R4: шину CAN, OPAMP, DAC и поддержку HID через USB. Он также добавляет уникальные функции: встроенную светодиодную матрицу 12x8 и разъём Qwiic.

Однако эти дополнительные возможности означают, что есть важные различия, которые необходимо понимать перед подключением проектов по привычке. В частности, UNO R4 WiFi вводит изменения в архитектуру питания, сигнальные домены (включая взаимодействие между стороной RA4M1 на 5V и стороной ESP32-S3 на 3,3V) и ограничения тока GPIO. Если вы переходите с Arduino UNO R3, внимательно изучите распиновку для безопасного и эффективного использования новых функций.

Распиновка Arduino UNO R4 WiFi

UNO R4 WiFi имеет 35 выводов. Распиновка выглядит следующим образом:

Arduino UNO R4 WiFi Pinout Reference

Давайте подробнее рассмотрим выводы Arduino и их функции, начиная с цифровых выводов.

Цифровые выводы ввода/вывода Arduino UNO R4 WiFi

UNO R4 WiFi включает 14 цифровых выводов ввода/вывода с маркировкой от D0 до D13.

Arduino UNO R4 WiFi Pinout Reference

Вы можете настроить эти выводы как входы или выходы. В режиме входа вывод может считывать цифровые сигналы, например, нажата ли кнопка. В режиме выхода он может отправлять цифровые сигналы для управления устройствами: светодиодами, моторами или реле.

Для использования цифрового вывода сначала укажите Arduino его поведение с помощью функции pinMode(). Для установки как входа используйте pinMode(pin, INPUT) и считывайте состояние функцией digitalRead(pin). Для выхода — pinMode(pin, OUTPUT) и управляйте записью digitalWrite(pin, HIGH) для включения или digitalWrite(pin, LOW) для выключения.

Важные электрические ограничения: выводы работают на логическом уровне 5V. Каждый цифровой вывод может безопасно обрабатывать до 8 мА тока, а суммарный ток всех цифровых выводов не должен превышать 60 мА.

Это важное отличие от микроконтроллера ATmega328P на UNO R3, где каждый вывод мог обрабатывать от 20 до 40 мА. При переходе с UNO R3 будьте осторожны и не подключайте высокотоковые нагрузки напрямую без токоограничивающих резисторов или транзисторных ключей. Превышение лимита 8 мА может привести к неожиданному падению напряжения на выводе или необратимому повреждению внутренних выходных драйверов микроконтроллера.

Внутренние подтягивающие резисторы

Каждый цифровой вывод UNO R4 WiFi включает встроенный подтягивающий резистор. Эта функция особенно полезна, когда вывод используется как вход и к нему ничего не подключено. Без подтягивающего резистора входной вывод может «плавать», случайно переключаясь между HIGH и LOW из-за электрических помех.

Внутренний подтягивающий резистор решает эту проблему, мягко подтягивая напряжение вывода к HIGH. Для включения используйте pinMode(pin, INPUT_PULLUP) вместо pinMode(pin, INPUT).

Значение подтягивающего резистора не фиксировано, но обычно составляет около 20 кОм.

Выводы прерываний Arduino UNO R4 WiFi

Выводы прерываний — это специальные цифровые входные выводы, запускающие определённый блок кода (ISR) при внешнем событии. Это позволяет Arduino мгновенно реагировать без постоянной проверки состояния вывода в основном цикле.

UNO R4 WiFi имеет два основных вывода внешних прерываний на выводах 2 и 3:

Arduino UNO R4 WiFi Pinout Reference

UNO R4 WiFi поддерживает четыре режима срабатывания:

Режим

Условие срабатывания

Типичные случаи применения

RISING

Вывод переходит из LOW в HIGH

Обнаружение нажатия кнопки (подтяжка к земле)

FALLING

Вывод переходит из HIGH в LOW

Обнаружение нажатия кнопки (подтяжка к питанию)

CHANGE

Вывод меняет состояние (в любом направлении)

Считывание энкодера, подсчёт импульсов

LOW

Вывод остаётся на уровне LOW

События по уровню сигнала

Для настройки прерывания используется функция attachInterrupt(interrupt, ISR, mode). Значение interrupt указывает, какое прерывание использовать: interrupt 0 соответствует цифровому выводу 2, а interrupt 1 — цифровому выводу 3.

Важно понимать, что UNO R4 WiFi использует современный микроконтроллер на базе Cortex-M4 с системой контроллера вложенных векторных прерываний (NVIC). Эта система поддерживает прерывания практически на каждом цифровом и аналоговом выводе. Однако для простоты Arduino-ПО фокусируется на выводах D2 и D3.

Выводы PWM Arduino UNO R4 WiFi

Выводы PWM на UNO R4 WiFi — это цифровые выводы, имитирующие аналоговый выход путём быстрого переключения между HIGH и LOW. Ключевая идея — коэффициент заполнения, определяющий среднее напряжение.

UNO R4 WiFi предоставляет 6 выводов с поддержкой PWM: D3, D5, D6, D9, D10 и D11. Отмечены тильдой (~) на плате.

Arduino UNO R4 WiFi Pinout Reference

Примечание:

Выводы D0, D1, D2, D4, D7, D8, D12, D13, SDA и SCL поддерживают PWM, но могут конфликтовать с другими функциями на плате UNO R4 WiFi. Избегайте их использования, так как они не являются официально поддерживаемыми выводами PWM.

Для генерации PWM-сигнала установите вывод как выход с помощью pinMode(pin, OUTPUT) в setup(), затем используйте analogWrite(pin, value).

По умолчанию разрешение PWM — 8 бит (значения 0-255). Можно увеличить до 12 бит с помощью analogWriteResolution().

analogWriteResolution(12);  //Sets the PWM resolution to 12 bits
analogWriteResolution(8);   //Sets the PWM resolution to 8 bits (default)

Выводы АЦП Arduino UNO R4 WiFi

Аналоговые входные выводы UNO R4 WiFi считывают непрерывные аналоговые сигналы от датчиков. Arduino использует встроенный АЦП для преобразования аналогового напряжения в цифровое число.

UNO R4 WiFi имеет шесть аналоговых входных выводов: A0 — A5.

Arduino UNO R4 WiFi Pinout Reference

Для считывания используйте analogRead(pin). По умолчанию — 10-битное разрешение (0-1023). Можно увеличить до 12 или 14 бит. При 14-битном разрешении шаг составляет примерно 0,3 мВ.

analogReadResolution(10); //(default)
analogReadResolution(12);
analogReadResolution(14);

Выводы A0 — A5 также могут работать как обычные цифровые выводы.

Изменение аналогового опорного напряжения

По умолчанию диапазон 0-5V. Можно изменить с помощью вывода AREF и analogReference(type).

analogReference(AR_DEFAULT);   //Uses the default analog reference of 5V.
analogReference(AR_INTERNAL);  //Uses an internal reference voltage of 1.5V.
analogReference(AR_EXTERNAL);  //Uses an external reference voltage applied to the AREF pin.

Вывод DAC Arduino UNO R4 WiFi

UNO R4 WiFi включает встроенный DAC. DAC преобразует цифровое значение в гладкое аналоговое напряжение. DAC доступен на аналоговом выводе A0.

Arduino UNO R4 WiFi Pinout Reference

Используется та же функция analogWrite(pin, value). По умолчанию — 8-битное разрешение (0-255). Можно увеличить до 12 бит (0-4095).

analogWrite(pin, value);
analogWriteResolution(12);

При использовании A0 как выхода DAC его нельзя одновременно использовать как аналоговый вход.

Выводы операционного усилителя Arduino UNO R4 WiFi

R4 WiFi включает встроенный операционный усилитель (ОУ). На аналоговом разъёме доступен один из четырёх внутренних ОУ: A1 — положительный вход, A2 — отрицательный вход, A3 — выход.

Arduino UNO R4 WiFi Pinout Reference

Для использования подключите библиотеку OPAMP.h и инициализируйте функцией OPAMP.begin(speed).

#include <OPAMP.h>

void setup () {
  OPAMP.begin(OPAMP_SPEED_HIGHSPEED);
}

void loop() {
}

Примеры применения

ОУ можно использовать как повторитель напряжения (буфер), соединив A2 с A3. Как усилитель напряжения — подключив резисторы 10 кОм. Как компаратор — для сравнения двух напряжений.

Конечно, эти примеры — лишь начало возможностей встроенного ОУ.

Выводы ёмкостного сенсора Arduino UNO R4 WiFi

UNO R4 WiFi имеет 11 ёмкостных сенсорных GPIO: D0, D1, D2, D3, D8, D9, D11, D13, A1, A2 и LOVE_BUTTON (контактная площадка в форме сердца на обратной стороне платы).

Arduino UNO R4 WiFi Pinout Reference

Эти выводы обнаруживают приближение проводящего предмета, например пальца, измеряя изменение ёмкости. Можно прикрепить к выводам проводящий материал (алюминиевую фольгу, проводящую ткань) для создания сенсорных площадок.

Для использования установите библиотеку Arduino_CapacitiveTouch.

#include "Arduino_CapacitiveTouch.h"

CapacitiveTouch touchButton = CapacitiveTouch(D0);

void setup() {
  touchButton.begin();
  touchButton.setThreshold(2000);
}

void loop() {
  int sensorValue = touchButton.read();
  bool isTouched = touchButton.isTouched();
}

Выводы I2C Arduino UNO R4 WiFi

Одно из важнейших конструктивных улучшений UNO R4 WiFi — наличие двух отдельных шин I2C. Это решает давнюю проблему совместимости 5V и 3,3V.

Традиционная шина 5V

Первая шина I2C — традиционная шина 5V. Выводы SDA и SCL подключены к аналоговым выводам A4 (SDA) и A5 (SCL). Также доступны рядом с выводом AREF. Эта шина сохранена для совместимости со старыми шилдами и модулями 5V.

Arduino UNO R4 WiFi Pinout Reference

UNO R4 WiFi не включает встроенных подтягивающих резисторов на линиях I2C по умолчанию, но на плате есть контактные площадки для пайки.

Arduino UNO R4 WiFi Pinout Reference

Для использования шины 5V подключите библиотеку Wire:

#include <Wire.h>

void setup() {
  Wire.begin();

  Wire.beginTransmission(1);  //begin transmit to device 1
  Wire.write(byte(0x00));     //send instruction byte
  Wire.write(val);            //send a value
  Wire.endTransmission();     //stop transmit
}

void loop() {
}

Шина Qwiic / STEMMA QT

UNO R4 WiFi также включает вторую шину I2C, подключённую к разъёму Qwiic/STEMMA QT. Этот разъём предназначен для простого подключения современных датчиков 3,3V от SparkFun и Adafruit.

Arduino UNO R4 WiFi Pinout Reference

Поскольку эта шина отделена от шины 5V, она защищает устройства 3,3V от воздействия сигналов 5V. Это позволяет безопасно использовать устройства обоих напряжений одновременно.

Для использования разъёма Qwiic/STEMMA QT используйте Wire1 вместо Wire:

#include <Wire.h>

void setup() {
  Wire1.begin();  //join the second I2C bus

  Wire1.beginTransmission(1);  //begin transmit to device 1
  Wire1.write(byte(0x00));     //send instruction byte
  Wire1.write(val);            //send a value
  Wire1.endTransmission();     //stop transmit
}

void loop() {
}

Выводы SPI Arduino UNO R4 WiFi

UNO R4 WiFi поддерживает SPI (Serial Peripheral Interface) — быстрый тип последовательной связи.

Arduino UNO R4 WiFi Pinout Reference

Примечание:

UNO R4 WiFi использует современную терминологию Controller/Peripheral вместо Master/Slave.

Вывод 11 — COPI (ранее MOSI), вывод 12 — CIPO (ранее MISO), вывод 13 — SCK, вывод 10 — CS. Также доступен разъём ICSP.

#include <SPI.h>

const int CS = 10;

void setup() {
  pinMode(CS, OUTPUT);     // Set CS pin as output
  SPI.begin();             // Initialize SPI bus
  digitalWrite(CS, LOW);   // Pull CS low to start communication with the device
  SPI.transfer(0x00);      // Send a single byte (0x00) over SPI
  digitalWrite(CS, HIGH);  // Pull CS high to end communication
}

void loop() {
}

Выводы UART Arduino UNO R4 WiFi

UNO R4 WiFi имеет два отдельных аппаратных UART:

  1. Один через USB-C, а

  2. Другой через выводы RX/TX.

Arduino UNO R4 WiFi Pinout Reference

На старом UNO R3 USB и выводы 0/1 были на одном интерфейсе. R4 WiFi разделяет их: USB-C доступен как Serial, а выводы 0/1 — как Serial1.

Serial1.begin(9600);
while (Serial1.available()) {
  delay(2);
  char c = Serial1.read();
  incoming += c;
}
Serial1.write("Hello world!");

Выводы CAN Arduino UNO R4 WiFi

UNO R4 WiFi поддерживает CAN-связь. CAN-сигналы доступны на D4 (CAN TX) и D5 (CAN RX).

Arduino UNO R4 WiFi Pinout Reference

Важно: плата включает только CAN-контроллер, но не трансивер. Необходим внешний модуль (MCP2551 или TJA1050).

#include <Arduino_CAN.h>
CAN.begin(CanBitRate::BR_125k);   //sets the bit rate to 125 kbps
CAN.begin(CanBitRate::BR_250k);   //sets the bit rate to 250 kbps
CAN.begin(CanBitRate::BR_500k);   //sets the bit rate to 500 kbps
CAN.begin(CanBitRate::BR_1000k);  //sets the bit rate to 1 Mbps
uint8_t const msg_data[] = {0xCA,0xFE,0,0,0,0,0,0};
memcpy((void *)(msg_data + 4), &msg_cnt, sizeof(msg_cnt));
CanMsg msg(CAN_ID, sizeof(msg_data), msg_data);
CAN.write(msg);
if (CAN.available()) {
  CanMsg const msg = CAN.read();
  Serial.println(msg);
}

Разъём ICSP Arduino UNO R4 WiFi

Разъём ICSP сохранён для совместимости с SPI-шилдами. Прошивка загрузчика через него не поддерживается, так как Renesas RA4M1 не поддерживает программирование по SPI.

Arduino UNO R4 WiFi Pinout Reference

Разъём ESP Arduino UNO R4 WiFi

UNO R4 WiFi включает небольшой штыревой разъём 2x3 рядом с кнопкой RESET для прямого доступа к модулю ESP32-S3.

Доступные выводы:

  • GPIO42 — отладка MTMS

  • GPIO41 — отладка MTDI

  • GPIO43 (TXD0) — последовательная передача (UART)

  • GPIO0 — Boot

  • GPIO44 (RXD0) — последовательный приём (UART)

  • GND — земля

Arduino UNO R4 WiFi Pinout Reference

Будьте очень осторожны: все сигналы работают при 3,3V. ESP32-S3 не толерантен к 5V. Подключение к сигналу 5V может необратимо повредить чип ESP32-S3.

Светодиодная матрица Arduino UNO R4 WiFi

Одна из самых заметных функций UNO R4 WiFi — встроенная светодиодная матрица 12x8. Она содержит 96 маленьких красных светодиодов, расположенных в 12 столбцах и 8 строках. Вы можете программировать этот дисплей для отображения паттернов, иконок, бегущего текста, анимаций и даже простых игр.

Arduino UNO R4 WiFi Pinout Reference

Все 96 светодиодов подключены с помощью технологии Charlieplexing, позволяющей управлять многими светодиодами с меньшим числом выводов микроконтроллера.

Для использования подключите библиотеку Arduino_LED_Matrix:

#include "Arduino_LED_Matrix.h"

ArduinoLEDMatrix matrix;

byte heart[8][12] = {
  { 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0 },
  { 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0 },
  { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 },
  { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
  { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
  { 0, 0, 0, 0, 1, 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, 0, 0 }
};

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

void loop() {
  matrix.renderBitmap(heart, 8, 12);
}

Выводы питания Arduino UNO R4 WiFi

UNO R4 WiFi предоставляет несколько выводов питания.

Arduino UNO R4 WiFi Pinout Reference

Упрощённая блок-схема дерева питания:

Arduino UNO R4 WiFi Pinout Reference

VIN — питание от внешнего источника (6V-24V). Стабилизируется до 5V преобразователем ISL854102FRZ. Также подключён к разъёму DC.

5V — стабилизированный выход 5V. До 1,2 А при питании через VIN/DC; до 2 А при питании через USB-C. Для мощных компонентов (сервоприводы) используйте отдельный источник питания.

Примечание: при питании через USB напряжение на выводе 5V составляет около 4,7V из-за защитного диода Шоттки.

3.3V — стабилизированный выход 3,3V от регулятора SGM2205 LDO. Питает ESP32-S3, разъём Qwiic и датчики 3,3V. Не перегружайте этот вывод: ESP32-S3 потребляет импульсный ток при передаче Wi-Fi. Избыточная нагрузка может вызвать brownout ESP32.

Выводы OFF и VRTC Arduino UNO R4 WiFi

UNO R4 WiFi вводит два вывода, отсутствовавших на ранних платах UNO: OFF и VRTC. Они обеспечивают дополнительный контроль над питанием и хронометражем.

Arduino UNO R4 WiFi Pinout Reference

Вывод OFF

OFF — это управляющий вывод отключения, активный при LOW. При подключении к GND встроенный понижающий преобразователь 5V выключается и плата отключается.

Эта функция полезна в проектах с низким энергопотреблением, например в системах дистанционного мониторинга окружающей среды на батареях. Например, маломощная схема таймера может подтянуть вывод OFF к LOW для полного выключения платы на несколько часов, а затем отпустить вывод, разбудив систему для снятия показаний, отправки данных по Wi-Fi и повторного выключения. Такой метод может продлить срок службы батареи с нескольких дней до нескольких месяцев.

Важно помнить, что вывод OFF работает только при питании через VIN или разъём DC. При питании через USB-C линия 5V поступает непосредственно от USB, минуя преобразователь. В этом случае вывод OFF не имеет эффекта.

Вывод VRTC

Вывод VRTC связан со встроенными часами реального времени (RTC). UNO R4 WiFi включает внутренний RTC для отслеживания текущего времени без необходимости подключения внешнего модуля RTC, такого как DS3231. Пока основное питание (USB или VIN) подключено, RTC работает нормально. Однако при отключении основного питания RTC обычно останавливается. Для предотвращения этого плата предоставляет вывод VRTC рядом с разъёмом DC. Подключив небольшой резервный источник питания, такой как батарейка CR2032 или суперконденсатор, к выводу VRTC, можно поддерживать работу RTC даже при отключении основного питания. Вывод VRTC принимает напряжение от 1,6 до 3,6 вольт.