아두이노 우노 Q 내장 LED 매트릭스

Arduino UNO Q에는 보드에 내장된 8×13 LED 매트릭스가 있습니다 — 추가 하드웨어가 필요하지 않습니다! 이 튜토리얼에서는 매트릭스에 숫자와 문자를 표시하는 방법을 단계별로 배웁니다.

이 튜토리얼에서 배울 내용:

Arduino UNO Q 내장 LED 매트릭스

외부 LED 매트릭스 모듈 사용에 대해서는 아두이노 우노 Q - LED 매트릭스 튜토리얼을 참조하세요.

필요한 하드웨어

1×Arduino UNO Q 아마존
1×USB 케이블 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino Uno 쿠팡 | 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

내장 LED 매트릭스 정보

Arduino UNO Q에는 온보드 8×13 LED 매트릭스가 포함되어 있습니다 — 13개의 열과 8개의 LED 행(총 104개의 LED)으로 구성된 그리드입니다. STM32 MCU가 Arduino_LED_Matrix 라이브러리를 통해 직접 제어합니다.

주요 특징:

  • 크기: 13개 열 × 8개 행(총 104개 LED)
  • 배선 필요 없음: Arduino UNO Q 보드에 직접 납땜되어 있습니다
  • 제어: STM32 MCU에 의해 제어됨; Linux MPU는 직접 접근할 수 없습니다
  • 라이브러리: Arduino_LED_Matrix — 프레임 기반 렌더링 제공
  • 글꼴 지원: fonts.h 헬퍼 파일은 숫자 0–9 및 문자 A–Z에 대한 비트맵을 정의합니다

작동 방식:

  • 평면 frame[104] 배열이 픽셀 값(0 = 꺼짐, 1 = 켜짐)을 보유하며, frame[row * 13 + col]로 인덱싱됩니다
  • 프레임을 물리적 디스플레이에 전송하려면 matrix.draw(frame)을 호출합니다
  • fonts.h의 문자는 add_to_frame(char c, int pos)를 사용하여 프레임에 그려집니다. 여기서 pos는 시작 열(0–12)입니다
  • 단일 5픽셀 너비의 문자는 중앙 정렬을 위해 열 위치 4에 맞습니다; 두 문자는 위치 0과 7에 맞습니다
Arduino UNO Q 내장 LED 매트릭스 개요

MCU 코드 - 숫자 또는 문자 표시

아래 스케치는 숫자 0–9를 순차적으로 표시한 후 LED 매트릭스의 중앙에 문자 A–Z를 하나씩 표시합니다.

/* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-built-in-led-matrix */ #include "Arduino_LED_Matrix.h" #include "fonts.h" ArduinoLEDMatrix matrix; uint8_t frame[104] = { 0 }; // 8 rows × 13 columns, indexed as frame[row * 13 + col] void setup() { Serial.begin(115200); delay(1500); matrix.begin(); Serial.println("Arduino UNO Q built-in LED Matrix"); } void loop() { for (char c = '0'; c <= '9'; c++) { clear_frame(); add_to_frame(c, 4); display_frame(); delay(1000); } for (char c = 'A'; c <= 'Z'; c++) { clear_frame(); add_to_frame(c, 4); display_frame(); delay(1000); } } void clear_frame() { memset(frame, 0, sizeof(frame)); } void display_frame() { matrix.draw(frame); } void add_to_frame(char c, int pos) { int index = -1; if (c >= '0' && c <= '9') index = c - '0'; else if (c >= 'A' && c <= 'Z') index = c - 'A' + 10; else { Serial.println("WARNING: unsupported character"); return; } for (int row = 0; row < 8; row++) { uint8_t bits = fonts[index][row]; for (int col = 0; col < 5; col++) { if (pos + col < 13) frame[row * 13 + pos + col] |= (bits >> (4 - col)) & 1; } } }

빠른 단계

Arduino UNO Q를 처음 사용하나요? 계속하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따라 개발 환경을 준비하세요.

  • 연결: USB-C 케이블을 Arduino UNO Q에 연결하세요 — 추가 배선이 필요하지 않습니다.
  • Arduino App Lab 열기: Arduino App Lab을 시작하고 Arduino UNO Q를 감지할 때까지 기다리세요 — 첫 번째 시작 시 몇 분이 걸릴 수 있습니다.
  • 새 앱 만들기: 새 앱 만들기 버튼을 클릭하세요.
