pullup_resistor_gnd_switch_off


BBC Micro:bitのプルダウン抵抗2の記事でプルダウン抵抗を組み立ててみた。

これから本題のマイクロビットの標準機能のプルダウン抵抗について見ていきたい。


まずは下記のコードを試した。

from microbit import *

pu = pin0.get_pull()
display.scroll(pu)

フラッシングが終了した時点で下記のエラーが出力された。

line3 valueError Pin 0 in unused mode.

GPIO 0 ピンを使っていないとどうやらエラーになるらしい。

念の為に下記のコードも試してみた。

from microbit import *

md = pin0.get_mode()
display.scroll(md)

結果は下記になった。

unused



microbit_pulll-down_resistor


上記の状態のままにして、下記のコードを作成してみた。

from microbit import *

while True:
    # デジタル信号を受け取った後に改めて、モードとPULLの設定を確認する
    if pin0.read_digital():
        md = pin0.get_mode()
        display.scroll(md)
        sleep(500)
        pu = pin0.get_pull()
        display.scroll(pu)

実行結果は下記の通り。

read_digital
0

どうやら、GPIOピンで何らかの事をすると、自動でモードとプルの設定が行われるらしい。

ただ、get_pull()の結果の 0 の意味が何なのか?がわからない。




get_pull()からどんな値が返ってくるのか?を把握するために下記のコードを試した。

from microbit import *

while True:
	pin0.set_pull(pin0.PULL_UP)
	sleep(500)
	pu = pin0.get_pull()
	display.scroll(pu)
	sleep(500)
	pin0.set_pull(pin0.PULL_DOWN)
	sleep(500)
	pu = pin0.get_pull()
	display.scroll(pu)
	sleep(500)
	pin0.set_pull(pin0.NO_PULL)
	sleep(500)
	pu = pin0.get_pull()
	display.scroll(pu)
	sleep(500)

実行結果から、

PULL_UP:0

PULL_DOWN:1

NO_PULL:2

であることがわかった。


この結果から、GPIOピンでread_digital()をすると、自動でPULL_UP(プルアップ抵抗)に設定されるらしい。




マイクロビットの標準機能である内蔵されたプルダウン抵抗を使ってみる為に下記のコードを試した。

from microbit import *

display.show(Image.SAD)

pin0.set_pull(pin0.PULL_DOWN)

while True:
    if pin0.read_digital():
        display.show(Image.HAPPY)
        sleep(2000)
        display.show(Image.SAD)

勇気を出して、自作のプルダウン抵抗を外してみた。


microbit_std_fn_pull_down


実行結果はショートすることなく、BBC Micro:bitのプルダウン抵抗1の動画と同じになった。