WRX micro:bitを車両で使う その23 DCモーターを制御する(TB6612FNGドライバ)

2020年5月6日micro:bit,社外部品・DIY

今回はmicro:bitでDCモータードライバ(TB6612FNG)を搭載したブレイクアウトボードを使用して、DCモーターの回転速度や回転方向の制御を行ってみます。DCモーター用のブレイクアウトボードは、いつものkeyestudioブランドの物を購入しました。

スポンサーリンク

購入した物

DCモーター制御用ブレイクアウトボード

ブレイクアウトボードはこれまで様々な用途の物を購入していますが、個人的にkeyestudioブランドの物が信頼性が高いと感じています。メーカーサイトとは別にwikiページでの解説もあるので、使い方等も理解し易いです。

今回購入した、DCモーター用のブレイクアウトボードは型式「ks0308」の「Motor Drive Breakout Board for micro bit」という物です。東芝の「TB6612FNG」ドライバを搭載していて、同時に2個のDCモーターを制御出来ます(正転/逆転/ブレーキ/停止)。またアナログ出力によるPWM(パルス幅)の指定でDCモーターの回転速度も制御出来ます。その他、micro:bitの各入出力端子が3Vまたは5V、GNDでそれぞれ3ピンヘッダーで用意されています。注意点として別途DC6~12Vの電源入力が必要です。

DCモーター

DCモーターは工作用として最も一般的なのは130型かと思いますが、今回はRE-260型を購入しました。適正電圧はDC3.0V、適正負荷時の回転数は8900rpmとなっています。後々にこのDCモーターを使ってある物を作る予定ですが、回転数が目的に近い事がRE-260型を購入した理由になります。※上記モーターには既に別途ギヤを付けています。

接続

ブレイクアウトボードにmicro:bit本体を接続し、さらにブレイクアウトボードの下部にある青い端子台にDC電源「G(-)・VM(+)」とDCモーター(A1・A2またはB1・B2)を接続します。電源は今回、単3電池4本(1.5V*4)で6Vを供給します。DCモーターの接続(+、-)については、それによって回転方向が変わりますが、ここでは特に意識していません。

※micro:bit本体の入出力端子にも3Vがありますが、合計90mA以上を必要とする場合は外部から電源を供給する必要があるとされています(micro:bit電源仕様)。

※2020年11月にmicro:bitの本体バージョンが「2.0」になり、端子から供給出来る電源容量が200mAまで増えています。ただしこれまでの古いmicro:bit(~v1.5)の電源容量が更新される訳ではありません。

プログラム

Microsot MakeCodeで開く

wikiページに解説もありますが、DCモーターの制御はとても簡単です。拡張機能を追加する必要もありません。プログラム上で使用する端子はモーターA(ボードの端子A1・A2)はP1(アナログ)とP12、P13、モーターB(ボードの端子B1・B2)はP2(アナログ)とP15、P16です。

上記のプログラムではmicro:bitのAボタンを押している間は高速回転、Bボタンを押している間で低速逆回転します。それぞれボタンを離すと停止(空転停止)しますが、A+Bボタンでブレーキによる制動が掛かります。DCモーターは1個でA側に接続しています。

速度の指定

P1またはP2を「アナログで出力する端子」ブロックで0~1023の範囲で数値を指定する事で、DCモーターの速度が決まります。ただしあまり小さな数値ではモーター自体を回転させる力(トルク)が足りないので、ある程度の数値が必要です。

回転方向の指定

P12とP13、またはP15とP16でどちらかを「1」、もう一方を「0」とするとDCモーターが指定した速度で回転します。さらに「1」と「0」の指定をそれぞれ逆にする事で、DCモーターは先の回転から逆方向に回転します。

ブレーキ・停止の指定

P12とP13、またはP15とP16で両方を「1」とするとブレーキが掛かります。両方を「0」とした場合は停止(空転)です。ただしブレーキと言っても保持力はほとんど無く、制動が掛かって回転状態からの減速が早くなります。

その他

※東芝デバイス&ストレージ株式会社、TB6612FNGデータシートpdfより転載

各入力とモーター出力の関係は上記の様になっています。またmicro:bitのプログラム上で最初にP14を「1」にしていますが、これはスタンバイ(STBY)になる様です。

