라즈베리파이 GPIO 파이썬을 이용 PUSH버튼으로 LED점등 #1

라즈베리파이에서 GPIO 파이썬을 이용해서 PUSH버튼으로 LED점등 #1

안녕하세요.

이번에 소개할 내용은 라즈베리파이에서 GPIO, 파이썬을 이용해서 PUSH버튼으로 LED점등하기 #1 입니다.

우리가 일상적으로 집에 들어왔을경우 버튼을 누르고 거실의 등을 키는것과 같은 역활로

버튼을 누르게 되면 LED가 점등이 되는것을 만들어 보도록 하겠습니다.

그전에 준비물이 필요합니다.

  1. 라즈베리파이 OS, 파이썬 설치가 완료된 상태
  2. 점퍼케이블 암/수 4줄, 수컷 2줄
  3. 플레이트 보드
  4. 저항 330Ω, 10KΩ 각 1개씩
  5. LED전구
  6. 푸쉬버튼

저항과 점퍼케이블 연결 회로도와 같이 연결을 해주시면 되겠습니다.

색깔별 점퍼케이블의 연결순서는 아래의 표를 참고해 주세요.

ColorPi GPIO PinNotes
Red1
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 켜고 끄기가 끝났습니다.

이것을 이용을 하시면 좀더 다양한 방식으로 버튼을 이용한 여러가지 개발을 하실수가 있겠습니다.