BBC Micro:bitとトランジスタの記事で、マイクロビットとトランジスタでDCモータのGeekServo 9G Motor-Redを回してみようと試みたが回らなかった。

電気回路とマイクロビットを含めたマイコンの理解を深め、改めて挑戦してみた。


先に結果を載せておくと、



無事、DCモータを回す事が出来た。




マイクロビット、トランジスタとDCモータは上の図のように設置した。

NPN型トランジスタのベースにマイクロビットのGPIO 0 ピンを付け、途中に4.7kΩの抵抗をかました。


DCモータの電源はマイクロビットの3.3Vから供給する事にし、途中に抵抗はかまさない。

トランジスタ3電流増幅作用の記事で用いた図のLEDの箇所をDCモータに置き換えて説明を記載する。

トランジスタとDCモータ間(コネクタ-エミット間)では、今回のDCモータが3.3Vで動作するということで、電圧はそのままで良いという判断をして抵抗器は設置しなかった。


ベースに設置した4.7kΩの抵抗は、いつも話題に挙げているラズパイ4対応 カラー図解 最新 Raspberry Piで学ぶ電子工作 作る、動かす、しくみがわかる! - ブルーバックスシリーズの特設ページの応用演習のPDFを参考にし、DCモータに100mAに増幅された電流信号を流すことを目標にした。

4-20mA電流信号


100mAはギリギリの電流になるが、大きな値の電流を流すのは怖いのでギリギリにした


今回使用したトランジスタは2SC1815L-GRであり、増幅率hFEは200だとする。

トランジスタ4増幅率


ベースに流した電流を増幅する場合、トランジスタのベースとエミッタ間で0.6Vの電圧を必要とすることを考慮に入れる必要があるらしい。

これらの内容を踏まえた上でのマイクロビット-ベース間の抵抗R2は下記の計算で導いた。

R2 = (マイクロビットのGPIO 0 ピンの電圧 - ベース-エミット間の電圧) / (目標の電流 / 増幅率hFE)

R2 = (3.3 - 0.6) / (0.100 / 200)

R2 = 2.7 / (0.1 / 200) = 5400 = 5.4kΩ

※電流信号分のアンペアは考慮に入れなくてよいのか?


DCモータは電流が100mAよりも大きくても問題ないため、4.7kΩの抵抗器を用いることにした。




マイクロビットの方のコードは下記の通り

from microbit import *

pin1.write_digital(0)

while True:
    if button_a.is_pressed():
        pin0.write_digital(1)
    if button_b.is_pressed():
        pin0.write_digital(0)

この結果は記事の途中に挿入した動画の通り。


実際に動作したことを見れたことによって、トランジスタの理解が少し進んだような気がした。