接口与引脚说明
接线注意事项
- GPIO 逻辑电平是 3.3V。 外设输出信号如果超过允许范围,可能损坏引脚。
- A0 和 A1 不支持 5V 耐压。 接模拟信号前要特别注意最大输入电压。
- 建议先验证板载资源,再连接外部模块。 可先测试 RGB LED、LED 矩阵等板载资源,再连接传感器或执行器。
不要直接用 GPIO 驱动电机、继电器、大功率 LED 灯带等负载。这类负载应使用驱动模块,并根据模块要求单独供电、共地。
板载用户界面
板载用户界面无需额外接线,可用于功能验证、状态提示和项目调试。
Arduino App Lab 具体的使用方法参考 App Lab 使用说明
一 、LED 矩阵
LED Matrix 是 Arduino UNO Q 的主要特性之一。板载的 8×13 蓝色 LED 点阵 由 UNO Q 的 STM32 微控制器 管理。

该 LED 点阵用途灵活,可用于显示数据、状态指示、图标,也可以用于制作简单的动画或小游戏。 下面列出了一些 LED Matrix 的基础示例。
① 图像绘制
本示例用于在 LED Matrix 上绘制自定义图案,这里以Arduino Logo为例。
你可以将下面的示例代码复制到 Arduino App Lab 新建 App 的 Sketch 区域中。
点击展开示例代码
#include <Arduino_LED_Matrix.h>
uint8_t logo[104] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,1,1,1,0,0,0,1,1,1,0,0,
0,1,0,0,0,1,0,1,0,0,0,1,0,
1,0,0,0,0,0,1,0,0,1,0,0,1,
1,0,1,1,1,0,1,0,1,1,1,0,1,
1,0,0,0,0,0,1,0,0,1,0,0,1,
0,1,0,0,0,1,0,1,0,0,0,1,0,
0,0,1,1,1,0,0,0,1,1,1,0,0
};
Arduino_LED_Matrix matrix;
void setup() {
matrix.begin();
// Display the image
matrix.setGrayscaleBits(1);
matrix.draw(logo);
}
void loop() {
}



② 亮度调节
LED Matrix 支持 8 级灰度(3-bit),因此可以单独控制每颗 LED 的亮度。
可以使用 setGrayscaleBits(bits) 函数设置灰度位数,例如:
matrix.setGrayscaleBits(3); // 3-bit,对应 8 级亮度,范围为 0~7
常见的灰度转换工具通常使用 256 级灰度(8-bit)。LED Matrix 也支持使用该范围,并会自动进行映射。
matrix.setGrayscaleBits(8); // 8-bit,对应 256 级亮度,范围为 0~255
本示例用于展示 LED Matrix 支持的灰度亮度效果。
你可以将下面的示例代码复制到 Arduino App Lab 新建 App 的 Sketch 区域中。
点击展开示例代码
#include <Arduino_LED_Matrix.h>
uint8_t shades[104] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,3,3,3,
4,4,4,4,4,4,4,4,4,4,4,4,4,
5,5,5,5,5,5,5,5,5,5,5,5,5,
6,6,6,6,6,6,6,6,6,6,6,6,6,
7,7,7,7,7,7,7,7,7,7,7,7,7
};
Arduino_LED_Matrix matrix;
void setup() {
matrix.begin();
// display the image
matrix.setGrayscaleBits(3);
matrix.draw(shades);
}
void loop() {
}
在 Arduino App Lab 中点击 Run 按钮运行 App,即可看到 LED Matrix 显示不同亮度等级的图案。

二、 RGB LED
UNO Q 板载 4 颗 RGB LED。其中 2 颗由 Qualcomm 微处理器(MPU)控制,另外 2 颗由 STM32 微控制器(MCU)控制。

① MPU 控制的 RGB LED
其中 LED_1 和 LED_2 由 MPU 控制。
在 UNO Q 的 Linux 系统中,已提供专用的 LED 控制接口。用户可以通过命令行、SSH、PC终端的ADB连接或在单板计算机模式下使用Linux内置终端应用程序进行操作: /sys/class/leds 控制这些 LED
echo 1 | tee /sys/class/leds/red:user/brightness # Set HIGH / ON
echo 0 | tee /sys/class/leds/red:user/brightness # Set LOW / OFF

