Micro:bitでプルアップ回路とプルダウン回路の実験
概要
Micro:bitに内蔵されているプルアップ回路とプルダウン回路は、開発言語のコードで有効または無効にすることができます。この有効/無効を実験で動作確認します。 なお、プルアップ回路とプルダウン回路については、プルアップ回路とプルダウン回路を参照してください。
仕様書による確認
Micro:bitで使用されているプロセッサは、ARM Cortex-M0です。そのデータシート(最終閲覧日:2020年8月14日)に、I/Oポートの構成図(Fig 7. Standard I/O pad configuration)があります。この構成図でMicro:bitにプルアップ/ダウン抵抗が内蔵されていることがわかります。
ただし、Micro:bitの端子からプロセッサまでの間にプルアップ/ダウン抵抗があるかどうかは、確認できませんでした。
使用する関数
MicroPythonは、PULL_UP、PULL_DOWN、NO_PULLで設定できます。pin0にプル設定する例を以下に示します。
pin0.set_pull(pin0.PULL_UP) # プルアップ抵抗を設定 pin0.set_pull(pin0.PULL_DOWN) # プルダウン抵抗を設定 pin0.set_pull(pin0.NO_PULL) # プル設定をしない
実験のサンプルソフト
MicroPythonのプル設定とMicro:bitの端子の電圧との関係を、以下の通りに実験で確認します。
- PULL_UP設定
- PULL_DOWN設定
- NO_PULL設定
用意するもの
用意するものを以下に示します。
PULL_UP設定
以下のサンプルコードを実行して、pin0を電圧計で測定します。
from microbit import * pin0.set_pull(pin0.PULL_UP) # プルアップ抵抗を設定 while True: pass
測定結果を以下に示します。pin0にプルアップ抵抗を設定すると、電源電圧と同等の3.3 Vでした。
PULL_DOWN設定
以下のサンプルコードを実行して、pin0を電圧計で測定します。
from microbit import * pin0.set_pull(pin0.PULL_DOWN) # プルダウン抵抗を設定 while True: pass
測定結果を以下に示します。pin0にプルダウン抵抗を設定すると、0 Vでした。
NO_PULL設定
以下のサンプルコードを実行して、pin0を電圧計で測定します。
from microbit import * pin0.set_pull(pin0.NO_PULL) # プル設定をしない while True: pass
測定結果を以下に示します。pin0に"プル設定をしない"に設定すると、0.3 Vでした。 ※この実験結果は正しいことの根拠は未調査