Skip to content

Day 4|性格:if文で「わがまま」にする

  • 配線は昨日のまま(LED + ボタン)
  • プログラムだけ を書き換える
  • トグル動作(押すたびにON/OFF切り替え)を作る

スポンサーリンク(開発中はプレースホルダー)

NO IMAGE
Raspberry Pi Pico Hピンヘッダ付き
NO IMAGE
ブレッドボード標準サイズ
NO IMAGE
赤色LED5mm砲弾型
NO IMAGE
抵抗器 330Ω橙橙黒金
NO IMAGE
タクトスイッチ4本足
  • Day 3と同じ構成です。そのままでOK。

昨日は「押している間だけ」でしたが、今日は 「一回押すと点灯、もう一回押すと消灯」 させます。 部屋の照明スイッチのような動作です。

Picoに「今、電気は点いてる?消えてる?」という記憶を持たせます。 これを 変数(へんすう) と言います。

  1. もしボタンが押されたら…
  2. 今の状態を確認する。
  3. 点いてれば消す。消えてれば点ける。
  4. 少し待つ(チャタリング防止)。
import machine
import time
led = machine.Pin(15, machine.Pin.OUT)
button = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)
# 今の状態を覚えておく「変数」
is_light_on = False # 最初は消えている
while True:
if button.value() == 1:
# ボタンが押されたときだけ仕事をする
if is_light_on == True:
# 今点いてるなら、消す
led.value(0)
is_light_on = False
print("OFFにしました")
else:
# 今消えてるなら、点ける
led.value(1)
is_light_on = True
print("ONにしました")
# 連続入力を防ぐために少し待つ
time.sleep(0.3)

⚠️ 一瞬で点いて消える / 反応が良すぎる

  • 原因: 処理が速すぎる
    • → コンピュータは一瞬で数千回ループします。あなたが「ポンッ」と押した一瞬の間に、「点けた!消した!点けた!消した!」と100回くらい処理してしまっているかも。
    • time.sleep(0.3) で「余韻」を持たせることで解決します。
  • if文: ロボットの「好み」や「性格」。
    • 「もし〜なら、こうする」というルールが増えるほど、生き物らしくなります。
  • 変数: ロボットの「記憶メモ」。
    • これがないと、昨日のこと(さっき点けたこと)をすぐ忘れてしまいます。

「記憶と判断力を持たせた!」

光るだけでは孤独です。次は「音」を出してみましょう。 ブザーを使って、Picoに歌を歌わせます。