第4回:ボタンを押すごとにLEDのON/OFFの切替え

つぶやき

内容

  • トグル動作とは?
     押すたびに状態が変わる(ON → OFF → ON → …)動作。
  • ボタンの状態変化を検出(「押された瞬間」だけ処理)。
  • 前回の「押されている間だけON」との違いを理解。

サンプルコード

from machine import Pin
import utime

button = Pin(16, Pin.IN, Pin.PULL_DOWN)  # ボタン入力
led = Pin(17, Pin.OUT)                   # LED出力

led_state = 0     # 現在のLED状態(0=OFF, 1=ON)
prev_button = 0   # 前回のボタン状態

while True:
    current = button.value()  # 今のボタン状態を取得

    # ボタンが「押されていない→押された」に変化した瞬間を検出
    if current == 1 and prev_button == 0:
        led_state = not led_state   # 状態を反転
        led.value(led_state)        # LEDに反映

    prev_button = current  # 状態を保存
    utime.sleep(0.02)      # チャタリング防止のため待機

ポイント

  • 状態変化を検出:押しっぱなしではなく、「押された瞬間」だけ反応させる。
  • チャタリング防止:機械的なスイッチは数msガタつくため、sleep(0.02)で安定化。
  • トグルの考え方led_state = not led_state で簡単に反転できる。

次回予告

「第5回:MicroPythonでWi-Fi接続」に進みます。

コメント