Руководство пользователя Arduino UNO R4 Minima
Узнайте, как настроить UNO R4 Minima — четвёртую ревизию нашей самой популярной и важной платы для разработки.
Arduino UNO R4 Minima — это плата для разработки с классическим форм-фактором UNO, построенная на микроконтроллере RA4M1, произведённом компанией Renesas. Теперь она оснащена 32 КБ оперативной памяти, тактовой частотой 48 МГц и портом USB-C.
Это первая плата UNO, использующая 32-битную архитектуру, тогда как предыдущие версии были основаны на 8-битной архитектуре AVR.
Эта статья является техническим справочником по вашей плате, в котором представлены различные компоненты платы, а также ресурсы для начала работы.
Даташит
Полный даташит доступен для загрузки в формате PDF по ссылке ниже:
Питание
Для питания UNO R4 Minima вы можете использовать либо кабель USB-C, либо вывод VIN.
Плата может питаться через вывод VIN, поддерживающий диапазон от 6 до 24 В. Вывод VIN также подключён к разъёму DC-jack (цилиндрический штекерный разъём).
При питании через вывод VIN вы используете встроенный стабилизатор напряжения для понижения напряжения до 5 В, что означает, что вывод 5 V может обеспечить ток до 1,2 А. Имейте в виду, что этот стабилизатор напряжения также питает остальную часть платы, включая микроконтроллер, светодиоды и другие компоненты.
Предупреждение
Внешние устройства с высоким потреблением тока (например, сервоприводы) никогда не следует питать через вывод 5 V. Он предназначен в основном для устройств с низким потреблением тока, таких как модули датчиков.
Если вы используете разъём USB-C, необходимо подавать питание 5 В.
При питании через USB вы полностью обходите встроенный стабилизатор напряжения. В этом случае вывод 5 V может обеспечить ток до 2 А без повреждения платы.
Пакет платы
UNO R4 Minima основана на пакете плат UNO R4.
Установка
UNO R4 Minima можно программировать через Arduino IDE, Arduino Cloud Editor или Arduino CLI.
Arduino IDE
Для использования платы в Arduino IDE необходимо установить последнюю версию пакета Arduino UNO R4 Boards из менеджера плат.
Подробнее читайте в руководстве Начало работы с UNO R4 Minima.
Arduino Cloud Editor
Cloud Editor — это онлайн-IDE, которая включает все официальные платы, без необходимости устанавливать пакет плат. Для использования Cloud Editor вам потребуется установить плагин Create на ваш компьютер.
Подробнее читайте в руководстве Начало работы с Cloud Editor.
Renesas RA4M1
UNO R4 Minima оснащена мощным и очень надёжным микроконтроллером Renesas, который также используется в UNO R4 WiFi. Микроконтроллеры Renesas известны своей высокой производительностью и надёжностью, включая встроенный набор периферийных устройств.
Эти периферийные устройства включают аналого-цифровые преобразователи, таймеры, блоки широтно-импульсной модуляции (ШИМ), интерфейсы связи (такие как UART, SPI и I2C) и многое другое.
Микроконтроллер на UNO R4 Minima
Память
Плата оснащена:
32 КБ SRAM
256 КБ Flash
8 КБ данных (EEPROM)
Выводы (пины)
UNO R4 Minima предоставляет доступ ко множеству различных выводов, и многие из них имеют специальные функции, которые будут описаны в следующих разделах этой статьи. Читайте далее, чтобы узнать, что вы можете с ними делать.
Ниже приведена полная таблица всех выводов ввода/вывода на UNO R4 Minima:
Вывод |
Тип |
Функция |
|---|---|---|
D0 |
Цифровой |
Приём UART |
D1 |
Цифровой |
Передача UART |
D2 |
Цифровой |
GPIO, прерывание |
D3 |
Цифровой |
GPIO, прерывание, ШИМ |
D4 |
Цифровой |
GPIO |
D5 |
Цифровой |
GPIO, ШИМ |
D6 |
Цифровой |
GPIO, ШИМ |
D7 |
Цифровой |
GPIO |
D8 |
Цифровой |
GPIO |
D9 |
Цифровой |
GPIO, ШИМ |
D10 |
Цифровой |
SPI (CS), GPIO, ШИМ |
D11 |
Цифровой |
SPI (CIPO), GPIO, ШИМ |
D12 |
Цифровой |
SPI (COPI), GPIO |
D13 |
Цифровой |
SPI (SCK), GPIO, встроенный светодиод |
A0 |
Аналоговый |
Аналоговый вход, DAC |
A1 |
Аналоговый |
Аналоговый вход, OPAMP + |
A2 |
Аналоговый |
Аналоговый вход, OPAMP - |
A3 |
Аналоговый |
Аналоговый вход, OPAMP OUT |
A4 |
Аналоговый |
Аналоговый вход, SDA* |
A5 |
Аналоговый |
Аналоговый вход, SCL* |
Примечание
Выводы A4 и A5 подключены к одной и той же шине I2C.
Аналоговые выводы
UNO R4 Minima имеет шесть аналоговых входов (A0-A5), которые можно считывать с помощью функции analogRead().
Вывод |
Тип |
Функция |
|---|---|---|
A0 |
Аналоговый |
Аналоговый вход, DAC |
A1 |
Аналоговый |
Аналоговый вход, OPAMP + |
A2 |
Аналоговый |
Аналоговый вход, OPAMP - |
A3 |
Аналоговый |
Аналоговый вход, OPAMP OUT |
A4 |
Аналоговый |
Аналоговый вход, SDA* |
A5 |
Аналоговый |
Аналоговый вход, SCL* |
Примечание
Выводы A4 и A5 подключены к одной и той же шине I2C.
value = analogRead(pin);
Опорное напряжение этих выводов по умолчанию составляет 5 В, но его можно изменить следующим образом:
analogReference(AR_DEFAULT)— опорное напряжение по умолчанию 5 ВanalogReference(AR_INTERNAL)— встроенное опорное напряжение 1,5 В
Разрешение по умолчанию установлено на 10 бит, но может быть обновлено до 12-битного и 14-битного разрешения. Для этого используйте следующий метод в setup() вашего скетча:
analogReadResolution(10)— по умолчаниюanalogReadResolution(12)analogReadResolution(14)
Чтобы узнать больше о возможностях АЦП UNO R4 Minima, ознакомьтесь с руководством по разрешению АЦП.
Выводы OPAMP
RA4M1 имеет встроенный операционный усилитель (OPAMP), который на UNO R4 Minima представлен следующими выводами:
Вывод |
OPAMP |
|---|---|
A1 |
OPAMP + |
A2 |
OPAMP - |
A3 |
OPAMP OUT |
ШИМ (PWM)
ШИМ (широтно-импульсная модуляция) позволяет цифровому выводу эмулировать аналоговый выход путём очень быстрого переключения между включённым и выключенным состояниями, что позволяет, помимо прочего, регулировать яркость светодиодов, подключённых к цифровым выводам.
UNO R4 Minima поддерживает ШИМ на выводах, отмеченных символом ~ на гребёнке. Официально поддерживаемые выводы:
Вывод |
RA4M1 |
Таймер |
|---|---|---|
D3 |
P104 |
GTIOC1B |
D5 |
P102 |
GTIOC2B |
D6 |
P106 |
GTIOC0B |
D9 |
P303 |
GTIOC7B |
D10 |
P112 |
GTIOC3B |
D11 |
P109 |
GTIOC1A |
Вы можете использовать их как аналоговые выходы с помощью функции:
analogWrite(pin, value);
По умолчанию разрешение составляет 8 бит (0-255). Вы можете использовать analogWriteResolution() для его изменения, поддерживается разрешение до 12 бит (0-4096).
analogWriteResolution(resolution);
Цифровые выводы
UNO R4 Minima имеет в общей сложности 14 цифровых выводов. Хотя некоторые из них служат другой цели и не должны использоваться как GPIO, если у вас есть другие свободные выводы.
Вывод |
Тип |
Функция |
|---|---|---|
D0 |
Цифровой |
Приём UART |
D1 |
Цифровой |
Передача UART |
D2 |
Цифровой |
GPIO, прерывание |
D3 |
Цифровой |
GPIO, прерывание, ШИМ |
D4 |
Цифровой |
GPIO |
D5 |
Цифровой |
GPIO, ШИМ |
D6 |
Цифровой |
GPIO, ШИМ |
D7 |
Цифровой |
GPIO |
D8 |
Цифровой |
GPIO |
D9 |
Цифровой |
GPIO, ШИМ |
D10 |
Цифровой |
SPI (CS), GPIO, ШИМ |
D11 |
Цифровой |
SPI (CIPO), GPIO, ШИМ |
D12 |
Цифровой |
SPI (COPI), GPIO |
D13 |
Цифровой |
SPI (SCK), GPIO, встроенный светодиод |
Кроме того, аналоговые выводы A0-A5 также могут использоваться как цифровые выводы. Обратите внимание, что A4/A5 зарезервированы для шины I2C.
Опорное напряжение всех цифровых выводов составляет 5 В.
Светодиоды (LED)
UNO R4 Minima имеет в общей сложности четыре светодиода, три из которых программируемые:
ON — светодиод питания, не программируется.
LED_BUILTIN— классический «встроенный светодиод», подключённый к выводу 13.LED_RX— светодиод с маркировкой «RX» на плате.LED_TX— светодиод с маркировкой «TX» на плате.
Для управления ими определите их как выходы и запишите желаемое состояние. Приведённый ниже пример мигает каждым светодиодом раз в секунду.
void setup(){
//определяем выводы как выходы
pinMode(LED_BUILTIN, OUTPUT);
pinMode(LED_RX, OUTPUT);
pinMode(LED_TX, OUTPUT);
}
void loop(){
//включаем все светодиоды
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(LED_RX, LOW);
digitalWrite(LED_TX, LOW);
delay(1000);
//выключаем все светодиоды
digitalWrite(LED_BUILTIN, LOW);
digitalWrite(LED_RX, HIGH);
digitalWrite(LED_TX, HIGH);
delay(1000);
}
DAC
Вывод DAC
UNO R4 Minima имеет ЦАП (цифро-аналоговый преобразователь) с разрешением до 12 бит, который может работать как настоящий аналоговый выход, что делает его ещё более функциональным, чем выводы ШИМ.
analogWrite(pin, value);
Этот вывод DAC имеет разрешение записи по умолчанию 8 бит. Это означает, что значения, записываемые на вывод, должны быть в диапазоне 0-255.
Однако вы можете изменить это разрешение записи при необходимости до 12 бит, и в этом случае значения, записываемые на вывод, должны быть в диапазоне 0-4096.
analogWriteResolution(12);
Чтобы узнать больше о возможностях DAC UNO R4 Minima, ознакомьтесь с руководством по DAC.
RTC
Часы реального времени (RTC) используются для измерения времени и полезны в любом приложении, связанном с отслеживанием времени.
Ниже приведён минимальный пример, показывающий, как получить дату и время из RTC:
#include "RTC.h"
void setup() {
Serial.begin(9600);
RTC.begin();
RTCTime mytime(30, Month::JUNE, 2023, 13, 37, 00, DayOfWeek::WEDNESDAY, SaveLight::SAVING_TIME_ACTIVE);
RTC.setTime(mytime);
}
void loop() {
RTCTime currenttime;
// Получаем текущее время из RTC
RTC.getTime(currenttime);
// Выводим дату (ДД/ММ/ГГГГ)
Serial.print(currenttime.getDayOfMonth());
Serial.print("/");
Serial.print(Month2int(currenttime.getMonth()));
Serial.print("/");
Serial.print(currenttime.getYear());
Serial.print(" - ");
// Выводим время (ЧЧ:ММ:СС)
Serial.print(currenttime.getHour());
Serial.print(":");
Serial.print(currenttime.getMinutes());
Serial.print(":");
Serial.println(currenttime.getSeconds());
delay(1000);
}
Чтобы узнать больше о возможностях RTC UNO R4 Minima, ознакомьтесь с руководством по RTC.
EEPROM
EEPROM, также называемая памятью «данных», — это тип памяти, который может сохранять данные даже после отключения питания платы. Arduino UNO R4 Minima имеет 8 КБ EEPROM.
EEPROM.write(address, val);
EEPROM.read(address);
Она имеет ограниченное количество циклов записи, что означает, что она лучше всего подходит для приложений, работающих преимущественно на чтение. Убедитесь, что вы никогда не используете write() внутри void loop(), потому что вы можете исчерпать все циклы записи микросхемы.
Подробнее читайте в руководстве по EEPROM.
Если вы хотите узнать больше о EEPROM, ознакомьтесь со статьёй об EEPROM Arduino UNO R4 Minima.
SPI
Выводы SPI
UNO R4 Minima оснащена интерфейсом последовательной периферийной связи (SPI). Шина (разъём) „SPI“ использует следующие выводы:
Вывод |
Тип |
|---|---|
D13 |
SCK |
D12 |
CIPO |
D11 |
COPI |
D10 |
CS |
Следующий пример показывает, как использовать SPI:
#include <SPI.h>
const int CS = 10;
void setup() {
pinMode(CS, OUTPUT);
SPI.begin();
digitalWrite(CS, LOW);
SPI.transfer(0x00);
digitalWrite(CS, HIGH);
}
void loop() {
}
I2C
Выводы I2C
I2C позволяет подключать несколько совместимых устройств последовательно, используя всего два вывода. Контроллер отправляет информацию через шину I2C на 7-битный адрес, что означает, что теоретический предел устройств I2C на одной линии составляет 128. Практически вы никогда не достигнете 128 устройств, прежде чем возникнут другие ограничения.
UNO R4 Minima имеет одну шину I2C, которая обозначена SCL и SDA. Они разделены с A4 (SDA) и A5 (SCL), что знакомо владельцам предыдущих версий UNO. Подтягивающие резисторы не установлены на печатной плате, но предусмотрены посадочные места для их монтажа при необходимости.
Отсутствие предустановленных подтягивающих резисторов имеет ряд преимуществ:
Поскольку выводы, используемые для I2C, напрямую подключены к A4 и A5 соответственно, они также могут использоваться как цифровые входы/выходы и аналоговые входы. Установка подтягивающих резисторов I2C на эти выводы ограничила бы их функциональность только I2C, так как по умолчанию они логически находились бы в состоянии
HIGH.Выбирая различные номиналы сопротивлений, вы можете определить, хотите ли вы работать с устройством I2C на 3,3 В или 5 В через эти выводы.
Выводы, используемые для I2C на UNO R4 Minima:
SDA — D18 или A4
SCL — D19 или A5
Для подключения устройств I2C вам потребуется подключить библиотеку Wire в начале вашего скетча.
#include <Wire.h>
В void setup() необходимо инициализировать библиотеку и порт I2C, который вы хотите использовать.
Wire.begin() //SDA & SDL
А чтобы записать что-либо на устройство, подключённое через I2C, можно использовать следующие команды:
Wire.beginTransmission(1); //начинаем передачу устройству 1
Wire.write(byte(0x00)); //отправляем байт инструкции
Wire.write(val); //отправляем значение
Wire.endTransmission(); //завершаем передачу
Подробнее о протоколе I2C читайте в руководстве по протоколу I2C.
USB Serial и UART
Плата UNO R4 Minima оснащена двумя отдельными аппаратными последовательными портами.
Один порт доступен через USB-C, и
один — через выводы RX/TX.
Это одно из немногих существенных отличий UNO R3 от UNO R4, поскольку UNO R3 имеет только один аппаратный последовательный порт, который подключён одновременно к USB-порту и выводам RX/TX на плате.
Нативный USB
Отправка последовательных данных на компьютер выполняется с помощью стандартного объекта Serial.
Serial.begin(9600);
Serial.print("hello world");
Для отправки и приёма данных через UART сначала необходимо установить скорость передачи данных (бод) в void setup().
UART
Выводы, используемые для UART на UNO R4 Minima:
Вывод |
Функция |
|---|---|
D0 |
RX (приём) |
D1 |
TX (передача) |
Для отправки и приёма данных через UART сначала необходимо установить скорость передачи данных (бод) в void setup(). Обратите внимание, что при использовании UART (выводы RX/TX) мы используем объект Serial1.
Serial1.begin(9600);
Для чтения входящих данных можно использовать цикл while для чтения каждого отдельного символа и добавления его в строку.
while(Serial1.available()){
delay(2);
char c = Serial1.read();
incoming += c;
}
А чтобы отправить что-либо, можно использовать следующую команду:
Serial1.write("Hello world!");
Serial Event
Метод serialEvent() поддерживается на старых ревизиях платы UNO, но не поддерживается на платах UNO R4 (или любых других новых платах Arduino).
Однако, поскольку этот метод используется только для обнаружения последовательных данных и выполнения функции, вы также можете использовать Serial.available() для определения поступления новых данных:
if(Serial.available() > 0) {
//код здесь
}
SerialUSB
UNO R4 Minima имеет расширенный набор методов Serial:
Serial.baud()— возвращает текущую скорость передачи данных (int).Serial.stopbits()— возвращает количество стоп-битов (int), используемых в обмене данными.Serial.paritytype()— возвращает тип чётности (int), используемый в обмене данными.Serial.numbits()— возвращает количество битов данных (int), используемых в обмене данными.Serial.dtr()— возвращает состояние сигнала Data Terminal Ready (DTR) (bool), а также устанавливает флаг ignore_dtr в true, если сигнал DTR активно используется.Serial.rts()— возвращает состояние сигнала Request to Send (RTS) (bool).
Полезные ссылки:
SerialUSB.h (Github).
USB HID
Эта плата может работать как HID-устройство (клавиатура/мышь) и отправлять нажатия клавиш или координаты на компьютер через нативный USB.
keyboard.press('W');
mouse.move(x,y);
Эта поддержка обеспечивается библиотеками keyboard и mouse, которые можно установить из менеджера библиотек в IDE.
Чтобы узнать больше о возможностях HID UNO R4 Minima, ознакомьтесь с руководством по HID.
Разъём SWD
Разъём SWD
На UNO R4 Minima доступна возможность отладки с использованием выводов разъёма SWD, предоставляющая расширенные функции отладки для более продвинутых пользователей.
Модуль CAN
Микроконтроллер RA4M1 на UNO R4 Minima имеет встроенный модуль CAN, соответствующий стандарту CAN 2.0A/CAN 2.0B.
Выводы CANRX и CANTX могут быть подключены к приёмопередатчику CAN, такому как микросхемы MCP2551 или TJA1050.
Вывод |
Функция |
|---|---|
D4 |
CANTX |
D5 |
CANRX |
Для обмена данными с другими устройствами CAN используется встроенная библиотека Arduino_CAN.
//устанавливаем скорость CAN и инициализируем библиотеку
//выбирайте из BR_125k, BR_250k, BR_500k, BR_1000k
CAN.begin(CanBitRate::BR_250k);
Создание CAN-сообщения и его отправка:
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);
Чтение входящего CAN-сообщения:
CanMsg const msg = CAN.read(); //чтение
Важно
Без приёмопередатчика CAN невозможно обмениваться данными с другими CAN-устройствами.
Загрузчик (Bootloader)
Если вам необходимо прошить загрузчик на UNO R4 Minima, выполните следующие шаги:
Шаг 1
Установите пакет плат UNO R4, как описано в руководстве по началу работы.
Шаг 2
Перейдите по пути: C:\Users\YourWindowsUserName\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.X\bootloaders\UNO_R4
Шаг 3
Найдите файл dfu_minima.hex.
Шаг 4
Установите программатор Renesas Flash Programmer (страница загрузки).
Предупреждение
Программатор Renesas Flash Programmer в настоящее время доступен только для Windows.
Шаг 5
Прошейте загрузчик с помощью программатора Renesas:
Выберите файл
dfu_minima.hex.Подключите вашу плату.
Замкните выводы BOOT и GND на UNO R4 Minima.
Перейдите на вкладку Connect Settings.
Выберите COM-порт в меню Tool > выберите порт, отображаемый в IDE.
Нажмите Start.
Совет
Для получения дополнительной информации ознакомьтесь с файлом README.md или страницей на GitHub.