-
[Raspberry Pi] 라즈베리 파이 LED 제어하기Raspberry Pi/Build with Pi 2026. 4. 4. 13:50
오늘은 LED ON/OFF를 실습했다.
두 가지 방식으로 진행을 했는데,
먼저 프로그램 없이 명령어로 LED 제어하기, 그 다음은 프로그램을 이용한 LED 제어이다.(Python을 사용했다.)먼저 LED 제어를 위해서는 GPIO 핀 동작 원리를 이해할 필요가 있다.
GPIO?
GPIO란 이름 그대로 '범용 입출력' 핀을 의미한다. 특정한 목적(ex. 오디오 출력 전용)이 정해져 있지 않고, 사용자가 소프트웨어 코드를 통해 그 용도를 마음대로 설정할 수 있는 핀이라고 생각하면 된다.
출력 모드(Output Mode)와 입력 모드(Input Mode)로 나뉘는데,
출력 모드(Output Mode)는 소프트웨어가 하드웨어로 신호를 보내는 것이라고 생각하면 된다. 원리는 특정 GPIO 핀의 전압을 High(3.3V) 또는 Low(0V) 상태로 만든다. 전등 스위치를 켜고 끄는 것과 같이, 핀을 High로 설정하면 연결된 LED에 전류가 흘러 불이 켜지고, Low로 설정하면 전류가 끊겨 불이 꺼지게 된다.
입력 모드(Input Mode)는 하드웨어의 상태를 소프트웨어가 읽어오는 것이다. 외부 장치에서 들어오는 전압을 감지하여 디지털 값으로 변환한다. 3.3V에 가까운 전압이 들어오면 1(True/High)로 인식하며, 0V에 가까운 전압이 들어오면 0(False/Low)로 인식하게 된다.
라즈베리 파이의 GPIO를 다룰 때 3가지 주의 사항이 있다.
- 3.3V 로직 레벨: 라즈베리 파이는 3.3V에서 동작하므로, 만약 5V 전압을 GPIO 입력 핀에 바로 연결하면 칩이 타버릴 수 있다.
- 전류 제한: 각 핀이 버틸 수 있는 전류량은 매우 작다.(약 16mA 내외). 따라서 LED 같은 부품을 연결할 때는 반드시 저항을 함께 사용하여 전류를 제한해야 한다.
- 디지털 방식: GPIO는 기본적으로 0 아니면 1만 인식하는 디지털 방식이다. 온도 센서처럼 연속적인 값(아날로그)을 읽으려면 별도의 ADC(Analog-to-Digital Converter) 칩이 필요하다.
위 세 가지 주의사항을 어기면 보드가 손상될 수 있다고 한다...(조심하자)
핀 종류는 크게 3가지로 나뉜다.
아래 그림은 라즈베리 파이 SBC 이미지이다. SBC(Single Board Computer)에는 40개의 핀이 있는데 40개 모두 GPIO가 아니다. 크게 3가지로 나뉜다.- Power Pins: 항상 전원을 공급하는 핀(5V, 3.3V)
- Gound(GND) : 회로의 기준점이 되는 OV 핀(전류가 돌아나가는 통로).
- GPIO Pins : 코드로 제어 가능한 실제 입출력 핀

LED 센서 동작
본격적으로 LED ON/OFF Test를 위해 회로를 구성해보도록 하자.
1. Bread Board에 LED 배치하기
먼저 빵판(Bread Board)를 준비해보자. 아래 이미지와 같이 생긴게 빵판이다.

이제 이 빵판에 LED를 꽂아보겠다.
LED의 경우 아래와 같이 생겼는데,

https://kr.rs-online.com/web/p/leds/1689439 자세히 보면, 한쪽이 조금 더 길고 한쪽이 짧다. 여기서 긴 쪽(anode)이 +극, 짧은 쪽(cathode)가 -극을 나타낸다.
즉, 연결할 때는 긴 쪽을 VCC에 연결하고 짧은 쪽을 GND에 연결해야 한다.
이제 이 LED를 연결할 때 저항을 같이 사용해서 연결해야 한다.
저항은 아래 이미지와 같이 생겼는데,

저항을 자세히 보면, 띠가 5개가 있다. 이게 색깔별로 의미가 다르다.
빨간색(Red) : 숫자 2/ 승수 10^2(100)
검은색(Black) : 숫자 0 / 승수 10^0(1)
갈색(Brown) : 숫자 1 / 승수 10(10)
5줄 저항의 경우 보통 정밀 저항이며, 앞의 순서대로 다음과 같이 읽는다.

지금 사용하려는 저항은 "빨강-빨강-검정-검정-갈색"이므로, 2,2,0,10^0(x1), 갈색(오차 1%)이므로,
220옴, 오차 1%짜리 저항이 된다.
이제 진짜 배치를 진행해보자. 회로 구성은 아래와 같다.

LED 회로 구성 실제 연결을 해보면 다음과 같이 연결이 된다.

빵판 회로 
led에 저항을 하나 달아주고, -쪽은 라즈베리파이의 GND(6번핀)에 연결, 반대쪽은 gpio 18번핀 즉 12번째 핀에 연결하면 된다.
2. LED ON/OFF 코드 작성하기
이제 코드를 작성해보자.
먼저 라즈베리 파이를 연결해준다. Raspberry Pi Connect로 UI환경에서 진행하든 터미널이든 편한대로 하면 될 것 같다!
코드는 아래와 같이 작성하면 된다.
import RPi.GPIO as GPIO import time LED_PIN = 18 # GPIO18 (물리 핀 12번) GPIO.setmode(GPIO.BCM) GPIO.setup(LED_PIN, GPIO.OUT) try: print("LED Control Start (Ctrl+C, exist)") while True: GPIO.output(LED_PIN, GPIO.HIGH) # LED ON print("LED ON") time.sleep(1) GPIO.output(LED_PIN, GPIO.LOW) # LED OFF print("LED OFF") time.sleep(1) except KeyboardInterrupt: print("\nProgram exit") finally: GPIO.cleanup() # initial GPIO`python3 led.py`로 실행하게 되면, 제대로 연결되어 있다면 문제 없이 LED가 1초 간격으로 ON/OFF하며 깜빡깜빡 거릴 것이다.
LED 센서 제어 성공~
다음은 초음파 센서 동작으로 돌아오겠다.
References
Raspberry Pi Documentation(https://www.raspberrypi.com/documentation/computers/raspberry-pi.html)
'Raspberry Pi > Build with Pi' 카테고리의 다른 글
[Raspberry Pi] MQTT로 원격 LED 제어하기 (0) 2026.04.27 [Raspberry Pi] 온도 습도 센서 동작 + 7 segment (0) 2026.04.04 [Raspberry Pi] 초음파 센서 동작 + LED 센서 (0) 2026.04.04 [Raspberry Pi] Raspberry Pi OS 설치 및 필수 초기 설정 (0) 2026.03.22