DCモーター電圧について

今回、keyestudioのDCモーター制御用ブレイクアウトボードを使用するにあたって当初から疑問だったのは、DCモーターに掛かる電圧です。ブレイクアウトボードに供給する電源はDC6~12Vですが、実際にモーター駆動用として出力される電圧が不明でした。DCモーターは電圧を変化させる事で回転速度が変わりますが、レギュレーターによってブレイクアウトボード上で3Vと5V電圧が作られているので、最大5Vなのかと想像だけはしていましたが。

そこでブレイクアウトボードに単3電池8本で合計12Vを供給し、アナログの指定値を最大の「1023」とした上で実際にテスターで電圧を測定してみた所、供給した電圧そのままの値になってしまいました。上記では乾電池がだいぶヘタっているので供給側からもDC10Vしかありませんが、出力もDC10Vになりました。またアナログ指定を半分の「511」にすると出力もDC5V程度になりました。

※東芝デバイス&ストレージ株式会社、TB6612FNGデータシートpdfより転載

上記は先と同じ、TB6612FNGデータシートに記載されている内容ですが、出力端子O1とO2は確かに「VM」に繋がっています。先に見ておけば良かった。

従って利用するDCモーターの適正電圧に合わせて、供給する電圧やアナログの指定値を調整する必要があります。今回の私の場合はDCモーターの適正電圧3Vですが、ブレイクアウトボードは最低DC6Vの供給なので単3電池4本で6Vを供給した上で、アナログの最大指定値を半分の「511」とするのが良さそうです。

keyestudioのwikiページで紹介しているモーターはロボット用のギヤ付きDCモーターで、電圧は6Vです。また供給電圧は3.7Vの18650リチウムイオン電池が2本なので、約7Vです。ほぼ適正電圧になっています。

・・・ただし実際には今回、3VのDCモーターに10Vを掛けてしまいました。かなり強力に回転しましたが、正常な回転を保証する訳ではありません。モーターの故障にも繋がります。

モーターのノイズについて

ブラシ付きの直流モーターを使用する場合、コンデンサーをモーターの端子間に接続してノイズ対策を行いますが、今回のブレイクアウトボードを使用するにあたって、あえてコンデンサーは接続しませんでした。理由はボード上にコンデンサーが用意されている様に見えた為です。

※東芝デバイス&ストレージ株式会社、TB6612FNGデータシートpdfより転載

TB6612FNGデータシートにも応用例の回路図に、ノイズ吸収用コンデンサーの指示が記載されています。ブレイクアウトボードがこの応用例通りであれば良いのですが、コンデンサーを接続していない現状でも、DCモーターの回転に不具合はありません。ただしDCモーター周辺への影響は不明です。

今後は今回のDCモーターとブレイクアウトボード、また前回記事の7セグメントLEDを使用して、ある物を作る予定です。

「micro:bit」関連記事

以下は「micro:bit」タグの記事一覧です(投稿順)。現在の記事とこれ以降に投稿した記事も含みます。

その他

FA用PLCとELM327を使用した「OBD2」関連の記事は以下の記事から始まります。

注記

    • このブログ内で書いている内容はあくまで私の利用する製品(アプリ含む)や機器での場合です。他メーカーの製品や機器をはじめ、同じメーカーの製品・機器であってもバージョン違い等の場合もあるので、記事内容の保証や責任を負う事は出来ません。
    • 記事内で紹介している製品や、その他の類似製品を購入・利用する場合はそのメーカーや購入先で仕様等を確認し、自己判断と自己責任の下で利用して下さい。
    • 記事内で公開しているmicro:bit用プログラムは自由に利用・改変して頂いて構いません。ただし不具合やバグもありますので、プログラムを利用した際の故障や事故等についての保証や責任を負う事は出来ません。自己判断と自己責任の下で利用して下さい。
    • micro:bit製品やプログラミング、その他記事内容について個別の問合せや依頼を頂いても回答する事は出来ませんので、予め御了承下さい。
    • BBC micro:bitは、micro:bit教育財団の登録商標です。その他のブランド名または製品名は各所有者の商標です。