3.3 v 가 15번 핀으로 들어오면 출력
회로도
Polling
import RPi.GPIO as GPIO
import time
button_pin = 15
# 불필요한 warning 제거
GPIO.setwarnings(False)
# GPIO핀의 번호 모드 설정
GPIO.setmode(GPIO.BCM)
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
while 1:
if GPIO.input(button_pin) == GPIO.HIGH:
print("Button Pushed!")
time.sleep(0.1)
push 버튼 누르면 위와 같이 출력된다.
이벤트
button_callback 함수를 이벤트에 연결해준다.
#!/usr/bin/python
#-*- coding:utf-8 -*-
import RPi.GPIO as GPIO
import time
def button_callback(channel):
print("Button pushed!")
button_pin = 15
# 불필요한 warning 제거
GPIO.setwarnings(False)
# GPIO핀의 번호 모드 설정
GPIO.setmode(GPIO.BCM)
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.add_event_detect(button_pin,GPIO.RISING,callback=button_callback)
while 1:
time.sleep(0.1) # 0.1 초 딜레이
이벤트를 통해서 LED 키고 끄기
#!/usr/bin/python
#-*- coding:utf-8 -*-
import RPi.GPIO as GPIO
import time
button_pin = 15
led_pin = 26
# 불필요한 warning 제거
GPIO.setwarnings(False)
# GPIO핀의 번호 모드 설정
GPIO.setmode(GPIO.BCM)
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(led_pin, GPIO.OUT)
light_on = False
def button_callback(channel):
global light_on
if light_on == False:
GPIO.output(led_pin, 1)
print("LED ON!")
else:
GPIO.output(led_pin, 0)
print("LED OFF!")
light_on = not light_on
GPIO.add_event_detect(button_pin,GPIO.RISING,callback=button_callback, bouncetime=300)
try:
while 1:
time.sleep(0.1)
except KeyboardInterrupt:
pass
GPIO.cleanup()
print("종료합니다.")
'공부,일 > 라즈베리 파이' 카테고리의 다른 글
Flask 이용해서 웹서버 구축 및 이용 (0) | 2021.08.12 |
---|---|
PWM 제어 (0) | 2021.08.12 |
라즈베리 파이 하드웨어 기본 (0) | 2021.08.11 |
기본설정 및 파이썬 사용 (0) | 2021.08.10 |
nmap (0) | 2021.08.10 |
댓글