2.5 ボタンの値を読み取る¶
これらのピンは、その名前が示すようにGPIO(汎用入出力)として、入力と出力の両方の機能を持っています。以前は出力機能を使用しましたが、この章では入力機能を使用してボタンの値を入力します。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
まとめてキットを購入する方が便利です、リンクはこちら:
名前 |
このキットに含まれるアイテム |
リンク |
---|---|---|
ケプラーキット |
450以上 |
以下のリンクから個別にも購入できます。
SN |
コンポーネント |
数量 |
リンク |
---|---|---|---|
1 |
1 |
||
2 |
Micro USBケーブル |
1 |
|
3 |
1 |
||
4 |
いくつか |
||
5 |
1(10KΩ) |
||
6 |
1 |
回路図
ボタンの片側ピンが3.3vに、もう一方のピンがGP14に接続されていれば、ボタンが押された状態でGP14がハイレベルになります。しかし、ボタンが押されていない場合、GP14は未定義状態となり、ハイかローかが不明です。ボタンが押されていない時に安定したローレベルを得るためには、10Kのプルダウン抵抗を介してGP14をGNDに再接続する必要があります。
配線
注釈
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!」と表示されます。
プルアップ動作モード
次は、プルアップモードでボタンを使用する場合の配線とコードです。
プルダウンモードとの唯一の違いは、10Kの抵抗が3.3Vに接続され、ボタンはGNDに接続されているため、ボタンが押されるとGP14がローレベルになることです。これはプルダウンモードで得られる値とは逆です。
したがって、このコードを if button.value() == 0:
に変更するだけです。
参考資料もご覧ください: