ESP8266 NodeMCU 10세그먼트 LED 바 그래프

1×Micro USB Cable 아마존
1×ESP8266 NodeMCU 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×10 Segment LED Bar Graph 아마존
10×220 Ω Resistor 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP8266용 스크루 터미널 확장 보드 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

이 튜토리얼에서는 ESP8266 NodeMCU로 10세그먼트 LED 바 그래프 디스플레이를 제어하는 방법을 알려드립니다. 자세히 말하면, 다음 내용을 배웁니다:

ESP8266 NodeMCU nodemcu와 10세그먼트 LED 바 그래프

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

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

10세그먼트 LED 바 그래프 핀아웃

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

※ 주의:

ESP8266 NodeMCU는 3.3V 로직 레벨로 동작합니다. GPIO0 (D3), GPIO2 (D4), GPIO15 (D8)는 부트 스트래핑 핀입니다. 전원을 켤 때 HIGH 또는 LOW로 유지되면 ESP8266의 부팅 모드에 영향을 줍니다. 보드가 부팅된 후에는 일반 GPIO 출력으로 동작합니다. 부팅 문제가 생기면, 시작 시 이 핀들이 실수로 잘못된 레벨로 유지되고 있지 않은지 확인하세요.

배선도

아래 표와 같이 LED 바 그래프를 ESP8266 NodeMCU에 연결하세요.

ESP8266 NodeMCU nodemcu와 10세그먼트 LED 바 그래프 배선도

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

ESP8266 핀배열 및 ESP8266 전원을 켜는 방법에 대해 더 많이 보십시오.

LED 바 그래프 ESP8266 NodeMCU 핀
A1 (애노드 1) D0 / GPIO16 (220Ω 경유)
A2 (애노드 2) D1 / GPIO5 (220Ω 경유)
A3 (애노드 3) D2 / GPIO4 (220Ω 경유)
A4 (애노드 4) D3 / GPIO0 (220Ω 경유)
A5 (애노드 5) D4 / GPIO2 (220Ω 경유)
A6 (애노드 6) D5 / GPIO14 (220Ω 경유)
A7 (애노드 7) D6 / GPIO12 (220Ω 경유)
A8 (애노드 8) D7 / GPIO13 (220Ω 경유)
A9 (애노드 9) D8 / GPIO15 (220Ω 경유)
A10 (애노드 10) D9 / GPIO3 / RX (220Ω 경유)
K1–K10 (캐소드) GND

10세그먼트 LED 바 그래프용 ESP8266 NodeMCU 프로그래밍 방법

  • 첫 번째 단계는 LED 바 그래프 애노드에 연결된 GPIO 핀 번호 배열을 정의하는 것입니다
  • 각 핀은 pinMode()를 사용하여 출력으로 설정해야 합니다
  • 세그먼트를 켜려면 digitalWrite()를 사용하여 해당 GPIO 핀을 HIGH로 설정합니다
  • 세그먼트를 끄려면 핀을 LOW로 설정합니다
  • 이 프로젝트에는 외부 라이브러리가 필요하지 않습니다

10세그먼트 LED 바 그래프용 ESP8266 NodeMCU 코드

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-10-segment-led-bar-graph */ const int NUM_SEGMENTS = 10; // D0(GPIO16), D1(GPIO5), D2(GPIO4), D3(GPIO0), D4(GPIO2), D5(GPIO14), D6(GPIO12), D7(GPIO13), D8(GPIO15), D9(GPIO3/RX) const int ledPins[NUM_SEGMENTS] = {16, 5, 4, 0, 2, 14, 12, 13, 15, 3}; 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); }

빠른 단계

  • ESP8266을 처음 사용한다면, Arduino IDE에서 ESP8266 환경을 설정하는 방법을 확인하세요.
  • 배선도와 같이 부품을 배선하세요.
  • USB 케이블로 ESP8266 NodeMCU 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 여세요.
  • Tools → Board와 Tools → Port에서 올바른 보드와 포트를 선택하세요.
  • 위의 코드를 복사하여 Arduino IDE에 붙여넣으세요.
  • Upload를 클릭하여 코드를 컴파일하고 ESP8266 NodeMCU에 업로드하세요.
  • Serial Monitor(보드레이트: 115200)를 열어 출력을 확인하세요.

시리얼 모니터 출력

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E 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
Nodemcu 1.0 (ESP-12E Module) on COM15
2

추가 지식

ESP8266은 사용 가능한 GPIO 핀이 약 11개뿐이며, 30개 이상의 GPIO를 제공하는 ESP32에 비하면 상당한 제약입니다. 이 11개 핀 중 여러 개(GPIO0, GPIO2, GPIO15)는 부팅 모드에 민감합니다. 즉, 전원을 켤 때 그 핀들의 로직 레벨이 칩이 시작되는 방식을 결정합니다. 이 때문에 주변 장치의 도움 없이 ESP8266만으로 직접 구현할 수 있는, 출력이 많은 프로젝트의 수가 제한됩니다.

ESP8266이 기본적으로 제공할 수 있는 것보다 더 많은 출력 채널이 필요할 때는 74HC595 같은 시프트 레지스터가 실용적인 해결책입니다. 74HC595 하나는 GPIO 핀 3개(데이터, 클럭, 래치)만 사용하면서 8개의 출력 라인을 제공합니다. 여러 개의 74HC595 칩을 데이지 체인으로 연결하면 GPIO 사용을 늘리지 않고도 출력 용량을 더 확장할 수 있어, 핀이 부족한 플랫폼에서 LED 배열, 바 그래프, 세그먼트 디스플레이를 구동하는 데 적합합니다.

동영상

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

댓글