아두이노 우노 R3(Arduino UNO R3)는 아두이노를 처음 시작하는 사용자라면 누구나 한 번쯤 사용해 보는 대표적인 입문용 보드이다. 하지만 8비트 ATmega328P 마이크로컨트롤러(MCU)를 사용하기 때문에 2KB에 불과한 SRAM, 16MHz의 낮은 클럭 속도로 인해 복잡한 연산이나 큰 데이터를 다루기 어렵고, 무선 통신 기능도 없어 IoT 프로젝트에는 별도의 Wi-Fi 모듈을 추가해야 하는 한계가 있었다.
아두이노 우노 R4 WiFi(Arduino UNO R4 WiFi)는 기존 우노의 보드 크기와 핀 배치, 5V 동작 전압을 그대로 유지하면서 MCU를 32비트 Renesas RA4M1(Arm Cortex-M4)으로 바꾸고, ESP32-S3 무선 모듈과 12x8 LED 매트릭스까지 탑재한 보드이다. 이 글에서는 우노 R4 WiFi의 주요 사양을 기존 우노 R3와 비교하고, 개발환경 설치 방법과 LED 매트릭스 및 Wi-Fi 예제 코드를 소개한다.

1. 아두이노 우노 R4 WiFi (Arduino UNO R4 WiFi) 소개
아두이노 우노 R4는 2023년에 출시된 우노 시리즈의 4번째 개정판으로, 무선 기능이 없는 UNO R4 Minima와 무선 기능이 포함된 UNO R4 WiFi 두 가지 모델로 구성된다. 두 모델 모두 메인 MCU로 Renesas RA4M1을 사용하며, UNO R4 WiFi는 여기에 Espressif의 ESP32-S3-MINI-1 모듈을 보조 프로세서로 추가하여 Wi-Fi와 블루투스(BLE) 통신을 지원한다.
사용자가 작성한 스케치는 RA4M1에서 실행되고, 무선 통신이 필요할 때 RA4M1이 ESP32-S3에 명령을 보내 처리하는 구조이다. 따라서 사용자는 기존 우노와 같은 방식으로 코드를 작성하면서 WiFiS3 라이브러리만으로 간단하게 무선 기능을 사용할 수 있다.
특징:
- 기존 우노 R3와 동일한 보드 크기(68.6 x 53.4 mm)와 헤더 배치를 유지하여 기존 실드(Shield)를 대부분 그대로 사용할 수 있다.
- 동작 전압 5V를 유지하여 기존 5V 센서와 모듈을 레벨 시프터 없이 연결할 수 있다.
- 보드 위에 12x8(96개) 빨간색 LED 매트릭스가 있어 별도 부품 없이 글자나 아이콘을 표시할 수 있다.
- USB 단자가 USB-B에서 USB-C로 바뀌었고, 외부 전원 입력(VIN) 범위가 6~24V로 넓어졌다.
2. 주요 사양 및 UNO R3와의 비교
기존 8비트 기반 우노 R3와 32비트로 업그레이드된 우노 R4 WiFi의 핵심 사양 차이는 다음과 같다.
| 항목 | 기존 아두이노 우노 (UNO R3) | 신형 아두이노 우노 R4 WiFi |
| 메인 MCU | ATmega328P (8-bit AVR) | Renesas RA4M1 (32-bit Arm Cortex-M4) |
| 클럭 속도 | 16 MHz | 48 MHz (3배 향상) |
| 플래시 메모리 | 32 KB | 256 KB (8배 증가) |
| SRAM | 2 KB | 32 KB (16배 증가) |
| EEPROM | 1 KB | 8 KB (데이터 플래시) |
| 무선 통신 | 없음 | Wi-Fi 2.4GHz, BLE 5 (ESP32-S3) |
| 동작 전압 | 5V | 5V |
| 입력 전압 (VIN) | 7~12V | 6~24V |
| 디지털 / 아날로그 핀 | 14개 / 6개 | 14개 / 6개 |
| ADC 해상도 | 10-bit | 최대 14-bit |
| DAC | 없음 | 12-bit 1채널 (A0) |
| 핀당 출력 전류 | 20 mA | 8 mA |
| USB 단자 | USB-B | USB-C |
| 부가 기능 | 없음 | 12x8 LED 매트릭스, Qwiic 커넥터, CAN, RTC, OP-AMP, USB HID |
클럭은 3배, SRAM은 16배 늘어나 R3에서 메모리 부족으로 실행이 어려웠던 그래픽 디스플레이 제어나 여러 센서를 동시에 다루는 코드도 여유 있게 실행할 수 있다. 반면 핀당 출력 전류는 20mA에서 8mA로 줄어들었으므로 사용 시 주의가 필요하다.


3. PIN 배열 및 연결
우노 R4 WiFi는 기존 우노 R3와 동일한 위치에 디지털 핀(D0~D13), 아날로그 핀(A0~A5), 전원 핀(5V, 3.3V, GND, VIN)이 배치되어 있어 기존 회로와 실드를 그대로 연결할 수 있다.
[이미지: 아두이노 우노 R4 WiFi 핀 배열도]
1) 디지털 및 아날로그 핀
- 디지털 입출력 핀 14개(D0~D13) 중 PWM 출력이 가능한 핀은 D3, D5, D6, D9, D10, D11이다.
- 아날로그 입력 핀 6개(A0~A5)는 analogReadResolution() 함수로 최대 14비트(0~16383)까지 해상도를 높일 수 있다.
- A0 핀은 12비트 DAC 출력을 지원하여 PWM이 아닌 실제 아날로그 전압을 출력할 수 있다.
2) 통신 핀
- UART: D0(RX), D1(TX)는 Serial1으로 사용한다. R3와 달리 USB 시리얼(Serial)과 분리되어 있어 업로드 중에도 충돌이 없다.
- I2C: A4(SDA), A5(SCL) 핀은 Wire로 사용하고, 보드 측면의 Qwiic 커넥터는 Wire1로 사용한다.
- SPI: D11(COPI), D12(CIPO), D13(SCK)과 ICSP 헤더를 사용한다.
- CAN: D4(CAN TX), D5(CAN RX) 핀을 지원하며, 실제 CAN 버스에 연결하려면 별도의 CAN 트랜시버 모듈이 필요하다.
3) 추가 커넥터 및 핀
- Qwiic 커넥터: 3.3V 전용 I2C 커넥터로, 납땜 없이 Qwiic/STEMMA QT 규격 센서를 케이블 하나로 연결할 수 있다.
- VRTC 핀: 코인 배터리를 연결하면 메인 전원이 꺼져도 내장 RTC(실시간 시계)가 계속 동작한다.
- OFF 핀: GND에 연결하면 보드의 전원 레귤레이터를 끌 수 있다.
4. 개발환경 설치 (보드 패키지)
우노 R4 WiFi는 기존 AVR 보드와 다른 보드 패키지를 사용하므로, 아두이노 IDE에서 보드 패키지를 먼저 설치해야 한다.
- 아두이노 IDE 2.x를 실행한 후 툴 -> 보드 -> 보드 매니저를 선택한다.
- 검색창에 "UNO R4"를 입력하고 Arduino UNO R4 Boards를 찾아 설치 버튼을 누르면 된다.
- 설치가 끝나면 툴 -> 보드 -> Arduino UNO R4 Boards -> Arduino UNO R4 WiFi를 선택한다.
- USB-C 케이블로 보드를 PC에 연결하고 툴 -> 포트에서 해당 COM 포트를 선택해 주면 된다.
Wi-Fi 기능을 사용하는 WiFiS3 라이브러리와 LED 매트릭스를 제어하는 Arduino_LED_Matrix 라이브러리는 보드 패키지에 포함되어 있으므로 별도로 설치할 필요가 없다.
5. 예제 코드
1) LED 매트릭스에 하트 표시하기
보드에 내장된 12x8 LED 매트릭스에 하트 모양을 표시하는 기초 예제이다.
#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() {
matrix.begin();
matrix.renderBitmap(heart, 8, 12);
}
void loop() {
}
- 1 Line: LED 매트릭스 제어용 Arduino_LED_Matrix 라이브러리를 포함한다.
- 3 Line: LED 매트릭스 객체(matrix)를 생성한다.
- 5~14 Line: 8행 12열 배열로 하트 모양을 정의한다. 1은 LED 켜짐, 0은 꺼짐을 의미한다.
- 17 Line: LED 매트릭스를 초기화한다.
- 18 Line: renderBitmap() 함수로 배열 내용을 LED 매트릭스에 표시한다.
코드를 업로드하면 보드의 LED 매트릭스에 하트 모양이 표시되는 것을 확인할 수 있다.
[이미지: LED 매트릭스에 하트가 표시된 모습]
2) Wi-Fi로 LED 켜고 끄기 (웹서버)
우노 R4 WiFi를 공유기에 연결하고, 같은 네트워크의 스마트폰이나 PC 웹브라우저에서 보드의 내장 LED(D13)를 켜고 끄는 예제이다.
#include <WiFiS3.h>
char ssid[] = "공유기이름";
char pass[] = "비밀번호";
WiFiServer server(80);
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
while (WiFi.begin(ssid, pass) != WL_CONNECTED) {
Serial.println("Wi-Fi 연결 중...");
delay(3000);
}
server.begin();
Serial.print("접속 주소: http://");
Serial.println(WiFi.localIP());
}
void loop() {
WiFiClient client = server.available();
if (!client) return;
String request = client.readStringUntil('\r');
if (request.indexOf("GET /on") >= 0) digitalWrite(LED_BUILTIN, HIGH);
if (request.indexOf("GET /off") >= 0) digitalWrite(LED_BUILTIN, LOW);
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html; charset=utf-8");
client.println("Connection: close");
client.println();
client.println("<h2>UNO R4 WiFi LED 제어</h2>");
client.println("<a href=\"/on\">LED 켜기</a> | <a href=\"/off\">LED 끄기</a>");
delay(10);
client.stop();
}
- 1 Line: 우노 R4 WiFi 전용 Wi-Fi 라이브러리인 WiFiS3를 포함한다.
- 3~4 Line: 연결할 공유기의 이름(SSID)과 비밀번호를 입력한다. 우노 R4 WiFi는 2.4GHz 대역만 지원하므로 5GHz 전용 공유기에는 연결되지 않는다.
- 6 Line: 80번 포트를 사용하는 웹서버 객체를 생성한다.
- 12~15 Line: Wi-Fi 연결에 성공할 때까지 3초 간격으로 연결을 시도한다.
- 16~18 Line: 웹서버를 시작하고, 공유기에서 할당받은 IP 주소를 시리얼 모니터에 출력한다.
- 22~23 Line: 접속한 클라이언트(웹브라우저)가 없으면 loop()를 다시 시작한다.
- 25~27 Line: 요청 주소에 /on이 있으면 LED를 켜고, /off가 있으면 LED를 끈다.
- 29~34 Line: 웹브라우저에 LED 켜기/끄기 링크가 있는 간단한 HTML 페이지를 보낸다.
- 36 Line: 응답을 보낸 후 연결을 종료한다.
코드를 업로드한 후 시리얼 모니터(115200bps)를 열면 다음과 같이 접속 주소가 출력된다. 같은 공유기에 연결된 스마트폰에서 이 주소로 접속하여 링크를 누르면 보드의 LED가 켜지고 꺼지는 것을 확인할 수 있다.
[이미지: 시리얼 모니터에 출력된 IP 주소와 스마트폰 접속 화면]
6. 주요 용도 및 주의사항
추천 주요 용도:
- IoT 입문 프로젝트: 별도의 Wi-Fi 모듈 없이 온습도 모니터링, 원격 릴레이 제어, 웹서버 등을 바로 만들 수 있어 IoT 입문용으로 적합하다.
- 기존 우노 프로젝트 업그레이드: 우노 R3로 만든 프로젝트에 무선 기능을 추가하거나 메모리 부족 문제를 해결할 때 보드만 교체하여 사용할 수 있다.
- 교육용 보드: LED 매트릭스와 Qwiic 커넥터 덕분에 추가 부품 없이도 출력 결과를 바로 확인할 수 있어 수업용으로 유리하다.
- USB HID 장치: 키보드나 마우스로 PC에 인식되므로 매크로 키패드 같은 입력장치를 만들 수 있다.
사용 시 주의사항:
- 핀당 출력 전류 8mA: R3(20mA)보다 출력 전류가 크게 낮으므로 LED는 저항값을 높여 연결하고, 모터나 릴레이 코일 같은 부하는 반드시 트랜지스터나 드라이버 모듈을 거쳐 구동해야 한다.
- Qwiic 커넥터는 3.3V 전용: 헤더의 I2C 핀(A4, A5)은 5V 로직이고 Qwiic 커넥터는 3.3V이므로, 센서의 동작 전압에 맞는 쪽을 사용해야 한다.
- AVR 전용 코드 호환성: AVR 레지스터를 직접 다루는 코드나 일부 AVR 전용 라이브러리(예: 타이머 직접 제어)는 동작하지 않을 수 있으므로 라이브러리의 지원 보드를 확인해야 한다.
- 2.4GHz Wi-Fi 전용: 5GHz 대역 Wi-Fi에는 연결할 수 없다.
구매좌표:
Arduino UNO R4 WIFI ABX00087 Renesas RA4M1 Development board imported from Italy New original authentic Italian import - AliExpr
Smarter Shopping, Better Living! Aliexpress.com
www.aliexpress.com
'각종 부품 사용방법 > 프로세서' 카테고리의 다른 글
| 아두이노 나노 R4 사양과 주요 용도(Nano R3 비교) (0) | 2026.10.20 |
|---|---|
| 아두이노 UNO Q 소개와 사용방법 (0) | 2026.10.08 |
| ESP32 타입 종류와 용도 가이드: 내 프로젝트에 맞는 보드 선택법 (0) | 2026.09.19 |
| 아두이노 나노 33 시리즈 비교 (0) | 2021.08.23 |
| 아두이노 나노 33 BLE Sense 사양과 사용법 (0) | 2021.08.22 |











