아두이노 나노 10세그먼트 LED 바 그래프

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

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

아두이노 나노와 10세그먼트 LED 바 그래프

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

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

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

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

※ 주의:

사용하는 LED 바 그래프의 핀 배치는 제조사에 따라 다를 수 있습니다. 배선하기 전에 항상 데이터시트나 부품에 인쇄된 표시를 확인하세요. 꼼꼼히 살펴보세요!

선연결

아래 표는 10세그먼트 LED 바 그래프를 아두이노 나노에 배선하는 방법을 보여 줍니다.

아두이노 나노와 10세그먼트 LED 바 그래프 배선도

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

Arduino Nano와 기타 부품에 전원을 공급하는 가장 효과적인 방법은 다음 링크를 참조하세요: 아두이노 나노 전원 공급 방법.

LED 바 그래프 아두이노 나노 핀
A1 (애노드 1) 핀 2 (220Ω 경유)
A2 (애노드 2) 핀 3 (220Ω 경유)
A3 (애노드 3) 핀 4 (220Ω 경유)
A4 (애노드 4) 핀 5 (220Ω 경유)
A5 (애노드 5) 핀 6 (220Ω 경유)
A6 (애노드 6) 핀 7 (220Ω 경유)
A7 (애노드 7) 핀 8 (220Ω 경유)
A8 (애노드 8) 핀 9 (220Ω 경유)
A9 (애노드 9) 핀 10 (220Ω 경유)
A10 (애노드 10) 핀 11 (220Ω 경유)
K1–K10 (캐소드) GND

10세그먼트 LED 바 그래프를 위한 아두이노 나노 프로그래밍 방법

아두이노 나노로 10세그먼트 LED 바 그래프를 사용하는 데는 라이브러리 설치가 필요하지 않습니다. 이 부품은 아두이노 내장 함수를 사용하여 GPIO 핀으로 직접 구동됩니다.

  • 첫 번째 단계는 LED 바 그래프 애노드에 연결된 출력 핀을 정의하는 것입니다: const int ledPins[10] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
  • pinMode()를 사용하여 각 핀을 출력으로 지정합니다
  • digitalWrite(ledPins[i], HIGH);로 세그먼트를 켭니다
  • digitalWrite(ledPins[i], LOW);로 세그먼트를 끕니다

10세그먼트 LED 바 그래프를 위한 아두이노 나노 코드

/* * 이 아두이노 나노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 나노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-10-segment-led-bar-graph */ const int NUM_SEGMENTS = 10; const int ledPins[NUM_SEGMENTS] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; 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(9600); 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); }

빠른 단계

아두이노 나노를 처음 사용한다면, Arduino IDE에서 아두이노 나노 환경을 설정하는 방법을 확인하세요.

  • 배선도와 같이 부품을 연결합니다.
  • USB 케이블로 아두이노 나노 보드를 컴퓨터에 연결합니다.
  • 컴퓨터에서 Arduino IDE를 엽니다.
  • Tools에서 올바른 보드와 포트를 선택합니다.
  • 위 코드를 복사하여 Arduino IDE에 붙여넣습니다.
  • Upload를 클릭하여 코드를 아두이노 나노에 업로드합니다.
  • 보드레이트 9600으로 Serial Monitor를 열어 출력을 확인합니다.

시리얼 모니터 출력

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

추가 지식

10세그먼트 LED 바 그래프는 숫자 표시보다 눈금 막대가 더 직관적인 프로젝트에서 시각적인 레벨 표시기로 사용하기에 적합합니다. 각 세그먼트가 하나의 단계에 해당하기 때문에, 보는 사람이 숫자를 읽지 않아도 양이나 세기를 한눈에 알 수 있습니다.

실제 활용 예로는 배터리 충전량 표시기, 오디오 볼륨 바, 신호 세기 표시기, 시간이 정해진 작업의 진행 표시 등이 있습니다. 어느 경우든 켜진 세그먼트의 수가 측정값의 비율을 나타냅니다. 예를 들어 10개 중 5개 세그먼트를 켜서 50% 충전 또는 절반 볼륨을 표시할 수 있습니다.

이런 응용을 만들 때는 보통 측정값을 센서의 전체 범위에 맞춰 세그먼트 개수로 변환한 다음, 그 개수만큼 세그먼트를 순서대로 켜는 방식을 사용합니다. 이 변환은 아두이노의 map() 함수로 할 수 있어서, 계산이 간단하고 입력 범위가 바뀌어도 쉽게 조정할 수 있습니다.

동영상

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

댓글