2.5 ボタンの値を読み取る

これらのピンは、その名前が示すようにGPIO(汎用入出力)として、入力と出力の両方の機能を持っています。以前は出力機能を使用しましたが、この章では入力機能を使用してボタンの値を入力します。

必要なコンポーネント

このプロジェクトでは、以下のコンポーネントが必要です。

まとめてキットを購入する方が便利です、リンクはこちら:

名前

このキットに含まれるアイテム

リンク

ケプラーキット

450以上

Kepler Kit

以下のリンクから個別にも購入できます。

SN

コンポーネント

数量

リンク

1

Raspberry Pi Pico W

1

BUY

2

Micro USBケーブル

1

3

ブレッドボード

1

BUY

4

ジャンパーワイヤー

いくつか

BUY

5

抵抗器

1(10KΩ)

BUY

6

ボタン

1

BUY

回路図

sch_button

ボタンの片側ピンが3.3vに、もう一方のピンがGP14に接続されていれば、ボタンが押された状態でGP14がハイレベルになります。しかし、ボタンが押されていない場合、GP14は未定義状態となり、ハイかローかが不明です。ボタンが押されていない時に安定したローレベルを得るためには、10Kのプルダウン抵抗を介してGP14をGNDに再接続する必要があります。

配線

wiring_button

注釈

4ピンのボタンはH型になっています。左の2ピンか右の2ピンが接続されており、中央のギャップを越えると、同じ行番号の2つの半行が接続されます。(例えば、私の回路では、E23とF23が接続されていますし、E25とF25も接続されています)。

ボタンが押されるまで、左右のピンは互いに独立しており、一方から他方への電流の流れはありません。

コード

注釈

  • kepler-kit-main/micropython パス下の 2.5_read_button_value.py ファイルを開くか、このコードをThonnyにコピーしてから、「Run Current Script」をクリックするか、F5キーを押して実行してください。

  • 右下隅の「MicroPython(Raspberry Pi Pico)」インタープリタを選択することを忘れずに。

  • 詳細なチュートリアルについては、 コードを直接開いて実行する を参照してください。

import machine
import utime
button = machine.Pin(14, machine.Pin.IN)
while True:
    if button.value() == 1:
        print("You pressed the button!")
        utime.sleep(1)

コードが実行されると、シェルに「You pressed the button!」と表示されます。

プルアップ動作モード

次は、プルアップモードでボタンを使用する場合の配線とコードです。

sch_button_pullup

wiring_button_pullup

プルダウンモードとの唯一の違いは、10Kの抵抗が3.3Vに接続され、ボタンはGNDに接続されているため、ボタンが押されるとGP14がローレベルになることです。これはプルダウンモードで得られる値とは逆です。 したがって、このコードを if button.value() == 0: に変更するだけです。

参考資料もご覧ください: