ESP32 10세그먼트 LED 바 그래프

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow 쿠팡 | 아마존
1×(또는) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide 쿠팡 | 아마존
1×(또는) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide 아마존
1×(또는) ESP32 Uno-form board 아마존
1×(또는) ESP32 S3 Uno-form board 아마존
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×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) Breakout Expansion Board for ESP32 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

이 튜토리얼에서는 ESP32를 사용하여 10세그먼트 LED 바 그래프를 제어하고, 디스플레이에 시각적인 바 애니메이션을 표시하는 방법을 안내합니다.

10세그먼트 LED 바 그래프에 대하여

10세그먼트 LED 바 그래프
세그먼트 수 10
LED 색상 밝은 빨간색
순방향 전압 세그먼트당 약 2V
순방향 전류 세그먼트당 최대 20mA
필요한 저항 세그먼트당 220Ω

LED 바 그래프 핀아웃

10세그먼트 LED 바 그래프 핀아웃
  • 애노드 핀(A1–A10): 이 핀들을 220Ω 저항을 통해 GPIO 핀에 연결합니다
  • 캐소드 핀(K1–K10): 이 핀들을 GND(0V)에 연결합니다

ESP32 GPIO 핀을 보호하기 위해 모든 애노드에 전류 제한 저항을 연결할 것을 강력히 권장합니다.

※ 주의:

배선을 간단하게 유지하기 위해 10개의 애노드 핀을 모두 ESP32 개발 보드 헤더의 한쪽 면을 따라 물리적 핀 순서대로 연결했습니다. 이 때문에 GPIO5와 GPIO15가 사용되는데 — 두 핀 모두 부팅 시 잠깐 펄스가 발생할 뿐이고 보드의 LED에도 흔히 사용되므로 위험이 낮습니다. 보드의 부팅이나 플래싱 모드에 실제로 영향을 줄 수 있는 GPIO0, GPIO2, GPIO12는 완전히 피했습니다.

10세그먼트 LED 바 그래프와 ESP32 간의 배선도

ESP32 LED 바 그래프 배선도 - 브레드보드

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

ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.

LED 바 그래프 ESP32 핀
A1 (애노드 1) GPIO23 (220Ω 경유)
A2 (애노드 2) GPIO22 (220Ω 경유)
A3 (애노드 3) GPIO21 (220Ω 경유)
A4 (애노드 4) GPIO19 (220Ω 경유)
A5 (애노드 5) GPIO18 (220Ω 경유)
A6 (애노드 6) GPIO5 (220Ω 경유)
A7 (애노드 7) GPIO17 (220Ω 경유)
A8 (애노드 8) GPIO16 (220Ω 경유)
A9 (애노드 9) GPIO4 (220Ω 경유)
A10 (애노드 10) GPIO15 (220Ω 경유)
K1–K10 (캐소드) GND

10세그먼트 LED 바 그래프를 위한 ESP32 프로그래밍 방법

  • 10세그먼트 LED 바 그래프를 위한 ESP32 프로그래밍은 간단합니다. 라이브러리를 설치할 필요가 없습니다.
  • 각 세그먼트에 할당된 GPIO 핀 배열을 정의합니다: const int ledPins[10] = {23, 22, 21, 19, 18, 5, 17, 16, 4, 15};
  • setup() 안에서 각 핀을 출력으로 설정합니다: pinMode(ledPins[i], OUTPUT);
  • 해당 핀에 HIGH를 써서 세그먼트를 켭니다: digitalWrite(ledPins[i], HIGH);
  • 해당 핀에 LOW를 써서 세그먼트를 끕니다: digitalWrite(ledPins[i], LOW);

ESP32 코드 - 10세그먼트 LED 바 그래프

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-10-segment-led-bar-graph */ const int NUM_SEGMENTS = 10; const int ledPins[NUM_SEGMENTS] = {23, 22, 21, 19, 18, 5, 17, 16, 4, 15}; 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를 처음 사용한다면 ESP32 - 소프트웨어 설치을 참고하세요.

  • 위의 코드를 복사하여 Arduino IDE에서 엽니다.
  • ESP-WROOM-32 Dev Module 보드와 올바른 COM 포트를 선택합니다.
  • Upload 버튼을 클릭하여 코드를 컴파일하고 ESP32에 업로드합니다.
  • 시리얼 모니터를 열고 보드레이트를 115200으로 설정합니다.
  • LED 바 그래프의 바 애니메이션과 시리얼 모니터에 출력되는 내용을 확인합니다.

시리얼 모니터 출력

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 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: [ ]
Ln 11, Col 1
ESP32 Dev Module on COM15
2

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

댓글