1. 今日やること
- ボタン(タクトスイッチ) を配線する
- Picoで「押されたかどうか」を読み取る(入力)
- 押したら光る 仕組みを作る
スポンサーリンク(開発中はプレースホルダー)
2. 使う部品
- Day 2のセット(LED回路はそのまま使います)
- タクトスイッチ ×1
3. 完成形(今日のゴール)
ボタンを押している間だけ、LEDが光ります。 「あなたの指 → ボタン → Pico → LED」という情報のバトンタッチが行われます。
4. 手順
Step 1: スイッチを配置する
タクトスイッチは、ブレッドボードの溝をまたぐように配置します。
- スイッチを挿す。
- 片方の足(GP14側) → GP14 へ
- もう片方の足(3.3V側) → 3V3(OUT) へ
- ※Picoの36番ピンなどが3V3です。
Step 2: 内部プルダウンを設定する
ここで「魔法」を使います。 スイッチには「押してないとき、電気はどうなってるの?」という問題(不定)があります。 これを解決するために、プログラムで 「普段は0(GND)に引っ張っておく(プルダウン)」 設定をします。
Step 3: プログラムを書く
5. コード
# LEDは使い回し(GP15)
led = machine.Pin(15, machine.Pin.OUT)
# ボタンは「入力」かつ「プルダウン」
button = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)
while True:
if button.value() == 1: # もしボタンが押されたら
led.value(1) # 光れ
else: # そうでなければ
led.value(0) # 消えろ
time.sleep(0.1) # 少し休む(誤動作防止)
6. つまずきログ
⚠️ ボタンを押してないのに光る / 反応しない
- 原因1: スイッチの足の向き(90度間違っている)
- → タクトスイッチは、足が出ている方向と、繋がっている方向が決まっています。90度回転させて挿し直してみてください。
- 原因2: PULL_DOWNの書き忘れ
- →
machine.Pin.PULL_DOWNがないと、空気中の電波などを拾って勝手に「1(押された)」と誤解することがあります(ゴースト入力)。
- →
7. 文系への翻訳
- 入力 (Input): Picoの耳。外の状況を聞くこと。
- 出力 (Output): Picoの口。外にアクションすること。
- プルダウン: 「基本はNO(0)だよ」という初期設定。これがないと、Picoは「どっちかな〜?」と迷ってフラフラします。
8. 今日の達成
「Picoに『触覚』を与えた!」
9. 次へ
単純なON/OFFはできましたが、もっと複雑なことをしたくありませんか? 「1回押したら点きっぱなし」「2回押したら点滅」など。 そのためには「性格(条件分岐)」を詳しく学ぶ必要があります。