[RaspberryPI]スイッチ制御

5538 ワード

スイッチタイプ

1. Tact 스위치
2. 로커 스위치
3. Push 스위치

Tactスイッチ


押すとカチカチと鳴るスイッチ-通常は1つの回路しかなく、主に4つのポートから構成されています.

プロセスボタン

회로 polling 방식
from gpiozero import Button
from time import sleep

button = Button(2) # GPIO 2번핀

while True:
    if button.is_pressed:
        print("Button is pressed")  # 버튼 눌렸을 때 출력
        sleep(1)
    else :
        print("Button is not pressed") # 버튼 눌리지 않았을 때 출력
        sleep(1)
interrupt 방식
from gpiozero import Button
from signal import pause

def say_hello():
	print("Hello!")
    
def say_goodbye():
	print("Goodbye!")

button = Button(2)

button.when_pressed = say_hello # 버튼 눌렸을 떄 Hello 출력
button.when_released = say_goodbye # 버튼 땠을 때 Goodbye 출력

pause()

スイッチによるLED制御の中断

from gpiozero import Button, LED
from signal import pause

flag = 0
led1 = LED(3) # LED는 3번핀

def go():
    global flag
    if flag == 0 :
        flag = 1
        led1.on()
    else :
        flag = 0
        led1.off()
        
button = Button(2) # 스위치는 2번핀
button.when_pressed = go # 버튼 눌리면 go 함수 실행

pause()