본문 바로가기
라즈베리 파이

[라즈베리 파이] GPIO를 사용하여 RGB LED 다뤄보기

by HI_Ai 2023. 9. 4.
반응형

 

라즈베리파이를 이용하여 RGB LED를 색상별로 소등, 점등하는 방법, 그리고 시간대별로 조정하는 방법에 대해 알아보도록 하겠습니다.

 

준비물 : Raspberry Pi, RGB LED, 점퍼 와이어

 

LED와 라즈베리파이 연결 : RGB LED 핀 중 Ground핀은 ground와 Red, Blue, Green 핀은 GPIO 핀과 연결

출처 : https://fishpoint.tistory.com/6181

연결 후 GPIO의 핀 번호를 작성합니다.

ex) Red : GPIO 17, Green : GPIO 27, Blue : GPIO 22

 

코드 작성

먼저 필요한 라이브러리를 설치합니다.

pip install RPi.GPIO

 

이후 라즈베리파이 터미널을 연 후 test.py 파일을 제작하고 test.py 파일 안에 아래와 같은 코드를 작성합니다.

import RPi.GPIO as GPIO
import time

# GPIO 설정
GPIO.setmode(GPIO.BCM)

# RGB 핀 설정
RED = 17
GREEN = 27
BLUE = 22

GPIO.setup(RED, GPIO.OUT) # GPIO 17번을 RED의 출력으로 설정합니다.
GPIO.setup(GREEN, GPIO.OUT) # GPIO 27번을 GREEN의 출력으로 설정합니다.
GPIO.setup(BLUE, GPIO.OUT) # GPIO 22번을 BLUE의 출력으로 설정합니다.

# LED 제어 함수
def turn_on(color):
    if color == 'RED': # RED 실행시 1초 동안 점등 후 소등
        GPIO.output(RED, True)
        time.sleep(1)
        GPIO.output(RED, False)
    elif color == 'GREEN': # GREEN 실행시 1초 동안 점등 후 소등
        GPIO.output(GREEN, True)
        time.sleep(1)
        GPIO.output(GREEN, False)
    elif color == 'BLUE': # BLUE 실행시 1초 동안 점등 후 소등
        GPIO.output(BLUE, True)
        time.sleep(1)
        GPIO.output(BLUE, False)

# 메인 함수
try:
    while True: # R, G, B를 1초 단위로 켠다.
        turn_on('RED')
        time.sleep(1)
        turn_on('GREEN')
        time.sleep(1)
        turn_on('BLUE')
        time.sleep(1)
finally:
    GPIO.cleanup() # 모두 끈다.

 

Raspberry Pi의 GPIO를 이용하면 다양한 전자 부품을 제어할 수 있습니다. 이를 확장하여 여러 프로젝트에서 다양한 응용이 가능하니, 창의력을 발휘하여 멋진 작품을 만들어 보시길 바랍니다

반응형