아두이노 우노 Q LED 매트릭스
Arduino UNO Q에서 LED 매트릭스 패널에 스크롤하는 텍스트나 애니메이션 메시지를 표시하고 싶으신가요? 이 튜토리얼에서 단계별로 알려드립니다.
이 튜토리얼에서 배우게 될 내용:
- FC-16 MAX7219 LED 매트릭스가 무엇이고 어떻게 작동하는지
- LED 매트릭스를 Arduino UNO Q에 연결하는 방법
- 텍스트, 숫자 및 스크롤 메시지를 표시하도록 MCU(C/C++ Arduino 코드)를 프로그래밍하는 방법
- Bridge를 통해 Linux측(Python) 및 MCU측(C/C++)을 프로그래밍하여 디스플레이를 원격으로 제어하는 방법
- LED 매트릭스를 제어하기 위해 Arduino UNO Q에 Telegram 메시지를 보내는 방법
- LED 매트릭스와 함께 Arduino UNO Q에서 OpenClaw를 사용하는 방법

Arduino UNO Q에 내장된 12×8 LED 매트릭스의 경우 아두이노 우노 Q - 내장 LED 매트릭스 튜토리얼을 참조하세요.
필요한 하드웨어
| 1 | × | Arduino UNO Q | 아마존 | |
| 1 | × | USB Cable for Arduino Uno Q | 아마존 | |
| 1 | × | FC-16 LED Matrix 32x8 | 쿠팡 | 아마존 | |
| 1 | × | FC-16 LED Matrix 8x8 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | 5V Power Adapter | 아마존 | |
| 1 | × | DC 커넥터 전원 연결 잭 플러그 소켓 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Sensors/Servo Expansion Shield for Arduino Uno | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 케이스 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 |
LED 매트릭스 소개

Arduino와 함께 사용되는 가장 일반적인 LED 매트릭스는 MAX7219 기반 LED 매트릭스입니다. 주요 특징:
- 각 블록에는 하나의 MAX7219 칩으로 제어되는 8×8 격자의 64개 LED가 포함되어 있습니다
- 블록의 주요 유형: 일반 모듈과 FC-16 모듈
- 모듈은 단일 블록(8×8) 또는 다중 블록(16×8, 32×8, 64×8) 구성으로 제공됩니다
- 블록들은 데이지 체인으로 연결됩니다 — 데이터가 한 블록에서 다음 블록으로 전달됩니다
- 제어는 SPI를 통해 수행됩니다: CLK, MOSI(DIN) 및 하나의 CS 핀
- MD_Parola 및 MD_MAX72xx 라이브러리가 모든 복잡한 작업을 처리합니다
이 튜토리얼에서는 4개 블록으로 이루어진 32×8 FC-16 LED 매트릭스(4 × 8×8 = 32열, 8행)를 사용합니다. 코드는 다양한 크기에 맞게 조정할 수 있습니다.
핀아웃

각 블록에는 두 세트의 핀이 있습니다 — 하나의 입력 그룹(Arduino UNO Q 또는 이전 블록에 연결) 및 하나의 출력 그룹(다음 블록에 연결):
- VCC → 5V 전원 공급(외부 — Arduino UNO Q의 5V 핀을 대형 디스플레이에 사용하지 마세요)
- GND → GND
- DIN → SPI MOSI (Arduino UNO Q MCU의 D11)
- CLK → SPI SCK (Arduino UNO Q MCU의 D13)
- CS → 임의의 디지털 핀(이 튜토리얼에서는 D10)
배선 다이어그램
※ 주의:
LED 매트릭스는 최대 밝기에서 최대 1A를 소비할 수 있습니다. Arduino UNO Q의 5V 핀 대신 항상 외부 5V 전원 공급을 사용하세요. Arduino UNO Q와 LED 매트릭스는 동일한 5V 어댑터와 동일한 GND를 공유할 수 있습니다.
Arduino UNO Q MCU는 SPI 핀을 사용하여 LED 매트릭스에 연결됩니다: D13(SCK) 및 D11(MOSI). CS에는 임의의 디지털 핀을 사용할 수 있습니다(이 튜토리얼에서는 D10).
LED 매트릭스가 단 하나의 블록으로 구성된 경우:
- 입력 핀 그룹을 Arduino UNO Q MCU에 연결합니다.
- 출력 핀 그룹은 연결하지 않습니다.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
LED 매트릭스가 이미 여러 블록으로 조립된 경우:
- 입력 핀 그룹을 Arduino UNO Q MCU에 연결합니다.
- 출력 핀 그룹은 연결하지 않습니다.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
LED 매트릭스를 여러 개의 개별 블록에서 조립하는 경우:
- 첫 번째 블록의 입력 핀 그룹을 Arduino UNO Q MCU에 연결합니다.
- 각 블록의 출력 핀 그룹을 다음 블록의 입력 핀 그룹에 연결합니다.
- 마지막 블록의 출력 핀 그룹은 연결하지 않습니다.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
| LED 매트릭스 | Arduino UNO Q MCU |
|---|---|
| VCC | 외부 5V 전원 공급 |
| GND | GND (Arduino UNO Q GND와 공유) |
| DIN | D11 (MOSI) |
| CLK | D13 (SCK) |
| CS | D10 |
Arduino UNO Q 코드
Arduino UNO Q에는 함께 작동하는 두 개의 프로세서가 있습니다:
- STM32 MCU는 MD_Parola 라이브러리를 사용하여 SPI를 통해 LED 매트릭스를 직접 구동합니다
- Qualcomm MPU는 Debian Linux를 실행하고 Wi-Fi, Python 및 클라우드 연결을 처리합니다
- 이 섹션에서는 MCU만 프로그래밍됩니다 — Linux측은 유휴 상태로 유지됩니다. 나중의 섹션에서는 두 프로세서가 Bridge를 통해 함께 작동하는 방법을 보여줍니다.
아래 스케치는 정적 텍스트(좌/중앙/우/반전), 숫자 표시 및 스크롤 메시지를 보여줍니다:
빠른 단계
Arduino UNO Q를 처음 사용하시나요? 진행하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따라 개발 환경을 준비하세요.
- 연결: 위의 배선 다이어그램에 표시된 대로 LED 매트릭스를 Arduino UNO Q MCU에 연결합니다. 행렬에 외부 5V 어댑터로 전원을 공급하고 GND를 Arduino UNO Q GND에 연결합니다.
- Arduino App Lab 열기: Arduino App Lab을 시작하고 Arduino UNO Q를 감지할 때까지 기다립니다.
- 새 앱 생성: 새 앱 생성 버튼을 클릭합니다.

- 앱에 이름을 지정합니다. 예: LedMatrix
- 생성을 클릭하여 확인합니다.

- sketch/sketch.ino 파일을 찾습니다 — MCU 스케치를 여기에 붙여넣습니다.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Search for MD_Parola created by majicDesigns and click the Install button.
- Search for MD_MAX72XX created by majicDesigns and click the Install button.
- 업로드: Arduino App Lab의 실행 버튼을 클릭하여 STM32로 컴파일하고 업로드합니다.

