아두이노 우노 Q 74HC595 4자리 7세그먼트 디스플레이
Arduino UNO Q를 사용하여 컴팩트한 4자리 LED 디스플레이에 숫자를 표시하고 싶나요? 이 초급자 친화적인 튜토리얼은 Arduino UNO Q에서 74HC595 4자리 7세그먼트 디스플레이를 사용하는 방법을 단계별로 보여줍니다.
이 튜토리얼에서 다음을 배우게 됩니다:
- 74HC595 4자리 7세그먼트 디스플레이가 무엇이고 어떻게 작동하는지
- 74HC595 디스플레이를 Arduino UNO Q에 배선하는 방법
- MCU (C/C++ Arduino 코드)를 프로그래밍하여 정수, 부동소수점 및 카운트 값을 표시하는 방법
- Linux 측 (Python) 및 MCU 측 (C/C++)을 모두 프로그래밍하여 Bridge를 통해 디스플레이를 원격으로 제어하는 방법
- Arduino UNO Q에 Telegram 메시지를 보내서 7세그먼트 디스플레이를 업데이트하는 방법
- Arduino UNO Q에서 OpenClaw를 사용하여 7세그먼트 디스플레이를 제어하는 방법

필요한 하드웨어
| 1 | × | Arduino UNO Q | 아마존 | |
| 1 | × | USB Cable for Arduino Uno Q | 아마존 | |
| 1 | × | 74HC595 4-digit 7-segment 디스플레이 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Sensors/Servo Expansion Shield for Arduino Uno | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 케이스 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 |
74HC595 4자리 7세그먼트 디스플레이 소개
74HC595 기반 4자리 7세그먼트 디스플레이는 4개의 LED 자리 모듈을 시프트 레지스터와 결합하므로 MCU 핀 3개만으로 모든 4자리를 제어할 수 있습니다.
주요 스펙 및 기능:
- 자리: 4개 자리, 각각 7개의 LED 세그먼트 + 소수점
- 시프트 레지스터: 74HC595 — 3개의 와이어를 사용하여 데이터를 직렬로 시프트
- 인터페이스: SPI와 유사 (SCLK, RCLK, DIO) — 간단하고 효율적
- 전원: 3.3V 또는 5V 호환
- 라이브러리: DIYables_4Digit7Segment_74HC595 — 정수, 부동소수점, 텍스트, 온도 및 시간 표시 지원
- 멀티플렉싱: 라이브러리가 자리 멀티플렉싱을 처리합니다 — 디스플레이를 새로 고침 상태로 유지하려면 display.loop()을 자주 호출하세요
핀아웃

| 핀 | 기능 | 설명 |
|---|---|---|
| SCLK (SH_CP) | 직렬 클록 | 데이터 시프트를 위한 클록 신호 |
| RCLK (ST_CP) | 레지스터 클록 | 출력으로 데이터를 푸시하기 위한 래치 |
| DIO (DS) | 데이터 입력 | 시프트 레지스터로 공급되는 직렬 데이터 |
| VCC | 전원 | 3.3V 또는 5V 공급 |
| GND | 접지 | 공통 접지 |
배선 다이어그램
그림과 같이 74HC595 4자리 7세그먼트 디스플레이를 Arduino UNO Q MCU에 연결합니다:

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
| 74HC595 디스플레이 핀 | Arduino UNO Q MCU 핀 | 설명 |
|---|---|---|
| SCLK | D7 | 직렬 클록 |
| RCLK | D6 | 레지스터 클록 / 래치 |
| DIO | D5 | 데이터 입력 |
| VCC | 5V | 전원 공급 |
| GND | GND | 접지 |
Arduino UNO Q 코드
Arduino UNO Q에는 함께 작동하는 두 개의 프로세서가 있습니다:
- STM32 MCU는 74HC595 7세그먼트 디스플레이를 디지털 핀을 통해 직접 구동합니다 — 모든 멀티플렉싱을 처리합니다
- Qualcomm MPU는 Debian Linux를 실행하고 Wi-Fi, Python 및 클라우드 연결을 처리합니다
- 이 섹션에서는 MCU만 프로그래밍됩니다 — Linux 측은 유휴 상태입니다. 이후 섹션은 두 프로세서가 Bridge를 통해 함께 작동하는 방법을 보여줍니다.
아래 스케치는 7세그먼트 디스플레이에서 0부터 9999까지 카운트하며, 매초 증가합니다.
중요: 항상 Arduino loop() 함수 내에서 display.loop()을 호출하세요. 라이브러리는 이를 사용하여 4개의 자리를 모두 멀티플렉싱합니다. delay()를 직접 사용하지 마세요 — 대신 display.delay()를 사용하세요.
빠른 단계
Arduino UNO Q를 처음 사용하신가요? 진행하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따라 개발 환경을 준비하세요.
- 연결: 그림과 같이 74HC595 디스플레이를 Arduino UNO Q에 배선한 후 USB-C 케이블을 꽂으세요.
- Arduino App Lab 열기: Arduino App Lab을 시작하고 Arduino UNO Q를 감지할 때까지 기다리세요 — 첫 시작 시 몇 분이 걸릴 수 있습니다.
- 새 앱 만들기: Create New App 버튼을 클릭하세요.

- 앱에 이름을 지정합니다 (예: DIYables_7Seg74HC595).
- Create를 클릭하여 확인합니다.
- 새 앱 내에 폴더 및 파일 세트가 생성됩니다.

- 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 DIYables_4Digit7Segment_74HC595 created by DIYables.io and click the Install button.
- 업로드: Arduino App Lab의 Run 버튼을 클릭하여 STM32로 컴파일 및 업로드합니다.

