라즈베리파이에서 GPIO 파이썬을 이용해서 PUSH버튼으로 LED점등 #1
안녕하세요.
이번에 소개할 내용은 라즈베리파이에서 GPIO, 파이썬을 이용해서 PUSH버튼으로 LED점등하기 #1 입니다.
우리가 일상적으로 집에 들어왔을경우 버튼을 누르고 거실의 등을 키는것과 같은 역활로
버튼을 누르게 되면 LED가 점등이 되는것을 만들어 보도록 하겠습니다.
그전에 준비물이 필요합니다.
- 라즈베리파이 OS, 파이썬 설치가 완료된 상태
- 점퍼케이블 암/수 4줄, 수컷 2줄
- 플레이트 보드
- 저항 330Ω, 10KΩ 각 1개씩
- LED전구
- 푸쉬버튼

저항과 점퍼케이블 연결 회로도와 같이 연결을 해주시면 되겠습니다.
색깔별 점퍼케이블의 연결순서는 아래의 표를 참고해 주세요.
Color | Pi GPIO Pin | Notes |
Red | 1 | 3.3V |
Yellow | 31 | 6(GPCLK2) |
Black | 39 | GND |
Blue | 40 | 21(SP1_SCLK) |
GPIO핀에 대한 자세한 내용을 원하시는 분은 아래의 링크를 들어가셔서 참고해 주세요.
라즈베리파이에서 GPIO를 사용하기전 알아두어야 할 사항
위와같이 라즈베리파이와 플레이트 보드의 구성을 모두 마치셨으면
이제 본격적인 코딩을 해야만 합니다.
Visual Studio Code(비주얼 스튜디오 코드)를 실행해 주시기 바랍니다.
실행을 하셨으면 파일명을 gpio_push_led.py로 추가를 해주시기 바랍니다.
간단한 예제로 버튼을 누르면 LED가 켜지고 버튼을 떼면 LED가 꺼지는 소스를 작성 하겠습니다.
아래의 코드를 입력해 주세요.
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
# 31Pin GPCLK2
GPIO.setup(6, GPIO.OUT)
# 40Pin SP1_SCLK
GPIO.setup(21, GPIO.IN)
try:
while True:
# 40Pin의 버튼에 대한 입력값
inputIO = GPIO.input(21)
# 버튼이 눌렸는지 체크
if inputIO == False:
# LED를 켜기
GPIO.output(6, GPIO.HIGH)
else:
# LED를 끄기
GPIO.output(6, GPIO.LOW)
# Ctrl + C키를 누르면 종료 됩니다.
except KeyboardInterrupt:
# 종료시 LED를 무조건 끄기
GPIO.output(6, GPIO.LOW)
# GPIO 클린업
finally:
GPIO.cleanup()
작성하신 소스를 라즈베리파이에 넣고 실행을 하기위해
소스파일을 라즈베리파이의 임의의 폴더에 올려주시기 바랍니다.
그리고 라즈베리파이를 VNC를 이용해 접속후 터미널을 실행해 주세요.
라즈베리파이의 리스트 목록을 보시면 gpio_push_led.py 파일명으로 파일이 올라가 있는걸 확인할수 있습니다.
이제 명령어로 버튼을 눌렀을경우 LED가 켜지고 꺼지는지 확인 해보도록 하겠습니다.
아래의 명령어를 입력해 주세요.
# 파이썬 2.x버전대를 이용하실경우
sudo python ./gpio_push_led.py
# 파이썬 3.x버전대를 이용하실경우
sudo python3 ./gpio_push_led.py
저의 경우는 3.x버전대를 이용하기에 3.x버전대의 명령어로 실행을 하겠습니다.
위와같이 실행이 된 상태에서 버튼을 눌러보시면 LED가 켜지는것을 확인하실수 있습니다.
만일 LED가 켜키지 않을경우 배선이 맞게 되어있는지 LED를 (+,-)가 맞게 꼽혀있는지 확인해 주세요.
프로그램을 종료를 하실경우에는 Ctrl + C키를 눌러주시면 프로그램이 종료 됩니다.
이렇게해서 푸쉬버튼을 이용한 LED 켜고 끄기가 끝났습니다.
이것을 이용을 하시면 좀더 다양한 방식으로 버튼을 이용한 여러가지 개발을 하실수가 있겠습니다.