LED 매트릭스가 텍스트 정렬을 순환하고, 숫자를 표시하고, "Hello, DIYables!"이 디스플레이 전체에 스크롤됩니다!
Arduino UNO Q LED 매트릭스 코드 – 스크롤 텍스트
LED 매트릭스 디스플레이에 너무 길어서 맞지 않는 긴 메시지를 표시해야 할 때 스크롤 텍스트 효과를 사용할 수 있습니다.
이 코드는 메시지가 LED 매트릭스 디스플레이 전체에서 연속적으로 스크롤되도록 하는 방법을 보여줍니다.
더 많은 텍스트 효과를 보려면 MD_Parola 라이브러리 참조로 이동하세요.
Bridge: Linux + MCU
이 섹션에서는 Linux측이 LED 매트릭스를 원격으로 제어할 수 있도록 Arduino UNO Q의 두 프로세서를 모두 프로그래밍하는 방법을 보여줍니다:
- LED 매트릭스는 MCU(STM32)에 SPI를 통해 연결됩니다 — MCU가 디스플레이를 직접 구동합니다
- MPU는 LED 매트릭스에 직접 액세스할 수 없습니다 — Bridge.call()를 통해 MCU에 명령을 보내야 합니다
- MPU에는 Wi-Fi가 있습니다 — 전체 Debian Linux를 실행하며 인터넷에 연결하고 디스플레이 업데이트를 원격으로 트리거할 수 있습니다
- Arduino_RouterBridge는 두 프로세서 간 RPC 통신을 활성화합니다
- ⚠️ /dev/ttyHS1(Linux) 및 Serial1(MCU)은 라우터에 의해 예약됨 — 사용자 코드에서 이들을 열지 마세요
요약: MCU가 LED 매트릭스를 구동 → MPU가 텍스트 명령을 보냄 → MPU가 인터넷을 통해 어디서나 디스플레이를 업데이트할 수 있습니다.
MCU 코드 (Bridge)
Python 코드 (Bridge)
빠른 단계
- 연결: 배선 다이어그램에 표시된 대로 LED 매트릭스를 Arduino UNO Q에 연결합니다. 외부 5V 전원을 사용합니다.
- Arduino App Lab 열기: Arduino App Lab을 시작하고 보드가 감지될 때까지 기다립니다.
- 새 앱 생성: 새 앱 생성을 클릭하고 LedMatrixBridge라는 이름을 지정한 후 생성을 클릭합니다.
- MCU 스케치 붙여넣기: 위의 MCU Bridge 코드를 복사하여 sketch/sketch.ino에 붙여넣습니다.
- Python 코드 붙여넣기: 위의 Python Bridge 코드를 복사하여 앱의 Python 파일에 붙여넣습니다.
- 업로드: Arduino App Lab의 실행 버튼을 클릭합니다.

App Lab 콘솔 출력
Telegram
Telegram을 사용하여 어디서나 LED 매트릭스를 제어하세요 — 휴대폰에서 맞춤 메시지나 숫자를 패널에 표시합니다!
MCU 스케치: 이전 Bridge 섹션의 동일한 MCU 스케치를 유지합니다.
Python 코드 (Telegram)
빠른 단계
- YOUR_TELEGRAM_BOT_TOKEN을 BotFather에서 얻은 실제 봇 토큰으로 바꿉니다.
- YOUR_CHAT_ID를 Telegram 채팅 ID로 바꿉니다.
- 이 Python 코드를 앱의 Python 파일에 붙여넣습니다(동일한 MCU 스케치 유지).
- 실행 버튼을 클릭합니다. Telegram을 열고 봇에 명령을 보냅니다.
App Lab 콘솔 출력
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on 아두이노 우노 Q - OpenClaw Tutorial
프로젝트 아이디어
Arduino UNO Q와 함께 LED 매트릭스를 사용하여 많은 창의적인 프로젝트를 만들 수 있습니다:
- 원격 알림판: Telegram을 통해 LED 매트릭스 패널에 맞춤 메시지를 보냅니다 — 사무실 디스플레이, 상점 간판 또는 이벤트 공지에 이상적입니다
- 라이브 점수 디스플레이: LED 매트릭스에 스포츠 점수 또는 게임 결과를 표시하고 Bridge를 통해 Linux측에서 실시간으로 업데이트합니다
- 카운트다운 타이머: Python이 0에 도달할 때까지 매초 행렬 디스플레이를 카운트다운하고 업데이트합니다
- IoT 날씨 디스플레이: Linux MPU에서 날씨 데이터를 가져오고 LED 매트릭스 전체에 온도와 상태를 자동으로 스크롤합니다
- Telegram 빌보드: 그룹 채팅의 모든 사람이 공유 Telegram 봇을 통해 행렬 패널에 표시될 메시지를 보낼 수 있도록 합니다
자신을 도전하세요
Arduino UNO Q에서 LED 매트릭스로 더 나아가실 준비가 되셨나요? 이 도전을 시도해보세요:
- 쉬움: /number <value> Telegram 명령을 추가하여 ledMatrix.print(int)를 사용하여 LED 매트릭스에 정수를 표시합니다.
- 중간: /scroll <text> Bridge 함수를 추가하여 스크롤 애니메이션을 시작합니다 — MCU loop()의 백그라운드 플래그를 사용하여 스크롤이 활성 중일 때 displayAnimate() 및 displayReset()을 호출합니다.
- 고급: Telegram이 제어하는 뉴스 티커를 만듭니다 — Telegram을 통해 여러 메시지를 수락하고 큐에 넣고, 각각을 행렬에서 스크롤 마르키로 표시합니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.