라즈베리 파이 10 세그먼트 LED 바 그래프

이 튜토리얼에서는 라즈베리 파이를 사용하여 10 세그먼트 LED 바 그래프 디스플레이를 제어하는 방법을 안내합니다. 구체적으로 다음 내용을 배웁니다:

라즈베리 파이와 10 세그먼트 LED 바 그래프

...SUGGEST

LINK_SUGGEST_RASPBERRY_PI_LED

LINK_SUGGEST_RASPBERRY_PI_BUTTON_LED

...SUGGEST

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

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

LED 바 그래프 핀아웃

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

10 세그먼트 LED 바 그래프에는 20개의 핀이 있습니다:

  • 애노드 핀 (A1–A10): 이 핀들은 220Ω 저항을 거쳐 라즈베리 파이 GPIO 핀에 연결해야 합니다
  • 캐소드 핀 (K1–K10): 이 핀들은 접지(0V)에 연결해야 합니다

※ 주의:

LED 바 그래프의 핀 배열은 제조사마다 다를 수 있습니다. 배선하기 전에 항상 부품 데이터시트로 애노드와 캐소드 방향을 확인하세요. 꼭 자세히 살펴보세요!

배선도

라즈베리 파이 LED 바 그래프 배선도

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

배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:

라즈베리 파이용 스크루 터미널 블록 실드
  • LED 바 그래프 A1을 220Ω 저항을 거쳐 라즈베리 파이 GPIO 18 (핀 12)에 연결
  • LED 바 그래프 A2를 220Ω 저항을 거쳐 라즈베리 파이 GPIO 23 (핀 16)에 연결
  • LED 바 그래프 A3를 220Ω 저항을 거쳐 라즈베리 파이 GPIO 24 (핀 18)에 연결
  • LED 바 그래프 A4를 220Ω 저항을 거쳐 라즈베리 파이 GPIO 25 (핀 22)에 연결
  • LED 바 그래프 A5를 220Ω 저항을 거쳐 라즈베리 파이 GPIO 8 (핀 24)에 연결
  • LED 바 그래프 A6를 220Ω 저항을 거쳐 라즈베리 파이 GPIO 7 (핀 26)에 연결
  • LED 바 그래프 A7을 220Ω 저항을 거쳐 라즈베리 파이 GPIO 12 (핀 32)에 연결
  • LED 바 그래프 A8을 220Ω 저항을 거쳐 라즈베리 파이 GPIO 16 (핀 36)에 연결
  • LED 바 그래프 A9를 220Ω 저항을 거쳐 라즈베리 파이 GPIO 20 (핀 38)에 연결
  • LED 바 그래프 A10을 220Ω 저항을 거쳐 라즈베리 파이 GPIO 21 (핀 40)에 연결
  • 모든 K1–K10 (캐소드)을 라즈베리 파이 GND (아무 GND 핀)에 연결

※ 주의:

10개의 애노드 핀은 모두 40핀 헤더의 한 줄(짝수 번호 핀: 12, 16, 18, 22, 24, 26, 32, 36, 38, 40)을 따라 배선되므로 배선이 간단합니다. 여기서는 SPI CE0/CE1 칩 선택 라인을 겸하는 GPIO8과 GPIO7을 사용하는데, 이 프로젝트는 SPI를 사용하지 않으므로 안전합니다. GPIO1 (또 다른 HAT ID EEPROM 핀)과 UART 핀 (GPIO14/GPIO15)은 전혀 사용하지 않습니다.

1×라즈베리 파이 5 쿠팡 | 아마존
1×10 Segment LED Bar Graph 아마존
10×220 Ω Resistor 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 라즈베리 파이용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) 라즈베리 파이 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

LED 바 그래프를 제어하도록 라즈베리 파이를 프로그래밍하는 방법

아래 스크립트는 10개의 세그먼트를 모두 순서대로 구동합니다. A1부터 A10까지 하나씩 켠 다음, 역순으로 끄면서 현재 바 상태를 터미널에 출력합니다.

/* * 이 라즈베리 파이 코드는 newbiely.kr 에서 개발되었습니다 * 이 라즈베리 파이 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/raspberry-pi/raspberry-pi-10-segment-led-bar-graph */ import RPi.GPIO as GPIO import time NUM_SEGMENTS = 10 LED_PINS = [18, 23, 24, 25, 8, 7, 12, 16, 20, 21] def print_bar(lit_count): bar = '*' * lit_count + ' ' * (NUM_SEGMENTS - lit_count) print("Bar: [" + bar + "]") GPIO.setmode(GPIO.BCM) for pin in LED_PINS: GPIO.setup(pin, GPIO.OUT) GPIO.output(pin, GPIO.LOW) try: while True: for i in range(NUM_SEGMENTS): GPIO.output(LED_PINS[i], GPIO.HIGH) print_bar(i + 1) time.sleep(0.1) time.sleep(0.5) for i in range(NUM_SEGMENTS - 1, -1, -1): GPIO.output(LED_PINS[i], GPIO.LOW) print_bar(i) time.sleep(0.1) time.sleep(0.5) except KeyboardInterrupt: GPIO.cleanup()