아두이노 app lab에서 새 앱 만들기
  • 앱에 이름을 지정하세요(예: BuiltInLedMatrixCharacter)
  • 만들기를 클릭하여 확인하세요.
  • 새 앱 내에서 생성된 폴더 및 파일 세트가 표시됩니다.
아두이노 app lab 앱 폴더 및 파일
  • sketch/sketch.ino 파일을 찾으세요 — MCU 스케치를 붙여넣을 위치입니다.
  • 또한 sketch/fonts.h 파일 위치를 찾으세요 — 이 이름으로 새 파일을 만들 것입니다.
  • 스케치 붙여넣기: 위의 MCU 코드를 복사하여 sketch/sketch.ino에 붙여넣으세요. 다른 파일은 기본값으로 유지하세요.
  • fonts.h 생성: 스케치 폴더에서 fonts.h라는 새 파일을 만들고 글꼴 정의를 붙여넣으세요.
  • /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-built-in-led-matrix */ uint8_t fonts[36][8] = { { // 0 0b01110, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b01110, }, { // 1 0b00110, 0b01110, 0b10110, 0b00110, 0b00110, 0b00110, 0b00110, 0b11111, }, { // 2 0b11110, 0b00001, 0b00010, 0b00100, 0b01000, 0b10000, 0b10000, 0b11111, }, { // 3 0b11110, 0b00001, 0b00010, 0b00100, 0b00110, 0b00001, 0b00001, 0b11110, }, { // 4 0b00010, 0b00110, 0b01010, 0b10010, 0b11111, 0b00010, 0b00010, 0b00010, }, { // 5 0b11111, 0b10000, 0b10000, 0b11110, 0b00001, 0b00001, 0b10001, 0b01110, }, { // 6 0b01110, 0b10000, 0b10000, 0b11110, 0b10001, 0b10001, 0b10001, 0b01110, }, { // 7 0b11111, 0b00001, 0b00010, 0b00100, 0b01000, 0b01000, 0b10000, 0b10000, }, { // 8 0b01110, 0b10001, 0b10001, 0b01110, 0b10001, 0b10001, 0b10001, 0b01110, }, { // 9 0b01110, 0b10001, 0b10001, 0b10001, 0b11110, 0b00001, 0b00001, 0b11110, }, { // A 0b00100, 0b01010, 0b10001, 0b11111, 0b10001, 0b10001, 0b10001, 0b10001, }, { // B 0b11110, 0b10001, 0b10001, 0b11110, 0b10001, 0b10001, 0b10001, 0b11110, }, { // C 0b01110, 0b10001, 0b10000, 0b10000, 0b10000, 0b10000, 0b10001, 0b01110, }, { // D 0b11110, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b11110, }, { // E 0b11111, 0b10000, 0b10000, 0b11110, 0b10000, 0b10000, 0b10000, 0b11111, }, { // F 0b11111, 0b10000, 0b10000, 0b11110, 0b10000, 0b10000, 0b10000, 0b10000, }, { // G 0b01110, 0b10001, 0b10000, 0b10000, 0b10111, 0b10001, 0b10001, 0b01110, }, { // H 0b10001, 0b10001, 0b10001, 0b11111, 0b10001, 0b10001, 0b10001, 0b10001, }, { // I 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b11111, }, { // J 0b11111, 0b00010, 0b00010, 0b00010, 0b00010, 0b00010, 0b10010, 0b01100, }, { // K 0b10001, 0b10010, 0b10100, 0b11000, 0b10100, 0b10010, 0b10001, 0b10001, }, { // L 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b10000, 0b11111, }, { // M 0b10001, 0b11011, 0b10101, 0b10101, 0b10001, 0b10001, 0b10001, 0b10001, }, { // N 0b10001, 0b10001, 0b11001, 0b10101, 0b10011, 0b10001, 0b10001, 0b10001, }, { // O 0b01110, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b01110, }, { // P 0b11110, 0b10001, 0b10001, 0b11110, 0b10000, 0b10000, 0b10000, 0b10000, }, { // Q 0b01110, 0b10001, 0b10001, 0b10001, 0b10001, 0b10101, 0b10010, 0b01101, }, { // R 0b11110, 0b10001, 0b10001, 0b11110, 0b10010, 0b10001, 0b10001, 0b10001, }, { // S 0b01110, 0b10001, 0b10000, 0b01110, 0b00001, 0b00001, 0b10001, 0b01110, }, { // T 0b11111, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, }, { // U 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b01110, }, { // V 0b10001, 0b10001, 0b10001, 0b10001, 0b01010, 0b01010, 0b00100, 0b00100, }, { // W 0b10001, 0b10001, 0b10001, 0b10101, 0b10101, 0b11011, 0b11011, 0b10001, }, { // X 0b10001, 0b10001, 0b01010, 0b00100, 0b00100, 0b01010, 0b10001, 0b10001, }, { // Y 0b10001, 0b10001, 0b01010, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, }, { // Z 0b11111, 0b00001, 0b00010, 0b00100, 0b01000, 0b10000, 0b10000, 0b11111, } };
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    add sketch 라이브러리 in 아두이노 app lab on Arduino UNO Q
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • 업로드: Arduino App Lab에서 Run 버튼을 클릭하여 STM32에 컴파일하고 업로드하세요.
    아두이노 app lab에서 run 버튼 클릭

    LED 매트릭스는 숫자 0–9를 순환한 후 문자 A–Z를 표시합니다!

    코드 설명

    제공된 코드에서는 add_to_frame(char c, int pos) 함수에 초점을 맞추는 것이 중요합니다. 이 함수는 두 개의 인수를 허용합니다:

    • char c: 표시할 문자입니다. 유효한 값의 범위는 0부터 9까지이며 A부터 Z까지입니다.
    • int pos: 문자가 표시되어야 할 열 위치입니다. 유효한 값의 범위는 0부터 12까지입니다.

    MCU 코드 - 동시에 두 개의 문자 표시

    다음 MCU 스케치는 LED 매트릭스에 동시에 두 개의 문자를 표시합니다.

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-built-in-led-matrix */ #include "Arduino_LED_Matrix.h" #include "fonts.h" ArduinoLEDMatrix matrix; uint8_t frame[104] = { 0 }; // 8 rows × 13 columns, indexed as frame[row * 13 + col] void setup() { Serial.begin(115200); delay(1500); matrix.begin(); Serial.println("Arduino UNO Q built-in LED Matrix"); } void loop() { clear_frame(); add_to_frame('A', 0); add_to_frame('5', 7); display_frame(); delay(1000); clear_frame(); add_to_frame('7', 0); add_to_frame('F', 7); display_frame(); delay(1000); } void clear_frame() { memset(frame, 0, sizeof(frame)); } void display_frame() { matrix.draw(frame); } void add_to_frame(char c, int pos) { int index = -1; if (c >= '0' && c <= '9') index = c - '0'; else if (c >= 'A' && c <= 'Z') index = c - 'A' + 10; else { Serial.println("WARNING: unsupported character"); return; } for (int row = 0; row < 8; row++) { uint8_t bits = fonts[index][row]; for (int col = 0; col < 5; col++) { if (pos + col < 13) frame[row * 13 + pos + col] |= (bits >> (4 - col)) & 1; } } }

    빠른 단계

    • 이전 섹션의 동일한 fonts.h 파일을 사용하세요.
    • 위의 스케치를 앱의 sketch/sketch.ino에 붙여넣고 Run 버튼을 클릭하세요.
    아두이노 app lab에서 run 버튼 클릭

    LED 매트릭스는 동시에 두 개의 문자를 표시합니다!

    Bridge: Linux + MCU

    이 섹션에서는 Arduino UNO Q의 두 프로세서를 모두 프로그래밍하여 Linux 측이 내장 LED 매트릭스를 원격으로 제어하는 방법을 보여줍니다:

    • LED 매트릭스는 MCU(STM32)에 의해 제어됩니다 — 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)

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-built-in-led-matrix */ #include "Arduino_LED_Matrix.h" #include "fonts.h"#include "Arduino_RouterBridge.h" ArduinoLEDMatrix matrix; uint8_t frame[104] = { 0 }; // 8 rows × 13 columns, indexed as frame[row * 13 + col] String last_displayed = ""; void clear_frame() { memset(frame, 0, sizeof(frame)); } void display_frame() { matrix.draw(frame); } void add_to_frame(char c, int pos) { int index = -1; if (c >= '0' && c <= '9') index = c - '0'; else if (c >= 'A' && c <= 'Z') index = c - 'A' + 10; else { Monitor.println("WARNING: unsupported character"); return; } for (int row = 0; row < 8; row++) { uint8_t bits = fonts[index][row]; for (int col = 0; col < 5; col++) { if (pos + col < 13) frame[row * 13 + pos + col] |= (bits >> (4 - col)) & 1; } } } String show_char(String arg) { if (arg.length() == 0) return "ERROR: no character provided"; char c = arg.charAt(0); if (!((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z'))) return "ERROR: unsupported character"; clear_frame(); add_to_frame(c, 4); display_frame(); last_displayed = String(c); Monitor.println("Show char: " + last_displayed); return "OK"; } String show_two(String arg) { if (arg.length() < 2) return "ERROR: need 2 characters"; char c1 = arg.charAt(0); char c2 = arg.charAt(1); if (!((c1 >= '0' && c1 <= '9') || (c1 >= 'A' && c1 <= 'Z'))) return "ERROR: unsupported first character"; if (!((c2 >= '0' && c2 <= '9') || (c2 >= 'A' && c2 <= 'Z'))) return "ERROR: unsupported second character"; clear_frame(); add_to_frame(c1, 0); add_to_frame(c2, 7); display_frame(); last_displayed = String(c1) + String(c2); Monitor.println("Show two: " + last_displayed); return "OK"; } String clear_matrix(String arg) { clear_frame(); display_frame(); last_displayed = ""; Monitor.println("Matrix cleared"); return "OK"; } String get_status(String arg) { if (last_displayed.length() == 0) return "Matrix: cleared"; return "Matrix shows: " + last_displayed; } void setup() { Bridge.begin(); Monitor.begin(); matrix.begin(); Bridge.provide_safe("show_char", show_char); Bridge.provide_safe("show_two", show_two); Bridge.provide_safe("clear_matrix", clear_matrix); Bridge.provide("get_status", get_status); Monitor.println("Arduino UNO Q built-in LED Matrix Bridge ready"); } void loop() {}

    Python 코드 (Bridge)

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-built-in-led-matrix */ from arduino.app_utils import * import time def loop(): # Show single characters 0–9 for c in "0123456789": result = Bridge.call("show_char", c) print(result) time.sleep(1) # Show single characters A–Z for c in "ABCDEFGHIJKLMNOPQRSTUVWXYZ": result = Bridge.call("show_char", c) print(result) time.sleep(1) # Show two characters side by side result = Bridge.call("show_two", "HI") print(result) time.sleep(2) # Get status result = Bridge.call("get_status") print(result) time.sleep(1) # Clear the matrix result = Bridge.call("clear_matrix") print(result) time.sleep(1) App.run(user_loop=loop)

    빠른 단계

    • 연결: USB-C 케이블을 Arduino UNO Q에 연결하세요 — 추가 배선이 필요하지 않습니다.
    • Arduino App Lab 열기: Arduino App Lab을 시작하고 보드가 감지될 때까지 기다리세요.
    • 새 앱 만들기: 새 앱 만들기를 클릭하고 BuiltInLedMatrixBridge라는 이름을 지정한 후 만들기를 클릭하세요.
    • MCU 스케치 붙여넣기: 위의 MCU Bridge 코드를 복사하여 sketch/sketch.ino에 붙여넣으세요.
    • fonts.h 생성: 스케치 폴더에 fonts.h 파일을 추가하고 이전 섹션과 동일한 글꼴 정의를 사용하세요.
    • Python 코드 붙여넣기: 위의 Python Bridge 코드를 복사하여 앱의 Python 파일에 붙여넣으세요.
    • 업로드: Arduino App Lab에서 Run 버튼을 클릭하세요.
    아두이노 app lab에서 run 버튼 클릭

    App Lab 콘솔 출력

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    [2026-04-29 09:00:01] Arduino UNO Q built-in LED Matrix Bridge ready [2026-04-29 09:00:03] Show char: A [2026-04-29 09:00:06] Show two: HI [2026-04-29 09:00:09] Matrix cleared
    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 09:00:02] OK [2026-04-29 09:00:05] OK [2026-04-29 09:00:08] Matrix shows: HI [2026-04-29 09:00:09] OK

    Telegram

    Telegram을 사용하여 어디에서든 내장 LED 매트릭스를 제어하세요 — 전화에서 행렬에 숫자 또는 문자를 표시하세요!

    MCU 스케치: 이전 Bridge 섹션의 동일한 MCU 스케치를 유지하세요.

    Python 코드 (Telegram)

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-built-in-led-matrix */ from arduino.app_utils import * import requests import time TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" CHAT_ID = "YOUR_CHAT_ID" last_update_id = 0 def get_updates(): global last_update_id url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/getUpdates" params = {"offset": last_update_id + 1, "timeout": 5} try: response = requests.get(url, params=params, timeout=10) data = response.json() if data["ok"]: return data["result"] except Exception as e: print(f"Error getting updates: {e}") return [] def send_message(chat_id, text): url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage" payload = {"chat_id": chat_id, "text": text} try: requests.post(url, data=payload, timeout=10) except Exception as e: print(f"Error sending message: {e}") def loop(): global last_update_id print("Waiting for Telegram messages...") updates = get_updates() for update in updates: last_update_id = update["update_id"] if "message" not in update: continue message = update["message"] chat_id = message["chat"]["id"] text = message.get("text", "").strip() print(f"Received: {text}") if text == "/start": send_message(chat_id, "Arduino UNO Q Built-in LED Matrix Bot\n" "/char A - Show one character (0-9 or A-Z)\n" "/two AB - Show two characters side by side\n" "/clear - Clear the matrix\n" "/status - Get current display status") elif text.startswith("/char "): arg = text[6:].strip().upper() if len(arg) == 0: send_message(chat_id, "Usage: /char A") else: result = Bridge.call("show_char", arg[0]) send_message(chat_id, result) elif text.startswith("/two "): arg = text[5:].strip().upper() if len(arg) < 2: send_message(chat_id, "Usage: /two AB (need 2 characters)") else: result = Bridge.call("show_two", arg[:2]) send_message(chat_id, result) elif text == "/clear": result = Bridge.call("clear_matrix") send_message(chat_id, result) elif text == "/status": result = Bridge.call("get_status") send_message(chat_id, result) else: send_message(chat_id, "Unknown command. Send /start for help.") App.run(user_loop=loop)

    빠른 단계

    • YOUR_TELEGRAM_BOT_TOKEN을 BotFather에서 받은 실제 봇 토큰으로 바꾸세요.
    • YOUR_CHAT_ID를 Telegram 채팅 ID로 바꾸세요.
    • 이 Python 코드를 앱의 Python 파일(동일한 MCU 스케치 및 fonts.h 유지)에 붙여넣으세요.
    • Run 버튼을 클릭하세요. Telegram을 열고 봇에 명령을 보내세요.

    App Lab 콘솔 출력

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 09:15:00] Waiting for Telegram messages... [2026-04-29 09:15:08] Received: /char A [2026-04-29 09:15:20] Received: /two HI [2026-04-29 09:15:35] Received: /clear
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /char A
    10:15 AM ✓✓
    OK
    10:16 AM
    /two HI
    10:17 AM ✓✓
    OK
    10:18 AM
    /status
    10:19 AM ✓✓
    Matrix shows: HI
    10:20 AM
    /clear
    10:21 AM ✓✓
    OK
    10:22 AM

    OpenClaw 통합

    이 튜토리얼을 OpenClaw에 적용하려면 아두이노 우노 Q - OpenClaw 튜토리얼의 지침을 참조하세요

    프로젝트 아이디어

    Arduino UNO Q의 내장 LED 매트릭스를 사용하여 많은 창의적인 프로젝트를 만들 수 있습니다:

    • 원격 스코어보드: Telegram을 통해 행렬에 점수 숫자를 보냅니다 — 어디에서든 현재 게임 점수를 표시하세요
    • 알림 표시기: 새로운 Telegram 메시지 또는 센서 경고가 도착하면 행렬에 문자를 깜박입니다
    • 카운트다운 타이머: Bridge를 통해 Python에서 제어하는 행렬에 9부터 0까지의 카운트다운을 표시합니다
    • 일일 문자 봇: Linux MPU에서 cron 작업을 사용하여 매일 다른 문자를 행렬에 표시하도록 Python 스크립트를 예약합니다
    • 2자 상태 표시: Telegram 명령에 의해 트리거되는 행렬에 2자 상태 코드(예: "OK", "HI", "GO")를 표시합니다

    도전해보세요

    Arduino UNO Q의 내장 LED 매트릭스로 더 나아가기 위해 준비가 되셨나요? 이러한 도전을 시도해 보세요:

    • 쉬움: /scroll Telegram 명령을 추가하여 단어를 행렬 전체에 문자 단위로 스크롤합니다(구성 가능한 지연 포함).
    • 중간: /count Telegram 명령을 생성하여 행렬에서 0부터 9까지 자동으로 계산합니다(각 숫자 사이에 500ms 지연).
    • 고급: Telegram 제어 스크롤 텍스트 마퀴를 구축합니다 — 다중 문자 문자열을 수락하고 프레임 조작을 사용하여 12열 디스플레이 전체에서 한 번에 한 열씩 스크롤합니다.