아두이노 우노 Q 원형 동그란 TFT LCD 디스플레이

Arduino UNO Q 프로젝트에 세련된 원형 스크린을 추가하고 싶으신가요? 이 초보자 친화적인 튜토리얼은 Arduino UNO Q와 함께 1.28인치 원형 동그란 TFT LCD 디스플레이를 사용하는 방법 — 단계별로 보여줍니다.

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

Arduino UNO Q round circular tft lcd 디스플레이

필요한 하드웨어

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

원형 동그란 TFT LCD 디스플레이 소개

1.28인치 원형 동그란 TFT LCD 디스플레이는 GC9A01 드라이버 기반의 컴팩트하고 눈에 띄는 스크린입니다.

주요 사양 및 기능:

  • 스크린 모양: 원형 — 240x240 픽셀, 원형 보기 영역
  • 크기: 1.28인치 대각선
  • 드라이버 IC: GC9A01 — DIYables_TFT_Round 라이브러리 사용
  • 인터페이스: SPI (4선) — 5개 신호선만 필요
  • 색상: 전체 RGB 색상 (65K 색상)
  • 전원: 3.3V 또는 5V 호환
  • 최적 용도: 웨어러블, 미터, 대시보드, 아날로그 시계 디스플레이 및 컴팩트 UI 패널

원형 디스플레이는 SPI 인터페이스를 사용하여 Arduino UNO Q의 MCU 하드웨어 SPI 핀에 연결합니다.

1.28 inch round circular tft lcd 사용법 핀아웃

핀 설명:

  • VCC: 전원 공급 — 3.3V에 연결
  • GND: 그라운드
  • SCL: SPI 클록 — D13에 연결
  • SDA: SPI MOSI (데이터) — D11에 연결
  • DC: 데이터/명령 선택 — D9에 연결
  • CS: 칩 선택 — D10에 연결
  • RST: 리셋 — D8에 연결

배선도

표시된 대로 1.28인치 원형 TFT LCD를 Arduino UNO Q의 MCU 핀에 연결합니다:

Arduino UNO Q round circular tft lcd 디스플레이 연결 배선도

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

원형 TFT 핀 Arduino UNO Q MCU 핀 설명
VCC 3.3V 전원 공급
GND GND 그라운드
SCL D13 SPI 클록
SDA D11 SPI MOSI
DC D9 데이터/명령
CS D10 칩 선택
RST D8 리셋

주의: VCC에 3.3V 사용 — GC9A01 디스플레이는 3.3V 로직에서 작동합니다. MCU의 SPI 핀은 Arduino UNO Q에서 3.3V를 출력합니다.

Arduino UNO Q 코드

Arduino UNO Q는 두 개의 프로세서가 함께 작동합니다:

  • STM32 MCU는 SPI를 통해 원형 TFT 디스플레이를 구동 — 모든 텍스트와 그래픽을 렌더링합니다
  • Qualcomm MPU는 Debian Linux를 실행하고 Wi-Fi, Python 및 클라우드 연결을 처리합니다
  • 이 섹션에서는 MCU만 프로그래밍됩니다 — Linux 측은 유휴 상태입니다. 나중 섹션은 두 프로세서가 브릿지를 통해 함께 작동하는 방법을 보여줍니다.

아래 스케치는 원형 동그란 TFT 스크린에 환영 텍스트를 표시합니다.

/* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-round-circular-tft-lcd-display */ #include <DIYables_TFT_Round.h> #define WHITE DIYables_TFT::colorRGB(255, 255, 255) #define BLACK DIYables_TFT::colorRGB(0, 0, 0) #define BLUE DIYables_TFT::colorRGB(0, 0, 255) #define RED DIYables_TFT::colorRGB(255, 0, 0) #define PIN_RST 8 // MCU pin connected to RST on round TFT display #define PIN_DC 9 // MCU pin connected to DC on round TFT display #define PIN_CS 10 // MCU pin connected to CS on round TFT display DIYables_TFT_GC9A01_Round TFT_display(PIN_RST, PIN_DC, PIN_CS); void setup() { TFT_display.begin(); TFT_display.setRotation(0); TFT_display.fillScreen(BLACK); TFT_display.setTextColor(WHITE); TFT_display.setTextSize(2); TFT_display.setCursor(50, 80); TFT_display.println("Arduino UNO Q"); TFT_display.setTextColor(BLUE); TFT_display.setTextSize(2); TFT_display.setCursor(40, 115); TFT_display.println("Round TFT LCD"); TFT_display.setTextColor(RED); TFT_display.setTextSize(1); TFT_display.setCursor(70, 150); TFT_display.println("DIYables.io"); } void loop() { }

빠른 단계

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

  • 연결: 배선도에 표시된 대로 원형 TFT LCD를 Arduino UNO Q에 배선하고 USB-C 케이블을 연결합니다.
  • Arduino App Lab 열기: Arduino App Lab을 실행하고 Arduino UNO Q를 감지할 때까지 기다립니다 — 첫 실행 시 몇 분이 걸릴 수 있습니다.
  • 새 앱 만들기: Create New App 버튼을 클릭합니다.
