マイクロビット(e_41)DCモータ ドライバー TA7291P
DCモータ TA7291P
micro:bitを使ってDCモータを動かしてみようと思います。正転、逆転、速度可変の動作を確認します。
DCモータはDG01DとFA-130RAを試しました。
モータドライバーは手元にあるTA7291Pを使いました。※TA7291Pは生産終了しているそうです。
TA7291P
TA7291Pはフルブリッジドライバです。DCモータの正逆回転の切替ができます。
TA7291Pの外観です。
TA7291PはフルブリッジドライバとかHブリッジドライバと言われるようです。代替品を探すキーワードになりそうです。
フルブリッジドライバは4つのスイッチ(トランジスタなど)を使って負荷に流れる電流の向きを変える事が出来ます。
下図で①④をONすると正向きに電流が流れます。②③がONすると逆向きに電流が流れます。負荷がDCモータなら正転、逆転で回転することになります。
TA7291Pは大まかにはこんな感じの動作をするICです。以下がTA7291Pのブロック図です。IN1、IN2でトランジスタの切替をしてくれます。
TA7291Pのブロック図 (TA7291Pのピン番号は左端) ※TOSHIBAのデータシートより
負荷がDCモータならIN1、IN2の状態で以下の動作になります。※TOSHIBAのデータシートより
DCモータを動かす
PWM出力するmicro:bitのピンとTA7291PのIN1、IN2ピンをレベルコンバータを介して接続しました。
TA7291Pの入力端子IN1、IN2 High(3.5~5.5V)、LOW(GND~0.8V)なので、DCモータの動作電源は5.0Vにしました。トランジスタの飽和電圧を考えるとモータには~3.5V程度になりそうです。
DCモータはDG01DとFA-130RAを試してみました。
接続例
micro:bitからのPWM出力のピンは6、7を使いました。
10kΩの抵抗はTA7291PのVref端子を使わない場合の保護抵抗です。詳細はTA7291Pのデータシートを参照ください。
※micro:bitのピン配置図は「https://tech.microbit.org/hardware/edgeconnector/」からの引用です。
実体図
スクリプト
TA7291Pを使ってDCモータの制御動作を確認するスクリプトは以下のようにしました。※thonny-microbitのMicroPythonを使っています。
PWM出力するmicro:bitのピンは6、7を使いました。通常はdisplayで使われているのでoffする必要があります。
周期を20msecに設定しています。
モーターが動作するPWM値が190以上くらいだったので、PWM値を192,256,512,1023と順次変更し各値で逆回転>正回転をしています。
from microbit import *
# 前後回転 リストデータで ブログ用動画
HS=pin6 # PWM >> TP7291P IN1
LS=pin7 # PWM >> TP7291P IN2
# FWD IN1(H/PWM)IN2(L/0)
def FWD(pwm):
LS.write_analog(0) # analogモード、出力は’0’V
HS.set_analog_period(20) # 周期を設定 20msec
HS.write_analog(pwm) # 0 ~ 1023 128~
sleep(5) # 切替100us~
# BWD IN1(L/0)IN2(H/PWM)
def BWD(pwm):
HS.write_analog(0)
LS.set_analog_period(20)
LS.write_analog(pwm)
sleep(5)
# Break IN1(H)IN2(H)
def BRK():
HS.write_digital(1) # IN1
LS.write_digital(1) # IN1
sleep(5)
# STOP IN1(0)IN2(0)
def STP():
HS.write_digital(0) # IN1
LS.write_digital(0) # IN1
sleep(5)
# pin6,7を使うのでdisplayをオフ
display.off()
STP()
#for i in [780,800,900,1023]: FA-130RA 1023(2.05V)
for i in [192,256,512,1023]: # DG01D 1023(3.13V)
print('PWM',i)
BWD(i)
sleep(2000)
FWD(i)
sleep(2000)
STP()
実行結果
ThonnyのShellに表示された結果です。
>>> %Run dcm_ta7291_test_03b.py
PWM 192
PWM 256
PWM 512
PWM 1023 # ちなみにモータ間の電圧は3.13Vでした。(電源は5V)
DG01Dモータ動作の動画
同じように、金属ブラシ付き小型直流モーターFA-130RA-2270を試してみました。(偽物かもしれないが・・)
PWM値を780,800,900,1023と順次変更しています。
ThonnyのShellに表示された結果です。
>>> %Run dcm_ta7291_test_03b.py
PWM 780
PWM 800
PWM 900
PWM 1023 # ちなみにモータ間の電圧は1.95Vくらいでした。(電源は5V)
FA-130RAモータ動作の動画
まとめ
micro:bitからフルブリッジドライバTA7291Pを使ってDCモータの基本的な動作をさせることができました。