タイトルにはMicro:bitの表記があるが、今回の記事はマイクロビットは関係ないことを予め書いておく。

前回のBBC Micro:bitのプルダウン抵抗1の記事で、プルダウン抵抗を用いてみた。

今回はプルダウン抵抗とはそもそも何なのか?という事について触れる。


今回の記事も何十回も読み直しているバイブルと化したバイブルと化しているラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作 作る、動かす、しくみがわかる! - ブルーバックスシリーズの特設ページを参考にして話を進める。


pulldown_resistor_switch_off


pulldown_resistor_switch_on


上の図のように電圧源とマイクロビットのGPIOピンを繋ぎ、スイッチを押したらGPIO 0 に向かって電流が流れる仕組みを見る。

画面真ん中あたりにある回路から離れたり接したりするものがスイッチを表している。


一見問題ないように見えるけれども、スイッチが押されていない時に回路が断線しているのは、GPIO 0 の値が不安定になり問題があるらしい。

なので、


pulldown_resistor_gnd_switch_off


スイッチが押されていない時でもGPIO 0 周辺の回路が成立しているように上の図のようにGPIO 0 と分岐するようにGNDに繋いでおくと良いらしい。

これでスイッチを押していない時でもGPIO 0 はLOWの状態でいることが出来るようになる。

※最初の回路ではGPIO 0 はLOWの値を取れないらしい。


ただし、この回路には大きな問題がある。

GPIO 0 は電流信号を送受信するピンであるため、電流信号の4-20mAになるように内部で抵抗がかましてあるはずだ。

4-20mA電流信号


pulldown_resistor_gnd_switch_on

スイッチを押してしまうと、GPIO 0 とGNDの箇所で分流が発生すると思いきや、抵抗がない下方向に向かって大電流が発生してしまう。

ショートは危険2の記事で見たショート(短絡)だ。


この問題を回避するために、


pulldown_resistor_gnd_res_switch_off


下向きのGNDの手前で10kΩの抵抗を設置しておく。

この抵抗をプルダウン抵抗と呼ぶ。


microbit_pulll-down_resistor2

前回作成した回路だと赤丸で囲った10kΩ抵抗がプルダウン抵抗になる。


抵抗の大きさは一般的に10kΩにしているみたい。

GPIO 0 の電流信号を4-20mAの範囲にするために、GPIOピンの抵抗がおそらく1kΩ付近であるはずなので、10倍以上の大きさのプルダウン抵抗にしておけば、スイッチを押した時に発生する分流はほぼGPIOピンの方に割り当てられるだろう。




プルダウン抵抗の他にプルアップ抵抗というものがあるけれども、

pullup_resistor_gnd_switch_off

スイッチと抵抗の位置が逆になり、スイッチを押していない時はGPIO 0 がHIGHになり、スイッチを押したらGPIO 0 がLOWになる。