RGB LED 通道定义如下
LED_1:
- Red:
red:user - Green:
green:user - Blue:
blue:user
LED_2:
- Red:
red:panic - Green:
green:wlan - Blue:
blue:bt
LED 2 默认用于显示系统状态,例如 PANIC、WLAN、BT 等状态信息,但用户也可以手动控制。
除了命令行方式外,也可以通过 Python 脚本控制这些 LED。
点击展开python脚本控制方法
请先在 Arduino App Lab 中创建一个新的 App,然后将下面的脚本复制到 App 的 Python 区域中。
import time
from arduino.app_utils import App
LED1_R = "/sys/class/leds/red:user/brightness"
LED1_G = "/sys/class/leds/green:user/brightness"
LED1_B = "/sys/class/leds/blue:user/brightness"
LED2_R = "/sys/class/leds/red:panic/brightness"
LED2_G = "/sys/class/leds/green:wlan/brightness"
LED2_B = "/sys/class/leds/blue:bt/brightness"
def set_led_brightness(led_file, value):
try:
with open(led_file, "w") as f:
f.write(f"{value}\n")
except Exception as e:
print(f"Error writing to {led_file}: {e}")
# turn off all LEDs
set_led_brightness(LED1_R, 0)
set_led_brightness(LED1_G, 0)
set_led_brightness(LED1_B, 0)
set_led_brightness(LED2_R, 0)
set_led_brightness(LED2_G, 0)
set_led_brightness(LED2_B, 0)
def loop():
#blink the LED 1 RED segment
set_led_brightness(LED1_R, 1)
time.sleep(1)
set_led_brightness(LED1_R, 0)
time.sleep(1)
App.run(user_loop=loop)
您还可以使用专用的 Linux 模块来控制这些 LED。Leds具体如下:
# 参数分别对应于 R、G 和 B 颜色。
Leds.set_led1_color(1,0,0) # LED 1 in red
Leds.set_led2_color(1,0,0) # LED 2 in red
请记住在 Arduino App Lab 中创建一个新应用,然后将以下脚本复制粘贴到应用的 Python 部分:
import time
from arduino.app_utils import App
from arduino.app_utils import Leds
def loop():
# Blink LED 1 in red
# Turn on the LED red segment(1, 0, 0)
Leds.set_led1_color(1,0,0)
time.sleep(1)
# Turn off the LED (0, 0, 0)
Leds.set_led1_color(0,0,0)
time.sleep(1)
App.run(user_loop=loop)
② MCU控制的LED
其中 LED_3 和 LED_4 由 MCU 控制。
MCU 端的 RGB LED 可以像普通 GPIO 一样,通过 pinMode() 和 digitalWrite() 进行控制。
请按照以下步骤测试: 您可以将以下示例复制并粘贴到 Arduino 应用实验室中新应用的“sketch”部分。
点击展开查看完整代码
void setup(){
// Configure the pins as outputs
pinMode(LED3_R, OUTPUT);
pinMode(LED3_G, OUTPUT);
pinMode(LED3_B, OUTPUT);
// As they are active low, turn them OFF initially
digitalWrite(LED3_R, HIGH);
digitalWrite(LED3_G, HIGH);
digitalWrite(LED3_B, HIGH);
}
void loop(){
digitalWrite(LED3_R, LOW); // Turn ON red segment
digitalWrite(LED3_G, HIGH);
digitalWrite(LED3_B, HIGH);
delay(1000);
digitalWrite(LED3_R, HIGH);
digitalWrite(LED3_G, LOW); // Turn ON green segment
digitalWrite(LED3_B, HIGH);
delay(1000);
digitalWrite(LED3_R, HIGH);
digitalWrite(LED3_G, HIGH);
digitalWrite(LED3_B, LOW); // Turn ON blue segment
delay(1000);
}

RGB LED 通道定义如下
LED_3:
- Red:
LED3_R - Green:
LED3_G - Blue:
LED3_B
LED_4:
- Red:
LED4_R - Green:
LED4_G - Blue:
LED4_B
MCU 控制的 RGB LED 为 Active Low(低电平有效)。
也就是说:
LOW:LED 点亮HIGH:LED 熄灭
三、硬件调试 UART
UNO Q 提供了一个专用的 硬件调试UART 接口,可用于底层调试和系统诊断。 该接口可直接连接到 UNO Q 的 MPU 端调试串口,用于查看 Linux 系统启动日志、调试启动过程,或在系统异常时进行低层排查。该接口可通过 UNO Q 上的 JCTL 连接器访问。
- 波特率: 115200 bps
- 逻辑电平: 1.8V

该接口使用 1.8V 逻辑电平。
请务必使用支持 1.8V TTL 的 USB-to-TTL 串口工具。
不要直接连接 3.3V 或 5V 串口模块,否则可能损坏 UNO Q。
推荐使用 PL2303 USB UART Board Type-A V2 模块,使用时不要接跳线帽。
| PL2303 USB UART | UNO Q JCTL |
|---|---|
| VCCIO | 1.8V |
| GND | GND |
| TXD | RD |
| RXD | TX |
该调试控制台可查看 SPL、U-Boot 等 Bootloader 输出的底层启动日志,这些信息通常无法通过 SSH 等高层接口获取。它适合用于排查早期启动阶段的供电协商、硬件初始化等问题,也可以使用初始化时配置的 Linux 账号密码登录系统 Shell 进行调试。

电源按键
UNO Q 具有一个电源按钮,可用于重启主板。当按钮按住5秒以上时,主板的 Linux 部分将重新启动。

UNO Q 上电后会自动启动,无需按下电源按键。
USB-C 接口
Arduino UNO Q 配备一个 USB-C 接口,可用于供电、数据通信以及视频输出。

下表列出了用于扩展 UNO Q 功能的 USB-C 接口主要特性:
| 特性 | 描述 |
|---|---|
| USB 电源输入(Sink) | 5V DC / 3A(15W) |
| USB 标准 | USB 3.1 Gen 1(5Gbps) |
| USB-C 显示 | DisplayPort |
使用 USB-C 转接器、适配器或集线器时,还可以扩展以下功能:
| 特性 | 描述 |
|---|---|
| 视频输出 | 支持 HDMI 输出 |
| 视频输入 | 支持 USB 摄像头 |
| 音频 | 支持 USB 或 3.5mm 耳机,包括扬声器和麦克风 |
| 以太网 | 支持通过以太网连接互联网 |
| HID | 支持 USB 键盘、鼠标及其他 HID 设备 |
| 存储 | 支持外置 microSD 卡或 USB 存储设备 |