熊おふし五郎が行く

主にマイコンボードを動かした記録を書いています

Micro:bitでプルアップ回路とプルダウン回路の実験

概要

Micro:bitに内蔵されているプルアップ回路とプルダウン回路は、開発言語のコードで有効または無効にすることができます。この有効/無効を実験で動作確認します。
なお、プルアップ回路とプルダウン回路については、プルアップ回路とプルダウン回路を参照してください。

仕様書による確認

Micro:bitで使用されているプロセッサは、ARM Cortex-M0です。そのデータシート(最終閲覧日:2020年8月14日)に、I/Oポートの構成図(Fig 7. Standard I/O pad configuration)があります。この構成図でMicro:bitにプルアップ/ダウン抵抗が内蔵されていることがわかります。

f:id:bear_9973:20200823123755p:plain:w400
構成図

ただし、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の端子の電圧との関係を、以下の通りに実験で確認します。

  1. PULL_UP設定
  2. PULL_DOWN設定
  3. NO_PULL設定

用意するもの

用意するものを以下に示します。

  • Mu/Micropython(開発環境/開発言語)
  • Micro:bit:2つ
  • USBケーブル
  • 電池ボックス:2つ
  • 電圧計
  • ワニ口クリップ (テストリード)

PULL_UP設定

以下のサンプルコードを実行して、pin0を電圧計で測定します。

from microbit import *

pin0.set_pull(pin0.PULL_UP) # プルアップ抵抗を設定

while True:
   pass

測定結果を以下に示します。pin0にプルアップ抵抗を設定すると、電源電圧と同等の3.3 Vでした。

f:id:bear_9973:20200823123957j:plain:w400
プルアップ抵抗の実験結果

PULL_DOWN設定

以下のサンプルコードを実行して、pin0を電圧計で測定します。

from microbit import *

pin0.set_pull(pin0.PULL_DOWN) # プルダウン抵抗を設定

while True:
   pass

測定結果を以下に示します。pin0にプルダウン抵抗を設定すると、0 Vでした。

f:id:bear_9973:20200823124140j:plain:w400
プルダウン抵抗の実験結果

NO_PULL設定

以下のサンプルコードを実行して、pin0を電圧計で測定します。

from microbit import *

pin0.set_pull(pin0.NO_PULL) # プル設定をしない

while True:
   pass

測定結果を以下に示します。pin0に"プル設定をしない"に設定すると、0.3 Vでした。
※この実験結果は正しいことの根拠は未調査

f:id:bear_9973:20200823140611j:plain:w400
プル設定をしないの実験結果