7세그먼트 디스플레이가 0부터 9999까지 카운트하기 시작하며, 매초 한 번씩 증가합니다!
- 팁: 디스플레이에 깨진 문자가 표시되면 네 번째 생성자 인수로 false를 전달해 보세요: DIYables_4Digit7Segment_74HC595 display(SCLK_PIN, RCLK_PIN, DIO_PIN, false) — 공통 양극 (기본값)에서 공통 음극 모드로 전환합니다.
Bridge: Linux + MCU
이 섹션은 Arduino UNO Q의 두 프로세서를 모두 프로그래밍하여 Linux 측이 7세그먼트 디스플레이를 원격으로 제어하는 방법을 보여줍니다:
- 74HC595 7세그먼트 디스플레이는 MCU (STM32)에 연결됩니다 — MCU가 모든 자리 멀티플렉싱을 구동합니다
- MPU는 디스플레이를 직접 제어할 수 없습니다 — Bridge.call()을 통해 MCU에 값 업데이트를 요청해야 합니다
- MPU에는 Wi-Fi가 있습니다 — 전체 Debian Linux를 실행하며, 인터넷에 연결하고 원격으로 디스플레이 업데이트를 푸시할 수 있습니다
- Arduino_RouterBridge는 두 프로세서 간의 RPC 통신을 사용합니다
- ⚠️ /dev/ttyHS1 (Linux) 및 Serial1 (MCU)은 라우터에서 예약됨 — 사용자 코드에서 절대 열지 마세요
간단히 말해서: MCU가 7세그먼트 디스플레이를 구동 → MPU가 값을 전송 → MPU가 인터넷을 통해 어디서나 디스플레이를 업데이트할 수 있습니다.
MCU 코드 (Bridge)
참고: Bridge 스케치에서 display.loop()은 Arduino loop() 내에서 호출되어 디스플레이를 새로 고쳐진 상태로 유지합니다 — 멀티플렉싱된 7세그먼트 디스플레이에 필요하며 Bridge 통신에 영향을 주지 않습니다.
Python 코드 (Bridge)
빠른 단계
- 연결: 74HC595 디스플레이를 Arduino UNO Q에 배선하고 USB-C 케이블을 꽂으세요.
- Arduino App Lab 열기: Arduino App Lab을 시작하고 보드가 감지될 때까지 기다리세요.
- 새 앱 만들기: Create New App을 클릭하고 DIYables_7Seg74HC595Bridge로 이름을 지정한 후 Create를 클릭합니다.
- MCU 스케치 붙여넣기: 위의 MCU Bridge 코드를 복사하여 sketch/sketch.ino에 붙여넣으세요.
- Python 코드 붙여넣기: 위의 Python Bridge 코드를 복사하여 앱의 Python 파일에 붙여넣으세요.
- 업로드: Arduino App Lab의 Run 버튼을 클릭합니다.

App Lab 콘솔 출력
Telegram
어디서나 Telegram을 사용하여 74HC595 7세그먼트 디스플레이를 제어하세요. 휴대폰에서 숫자를 보내면 디스플레이가 즉시 업데이트됩니다.
MCU 스케치: 이전 Bridge 섹션의 동일한 MCU 스케치를 유지하세요.
Python 코드 (Telegram)
빠른 단계
- YOUR_TELEGRAM_BOT_TOKEN을 BotFather에서 가져온 실제 봇 토큰으로 바꾸세요.
- YOUR_CHAT_ID를 Telegram 채팅 ID로 바꾸세요.
- 이 Python 코드를 앱의 Python 파일에 붙여넣으세요 (동일한 MCU 스케치 유지).
- Run 버튼을 클릭합니다. Telegram을 열고 봇에 명령을 보냅니다.
App Lab 콘솔 출력
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on 아두이노 우노 Q - OpenClaw Tutorial
프로젝트 아이디어
Arduino UNO Q에서 74HC595 7세그먼트 디스플레이를 사용하여 많은 유용한 프로젝트를 만들 수 있습니다:
- 원격 카운터: Telegram을 통해 디스플레이에 카운트 값을 보냅니다 — 생산 카운터 또는 이벤트 집계에 유용합니다
- 라이브 온도 디스플레이: MCU의 센서에서 온도를 가져와 Bridge를 통해 7세그먼트에 표시합니다
- 카운트다운 타이머: Python이 Bridge를 통해 시작 값을 전송하고, MCU가 0까지 카운트다운하여 디스플레이에 표시합니다
- 인터넷 시계: Python이 NTP를 통해 현재 시간을 가져와 HH.MM 형식으로 MCU에 전송하여 표시합니다
- 점수 디스플레이: Telegram을 사용하여 게임 또는 경쟁을 위한 라이브 점수를 7세그먼트 디스플레이에 업데이트합니다
자신을 테스트해 보세요
Arduino UNO Q의 74HC595 7세그먼트 디스플레이를 더 활용할 준비가 되었나요? 다음 도전에 시도해 보세요:
- 쉬움: MCU 스케치를 수정하여 시작 시 88.88을 디스플레이에 표시합니다 (소수점이 있는 부동소수점 표시 방법 사용).
- 중간: Bridge를 사용하여 /count <start> <end> Telegram 명령을 구현하면 디스플레이가 <start>에서 <end>까지 1초 간격으로 카운트합니다.
- 고급: Telegram 제어 스톱워치를 만듭니다: /start는 디스플레이에서 초 단위로 카운트 업을 시작합니다, /stop은 중지합니다, /reset은 0으로 초기화합니다.