빠른 단계

  1. 파이에 Raspbian 또는 라즈베리 파이와 호환되는 다른 운영 체제가 설치되어 있는지 확인하세요.
  2. 라즈베리 파이가 PC와 같은 로컬 네트워크에 연결되어 있는지 확인하세요.
  3. 라이브러리를 설치해야 하는 경우 라즈베리 파이가 인터넷에 연결되어 있는지 확인하세요.
  4. 아직 라즈베리 파이를 설정하지 않았다면 LINK_TUTORIAL_RASPBERRY_PI_GETTING_STARTED를 참고하세요.
  5. PuTTY와 같은 SSH 클라이언트를 사용하여 SSH로 PC를 라즈베리 파이에 연결하세요.
  6. RPi.GPIO 라이브러리가 설치되어 있는지 확인하세요. 시스템에 아직 없다면 다음 명령을 실행하여 설치하세요:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  1. 위의 배선도에 따라 부품을 배선하세요.
  2. 파이썬 스크립트 파일 LedBarGraph.py를 만들고 다음 코드를 추가하세요:
/* * 이 라즈베리 파이 코드는 newbiely.kr 에서 개발되었습니다 * 이 라즈베리 파이 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/raspberry-pi/raspberry-pi-10-segment-led-bar-graph */ import RPi.GPIO as GPIO import time NUM_SEGMENTS = 10 LED_PINS = [18, 23, 24, 25, 8, 7, 12, 16, 20, 21] def print_bar(lit_count): bar = '*' * lit_count + ' ' * (NUM_SEGMENTS - lit_count) print("Bar: [" + bar + "]") GPIO.setmode(GPIO.BCM) for pin in LED_PINS: GPIO.setup(pin, GPIO.OUT) GPIO.output(pin, GPIO.LOW) try: while True: for i in range(NUM_SEGMENTS): GPIO.output(LED_PINS[i], GPIO.HIGH) print_bar(i + 1) time.sleep(0.1) time.sleep(0.5) for i in range(NUM_SEGMENTS - 1, -1, -1): GPIO.output(LED_PINS[i], GPIO.LOW) print_bar(i) time.sleep(0.1) time.sleep(0.5) except KeyboardInterrupt: GPIO.cleanup()
  1. 다음 명령으로 스크립트를 실행하세요:
python3 LedBarGraph.py
  1. 터미널에서 결과를 확인하세요 — 바 애니메이션이 텍스트로 출력되는 것을 볼 수 있습니다.

라즈베리 파이 콘솔 출력

PuTTY - Raspberry Pi
Bar: [* ] Bar: [** ] Bar: [*** ] Bar: [**** ] Bar: [***** ] Bar: [****** ] Bar: [******* ] Bar: [******** ] Bar: [********* ] Bar: [**********] Bar: [********* ] Bar: [******** ] Bar: [******* ] Bar: [****** ] Bar: [***** ] Bar: [**** ] Bar: [*** ] Bar: [** ] Bar: [* ] Bar: [ ]

스크립트는 LED 바를 계속 애니메이션하면서 100ms마다 상태를 출력합니다. 언제든지 터미널에서 Ctrl + C를 눌러 스크립트를 중지할 수 있습니다 — KeyboardInterrupt 핸들러가 GPIO 상태를 자동으로 정리합니다.

추가 지식

라즈베리 파이의 각 GPIO 핀은 최대 16mA까지 안전하게 전류를 공급하거나 흡수할 수 있으며, 모든 GPIO 핀을 동시에 사용할 때의 합계 한도는 약 50mA입니다. 전류를 안전한 범위로 유지하고 파이와 LED 바 그래프가 손상되지 않도록 항상 각 LED 세그먼트에 220Ω 저항을 직렬로 연결하세요.

10 세그먼트 LED 바 그래프는 라즈베리 파이의 다양한 실용적인 용도에 잘 맞습니다: 배터리나 전력 수준 표시, 오디오 신호 세기 시각화, 오래 실행되는 자동화 스크립트의 진행 상황 표시, 또는 파이에서 직접 실행되는 홈 오토메이션 및 IoT 프로젝트의 간단한 상태 표시기로 사용할 수 있습니다.

동영상

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