라즈베리파이 LED를 Button으로 켜기
- 개발환경
- CNDI사의 라즈베리파이 모듈 사용
- Digital Push Button Brick
- Button Switch Brick :
- 누르는 동작을 감지하는 스위치
- 누르는 동작을 감지하는 스위치
- 라즈베리파이와 연결
- CNDI사의 Button Switch Brick
- S : GPIO 17
- V : VCC 5V
- G : GND
- CNDI사의 Octopus 5mm LED Brick OBLED – Red
- S : GPIO 04
- V : VCC 5V
- G : GND
- CNDI사의 Button Switch Brick
- 소스(button_switch.py) : 스위치가 눌리면(LOW) “Switch Detected..”을 출력
123456789101112131415161718192021222324# !/usr/bin/env python# coding:utf-8import RPi.GPIO as gpioimport timeimport sysimport warningswarnings.filterwarnings('ignore')SW = 17if __name__ == '__main__': # Program start from heregpio.setmode(gpio.BCM)gpio.setup(SW, gpio.IN)try:while True:nVal = gpio.input(SW)if nVal == False: #gpio.LOW: #0:print("Switch Detected..")time.sleep(1)except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.gpio.cleanup() # Release resourcesys.exit() - 소스(led_sw.py) : 스위치가 눌리면(LOW) LED가 켜지고 놓으면 꺼짐
1234567891011121314151617181920212223242526272829# !/usr/bin/env python# coding:utf-8import RPi.GPIO as gpioimport timeimport sysimport warningswarnings.filterwarnings('ignore')SW = 17LED = 4if __name__ == '__main__': # Program start from heregpio.setmode(gpio.BCM)gpio.setup(SW, gpio.IN)gpio.setup(LED, gpio.OUT, initial=gpio.LOW)try:while True:nVal = gpio.input(SW)if nVal == False: #gpio.LOW: #0:gpio.output(LED, gpio.HIGH)#print("Switch Detected..")else:gpio.output(LED, gpio.LOW)except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.gpio.cleanup() # Release resourcesys.exit() - 소스(led_sw_interrupt.py) : 스위치가 눌리면(LOW) LED가 켜지고 놓으면 꺼짐(인터럽트 사용)
1234567891011121314151617181920212223242526272829303132333435# !/usr/bin/env python# coding:utf-8import RPi.GPIO as gpioimport timeimport sysimport warningswarnings.filterwarnings('ignore')SW = 7 #17LED = 5 #4def push_callback(channel):if gpio.input(SW) == gpio.LOW:gpio.output(LED, gpio.HIGH)else:gpio.output(LED, gpio.LOW)gpio.setmode(gpio.BCM)gpio.setup(SW, gpio.IN)gpio.setup(LED, gpio.OUT, initial=gpio.LOW)gpio.add_event_detect(SW, gpio.BOTH, callback=push_callback)# gpio.FALLING or gpio_RISING or gpio.BOTHtry:while True:time.sleep(10)except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.gpio.cleanup() # Release resourcesys.exit()gpio.remove_event_detect(SW)