create new app in 아두이노 app lab on Arduino UNO Q
  • 앱에 이름을 지정합니다. 예: DIYables_RoundTftLcd
  • Create를 클릭하여 확인합니다.
  • 새 앱 내에 생성된 폴더 및 파일 집합이 표시됩니다.
아두이노 app lab app folders and files on Arduino UNO Q
  • sketch/sketch.ino 파일을 찾습니다 — MCU 스케치를 붙여넣을 위치입니다.
  • 스케치 붙여넣기: 위의 MCU 코드를 복사하여 해당 스케치 파일에 붙여넣습니다. 다른 파일은 기본값으로 유지합니다.
    • 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
    • Search for DIYables TFT Round created by DIYables.io 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
    DIYables TFT Round DIYables.io

    This library is designed for the DIYables 1.28-inch Round Circular TFT LCD Display Module and is compatible with a wide range of hardware platforms, including Uno R3, Uno R4 WiFi/Minima, Mega, Giga, Due, ESP32, ESP8266, and more.

    1.1.0
    Install
    More Info
    • 업로드: Arduino App Lab의 Run 버튼을 클릭하여 STM32에 컴파일 및 업로드합니다.
    click run 버튼 in 아두이노 app lab on Arduino UNO Q

    원형 동그란 TFT 디스플레이가 밝아지고 다양한 색상으로 "Arduino UNO Q", "Round TFT LCD" 및 "DIYables.io"를 표시합니다!

    • 전문 팁: 원형 스크린은 240x240 픽셀입니다. setCursor() 위치를 원형 보기 영역 내에 유지합니다 — 모서리 근처의 텍스트는 원형 프레임에 의해 잘릴 수 있습니다.

    브릿지: Linux + MCU

    이 섹션은 Arduino UNO Q의 두 프로세서를 모두 프로그래밍하여 Linux 측에서 원형 TFT 디스플레이를 원격으로 제어하는 방법을 보여줍니다:

    • 원형 TFT 디스플레이는 MCU (STM32)에 SPI로 연결됩니다 — MCU가 모든 출력을 렌더링합니다
    • MPU는 원형 TFT를 직접 구동할 수 없습니다Bridge.call()을 통해 MCU에 콘텐츠를 표시하도록 요청해야 합니다
    • MPU에는 Wi-Fi가 있습니다 — 전체 Debian Linux를 실행하여 인터넷에 연결하고 원격으로 디스플레이 업데이트를 트리거할 수 있습니다
    • Arduino_RouterBridge는 두 프로세서 간 RPC 통신을 활성화합니다
    • ⚠️ /dev/ttyHS1 (Linux) 및 Serial1 (MCU)는 라우터에서 예약됨 — 사용자 코드에서 열지 마세요

    간단히 말해: MCU가 원형 TFT 디스플레이 제어 → MPU가 디스플레이 명령 전송 → MPU가 인터넷을 통해 어디서나 화면 업데이트 가능.

    MCU 코드 (브릿지)

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-round-circular-tft-lcd-display */ #include "Arduino_RouterBridge.h" #include <DIYables_TFT_Round.h> #define WHITE DIYables_TFT::colorRGB(255, 255, 255) #define BLACK DIYables_TFT::colorRGB(0, 0, 0) #define BLUE DIYables_TFT::colorRGB(0, 0, 255) #define PIN_RST 8 #define PIN_DC 9 #define PIN_CS 10 DIYables_TFT_GC9A01_Round TFT_display(PIN_RST, PIN_DC, PIN_CS); String current_text = ""; void display_text(String text) { current_text = text; TFT_display.fillScreen(BLACK); TFT_display.setTextColor(BLUE); TFT_display.setTextSize(2); TFT_display.setCursor(40, 100); TFT_display.println(text); Monitor.println("Round TFT: " + text); } void clear_tft() { current_text = ""; TFT_display.fillScreen(BLACK); Monitor.println("Round TFT cleared"); } String get_status() { if (current_text == "") return "Round TFT is clear"; return "Round TFT shows: " + current_text; } void setup() { Bridge.begin(); Monitor.begin(9600); TFT_display.begin(); TFT_display.setRotation(0); TFT_display.fillScreen(BLACK); Bridge.provide_safe("display_text", display_text); Bridge.provide_safe("clear_tft", clear_tft); Bridge.provide("get_status", get_status); } void loop() { }

    Python 코드 (브릿지)

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-round-circular-tft-lcd-display */ from arduino.app_utils import * import time def loop(): result = Bridge.call("display_text", "Hello UNO Q") print(result) time.sleep(3) result = Bridge.call("display_text", "Round TFT") print(result) time.sleep(3) result = Bridge.call("clear_tft") print(result) time.sleep(2) result = Bridge.call("display_text", "DIYables.io") print(result) time.sleep(3) result = Bridge.call("get_status") print(result) time.sleep(2) App.run(user_loop=loop)

    빠른 단계

    • 연결: 원형 TFT LCD를 Arduino UNO Q에 배선하고 USB-C 케이블을 연결합니다.
    • Arduino App Lab 열기: Arduino App Lab을 실행하고 보드가 감지될 때까지 기다립니다.
    • 새 앱 만들기: Create New App을 클릭하고 DIYables_RoundTftLcdBridge 이름을 지정한 후 Create를 클릭합니다.
    • MCU 스케치 붙여넣기: 위의 MCU 브릿지 코드를 복사하여 sketch/sketch.ino에 붙여넣습니다.
    • Python 코드 붙여넣기: 위의 Python 브릿지 코드를 복사하여 앱의 Python 파일에 붙여넣습니다.
    • 업로드: Arduino App Lab의 Run 버튼을 클릭합니다.
    click run 버튼 in 아두이노 app lab on Arduino UNO Q

    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] Round TFT: Hello UNO Q [2026-04-29 09:00:04] Round TFT: Round TFT [2026-04-29 09:00:07] Round TFT cleared [2026-04-29 09:00:09] Round TFT: DIYables.io
    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 09:00:01] OK [2026-04-29 09:00:04] OK [2026-04-29 09:00:07] OK [2026-04-29 09:00:09] OK [2026-04-29 09:00:11] Round TFT shows: DIYables.io

    텔레그램

    텔레그램을 사용하여 어디서나 원형 TFT 디스플레이를 제어합니다. 휴대전화에서 메시지를 보내면 원형 디스플레이가 실시간으로 업데이트됩니다.

    MCU 스케치: 이전 브릿지 섹션의 MCU 스케치와 동일하게 유지합니다.

    Python 코드 (텔레그램)

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-round-circular-tft-lcd-display */ from arduino.app_utils import * import requests import time TELEGRAM_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_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: pass return [] def send_message(text): url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage" requests.post(url, data={"chat_id": CHAT_ID, "text": text}) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] message = update.get("message", {}) text = message.get("text", "") if text.startswith("/display "): display_text = text[9:].strip() result = Bridge.call("display_text", display_text) send_message(result) elif text == "/clear": result = Bridge.call("clear_tft") send_message(result) elif text == "/status": result = Bridge.call("get_status") send_message(result) elif text == "/start": send_message("Commands:\n/display <text> - Show text on round TFT\n/clear - Clear the display\n/status - Get current display status") App.run(user_loop=loop)

    빠른 단계

    • YOUR_TELEGRAM_BOT_TOKEN을 BotFather의 실제 봇 토큰으로 바꿉니다.
    • YOUR_CHAT_ID를 텔레그램 채팅 ID로 바꿉니다.
    • 이 Python 코드를 앱의 Python 파일에 붙여넣습니다 (MCU 스케치와 동일하게 유지).
    • Run 버튼을 클릭합니다. 텔레그램을 열고 봇에 명령을 보냅니다.

    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:10] Received: /display Hello World [2026-04-29 09:15:22] Received: /status [2026-04-29 09:15:38] 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
    /display Hello World
    10:15 AM ✓✓
    OK
    10:16 AM
    /status
    10:17 AM ✓✓
    Round TFT shows: Hello World
    10:18 AM
    /clear
    10:19 AM ✓✓
    OK
    10:20 AM
    /status
    10:21 AM ✓✓
    Round TFT is clear
    10:22 AM

    OpenClaw

    You can adapt the OpenClaw to this tutorial by refering the instruction on 아두이노 우노 Q - OpenClaw Tutorial

    프로젝트 아이디어

    Arduino UNO Q를 포함한 원형 TFT 디스플레이를 사용하여 많은 창의적이고 유용한 프로젝트를 구축할 수 있습니다:

    • 아날로그 시계 페이스: Wi-Fi를 통해 가져온 NTP 시간을 사용하여 원형 디스플레이에 실시간 아날로그 시계를 표시
    • 웨어러블 센서 모니터: 컴팩트한 원형 스크린에 실시간 심박수, 온도 또는 스텝 수를 표시
    • 스마트 속도계: 센서에서 가져온 현재 속도 또는 RPM을 표시하는 원형 게이지 스타일 디스플레이 구축
    • 원격 알림 배지: 책상이나 벽에 장착된 원형 스크린에 들어오는 텔레그램 알림 또는 사용자 정의 아이콘 표시
    • 날씨 미니 디스플레이: 온라인 API에서 가져온 현재 온도 및 날씨 아이콘을 원형 TFT에 표시

    도전해보세요

    Arduino UNO Q의 원형 동그란 TFT 디스플레이로 더 나아갈 준비가 되셨나요? 다음 도전을 시도해보세요:

    • 쉬움: DIYables_TFT_Round 드로잉 함수를 사용하여 원형 디스플레이에 채워진 원과 채워진 직사각형을 그리도록 MCU 스케치를 수정합니다.
    • 중간: 브릿지를 사용하여 Python에서 두 개의 값 (레이블과 숫자)을 보내고 MCU가 원형 스크린에 레이블 아래에 큰 중앙 숫자로 표시하도록 합니다.
    • 고급: 텔레그램 제어 아날로그 시계 페이스 구축: Python 측이 NTP 시간을 가져와 시간/분 값을 브릿지를 통해 MCU에 보내고, MCU가 원형 TFT 디스플레이에 시침을 그립니다.