from machine import Pin
from utime import sleep
from utime import ticks_ms
first = 0
def handler(pin):
global first
# 最初の入力後、一定の期間次の入力を無視する (チャタリング防止)
now = ticks_ms()
if now - first < 500:
return
first = now
# 入力信号が安定するまで待機し、スイッチが押されている状態であることを確認する
sleep(0.1)
if switch.value() == 0:
return
# LEDの状態を読み出し、出力状態を切り替える
if led.value() == 0:
led.value(1)
else:
led.value(0)
led = Pin(17, Pin.OUT | Pin.IN)
switch = Pin(22, Pin.IN)
# スイッチの入力がHIGHになった際の割り込み処理を登録
switch.irq(handler, Pin.IRQ_RISING)
# プログラムが停止しないように無限ループで待機
while True:
sleep(1)