ESP32 C3 Super Mini 10세그먼트 LED 바 그래프
| 1 | × | ESP32 C3 Super Mini | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | (옵션) DC 커넥터 전원 연결 잭 플러그 소켓 | 쿠팡 | 아마존 | |
| 1 | × | 10 Segment LED Bar Graph | 아마존 | |
| 10 | × | 220 Ω Resistor | 아마존 | |
| 1 | × | 브레드보드 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 |
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
ESP32 C3 Super Mini에서 10세그먼트 LED 바 그래프를 사용하여 움직이는 LED 바 디스플레이를 만드는 방법을 배워 봅니다.

10세그먼트 LED 바 그래프 소개
주요 사양:
- 세그먼트 수: 10
- LED 색상: 밝은 빨간색
- 순방향 전압: 세그먼트당 약 2V
- 순방향 전류: 세그먼트당 최대 20mA
- 필요한 저항: 세그먼트당 220Ω
- 필요한 라이브러리: 없음 — 내장 digitalWrite() 사용
LED 바 그래프를 사용하는 이유:
- 간단하고 시각적 — 레벨을 한눈에 보여 주기에 적합
- 라이브러리 불필요 — 표준 GPIO 함수로 동작
- ESP32 C3 Super Mini의 3.3V 로직과 호환
- 바로 사용할 수 있는 부품으로 구매 가능
LED 바 그래프 핀 배치

- A1–A10 (애노드) — LED 세그먼트마다 애노드가 하나씩 있으며, 각각 220Ω 저항을 거쳐 GPIO 핀에 연결합니다
- K1–K10 (캐소드) — LED 세그먼트마다 캐소드가 하나씩 있으며, 모두 GND에 연결합니다
10세그먼트 LED 바 그래프와 ESP32 C3 Super Mini 간의 배선도
LED 바 그래프를 ESP32 C3 Super Mini에 연결하는 방법은 다음과 같습니다:
| LED 바 그래프 | ESP32 C3 Super Mini 핀 |
|---|---|
| A1 (애노드 1) | GPIO1 (220Ω 경유) |
| A2 (애노드 2) | GPIO2 (220Ω 경유) |
| A3 (애노드 3) | GPIO3 (220Ω 경유) |
| A4 (애노드 4) | GPIO4 (220Ω 경유) |
| A5 (애노드 5) | GPIO5 (220Ω 경유) |
| A6 (애노드 6) | GPIO6 (220Ω 경유) |
| A7 (애노드 7) | GPIO7 (220Ω 경유) |
| A8 (애노드 8) | GPIO8 (220Ω 경유) |
| A9 (애노드 9) | GPIO9 (220Ω 경유) |
| A10 (애노드 10) | GPIO10 (220Ω 경유) |
| K1–K10 (캐소드) | GND |

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 C3 Super Mini 코드 - 10세그먼트 LED 바 그래프
10세그먼트 LED 바 그래프를 움직이게 하는 코드는 다음과 같습니다:
이 코드가 하는 일:
- GPIO 1–10을 출력으로 초기화합니다
- 왼쪽에서 오른쪽으로 세그먼트를 하나씩 켭니다 (단계당 100ms)
- 바가 가득 차면 500ms 동안 기다립니다
- 오른쪽에서 왼쪽으로 세그먼트를 하나씩 끕니다 (단계당 100ms)
- 현재 바 상태를 시리얼 모니터에 출력합니다
- 무한 루프로 반복합니다
/*
* 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-10-segment-led-bar-graph
*/
const int NUM_SEGMENTS = 10;
const int ledPins[NUM_SEGMENTS] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
void printBar(int litCount) {
Serial.print("Bar: [");
for (int i = 0; i < NUM_SEGMENTS; i++) {
Serial.print(i < litCount ? "*" : " ");
}
Serial.println("]");
}
void setup() {
Serial.begin(115200);
for (int i = 0; i < NUM_SEGMENTS; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW);
}
}
void loop() {
for (int i = 0; i < NUM_SEGMENTS; i++) {
digitalWrite(ledPins[i], HIGH);
printBar(i + 1);
delay(100);
}
delay(500);
for (int i = NUM_SEGMENTS - 1; i >= 0; i--) {
digitalWrite(ledPins[i], LOW);
printBar(i);
delay(100);
}
delay(500);
}
- ESP32 C3 Mini가 처음이신가요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하세요.
- 다이어그램에 표시된 대로 부품을 연결합니다.
- USB Type-C로 ESP32 C3 Super Mini를 컴퓨터에 연결합니다.
- Arduino IDE를 열고 ESP32 C3 Super Mini 보드와 COM 포트를 선택합니다.
- 위 코드를 복사하여 Arduino IDE에 붙여넣습니다.
- Upload를 클릭하여 컴파일하고 보드에 업로드합니다.
- 브레드보드에서 LED 바가 움직이는 것을 확인합니다.
- 115200 보드레이트로 시리얼 모니터를 열어 출력되는 바 상태를 확인합니다.
시리얼 모니터 출력
8
Serial.println("Hello World!");
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
Bar: [* ]
Bar: [** ]
Bar: [*** ]
Bar: [**** ]
Bar: [***** ]
Bar: [****** ]
Bar: [******* ]
Bar: [******** ]
Bar: [********* ]
Bar: [**********]
Bar: [********* ]
Bar: [******** ]
Bar: [******* ]
Bar: [****** ]
Bar: [***** ]
Bar: [**** ]
Bar: [*** ]
Bar: [** ]
Bar: [* ]
Bar: [ ]
추가 지식
- 직접 GPIO 제어 (이 튜토리얼): GPIO 핀 10개를 사용하며, 코드가 간단하고 추가 하드웨어가 필요 없습니다
- 시프트 레지스터 (74HC595): GPIO 핀 3개만 사용하며, 추가 IC와 더 복잡한 코드가 필요하지만 GPIO 핀을 절약할 수 있습니다