今回のゴール
- 押しボタンを押すと LED が点灯する仕組みを作る
Pin.IN
(入力モード)の使い方を学ぶ- プルアップ/プルダウン抵抗の役割を理解する
使う部品
- Raspberry Pi Pico W 本体
- タクトスイッチ(押しボタン) × 1
- ジャンパーワイヤー数本
- ブレッドボード
配線図
🔽 配線イメージ(ブレッドボード接続例)

[Pico W ピン配置(例)]
GP16 ---- ボタン ---- 3.3V
|
└── 内部プルダウンでGNDに接続される
'LED'(オンボードLED)
- ボタン片側 → Picoの GP16 ピン
- ボタンもう一方 → 3.3V
- Pico 側で
Pin.PULL_DOWN
を有効にすると、押されていないときは 0(LOW, GND) になり、押すと 1(HIGH, 3.3V) になります。
※実際のブレッドボード図はこんな感じになります:
📌(ここにスクリーンショット/配線図を入れる想定 → Fritzing等で作成)
サンプルコード
from machine import Pin
import utime
# ボタン入力(GP16)
button = Pin(16, Pin.IN, Pin.PULL_DOWN)
# LED出力(オンボードLED)
led = Pin('LED', Pin.OUT)
while True:
if button.value(): # ボタンが押されているか判定
led.value(1) # LED点灯
else:
led.value(0) # LED消灯
utime.sleep(0.1) # チャタリング対策のため短い待ちを入れる
実行してみよう
- ボタンを押す → LED が点灯
- ボタンを離す → LED が消灯
ポイント解説
- 入力モード (
Pin.IN
)- 出力のときは
Pin.OUT
を使いましたが、今回は入力なのでPin.IN
を指定します。
- 出力のときは
- プルアップ/プルダウン抵抗
- ボタンを押していないときに「フワフワした値」にならないように、基準を決める必要があります。
Pin.PULL_DOWN
→ 押していないときは 0V(GND)、押すと3.3Vで 1 になります。Pin.PULL_UP
を使えば、逆に押していないときに 1、押すと 0 にできます。
- チャタリング対策
- 実際のスイッチは押したときに「ガタガタ」するので、短い
sleep(0.05〜0.1秒)
を入れると安定します。
- 実際のスイッチは押したときに「ガタガタ」するので、短い
次回予告
「第4回:ボタンを押すごとにLEDのON/OFFを切り替える(トグル動作)」に進みます。
コメント