今回はモータドライバ
TA7291Pを使ってSH7125でモータを回します。
マイコンへはモーターを絶対に直結しないでください。
マイコンが壊れます。モータを1方向にだけ回したい場合はトランジスタ1個あれば動かせます。
モータを正転逆転させたい場合、トランジスタを使おうと思うとすさまじくめんどくさいことになります。
Hブリッジまたはフルブリッジと呼ばれる回路です。
左上と右下の電子スイッチ(トランジスタ、FET)を同時にONすると正転します。
右上と左下の電子スイッチを同時にONすると逆転します。
左上と左下または右上と右下を同時にONすると抵抗も負荷もない回路に大量の電気が流れて電子スイッチが煙を吹いて壊れます。
壊れないように保護回路を入れる必要があります。
今回はその辺のめんどくさい事を1つのパッケージに収めてあるモータードライバを使います。
東芝製フルブリッジドライバTA7291P
http://akizukidenshi.com/catalog/g/gI-02001/
モータードライバの説明 モータードライバにはモーターを動かすための電源の他にドライバ内の回路(ロジック)を動かすための電源が必要なタイプがあります。TA7291Pはドライバ内部の回路を動かすための電源が必要なタイプです。
データシートを見てみます。
VS(モーター用電源):0~20V
VCC(ロジック電源):4.5V~20V
とりあえず5Vで動きます。
出力電流:1A(ピーク2A)
数mAヒョロヒョロのマイコン出力と違いたっぷり1A流せます。
さらにデータシートを見てみます。
端子説明
今回使うのはPタイプパッケージなので表のPの欄の端子番号に端子説明が該当します。
端子説明の表機能名 | 端子番号 | 説明 |
VCC | 7 | ロジック側電源端子 |
VS | 8 | 出力側電源端子 |
Vref | 4 | 制御電源端子 |
GND | 1 | GND |
IN1 | 5 | 入力端子(正転指令) |
IN2 | 6 | 入力端子(逆転指令) |
OUT1 | 2 | 出力端子(モータ端子A接続) |
OUT2 | 10 | 出力端子(モータ端子B接続) |
写真に合わせるとこんな感じ。
表記のない端子はNC(ノンコネクト)端子です。
4番に謎の制御電源端子Vrefがあります。
この端子に0~VSの間の電圧をかけるとモーターの速度コントロールができます。
が、この端子で速度制御を長時間やるとドライバーがかなり(火傷しそうなほど)発熱します。
速度制御はIN1,IN2をPWM制御しましょう。
※VrefにPWM信号を入れることもできますが、VCCとVSが異なる場合回路がめんどくさくなります。
ファンクションの表
入力 | 出力 |
IN1,IN2共に0 | 停止 |
IN1だけ1 | CW(ClockWise:時計回り) |
IN2だけ1 | CCW(CounterClockWise:反時計回り) |
IN1,IN2共に1 | ブレーキ |
CWとCCWの表記について
CW,CCWは一般的な英語の表記です。
で、CW/CCWおよびCCW/CWとなっているのはモーターの2本の端子をOUT1、OUT2どっちにつなぐかで正転逆転が変わってしまうので併記してあるだけでしょう。
停止とブレーキの違いについて
停止は単に電圧を加えていないだけ、ブレーキはOUT1とOUT2が内部で接続されて回生ブレーキが構成される状態です。
クローラーの場合はあまり差を感じませんが、2輪駆動にした場合特に旋回した場合に差がみられます。
回生ブレーキとはご存知の通り、モーターは軸を回すことで
発電機として機能します。
モーターへの電力供給を停止してもモーターは慣性の影響で
しばらく回ります。この間モーターは
発電を行いますがこの電気を使うことを
回生と呼びます。ここでモーターの端子間を接続すると
自分が発電した電気で自分を反対方向に回転させようとします。これが回生ブレーキです。ブレーキで回転が遅くなるとブレーキも徐々に弱くなり最終的には回転も発電も止まります。発電機をショートさせると煙を吹いて壊れますが、この程度のモーターであればすぐにモーターも止まるので危険はありません。
先の説明の通り、単なるHブリッジ回路の場合、入力端子1,2ともに1にすると内部でショートしてブリッジ回路が壊れます。これに対して今回使うモータードライバは入力端子1,2ともに1にしても壊れないだけでなくブレーキを使用できるので非常にありがたいパッケージです。
何はともあれこれを使ってモーターを回してみます。
材料の用意
・
モータードライバTA7291P×回したいモータの数
・モーター
130~
260ぐらい×回したいモータの数
・
電線(
AWG20、
AWG22程度を推奨)
・
ブレッドボード一式・
いつものマイコンボード・
いつもの5V電源(本当は2つ欲しい)
・
抵抗10kΩ×回したいモータの数×2
・
電解コンデンサ47μF(
応急処置用)
ブレッドボード追加部品
・電線(赤、黒各10cm程度)
・
電源端子(プラグ:オス)、または
こっち・
電源端子(ソケット:メス)・ゼムクリップ(電線の先の補強用)
・熱収縮チューブ(1.5mmと2mm)
今回はマイコン用電源をそのままモーター駆動にも使用します。
基本的に
マイコン用電源と
駆動用電源は分けなければいけませんが、今回は大目に見てください。
このページを一度公開した後にテストしたらやっぱり分けないとまずい事が判明しました。今回は苦肉の策としてコンデンサで安定化を行います。
5V電源が複数欲しくなる事は今後もありますので、買えるなら買っておきましょう。
モーターは3V~5Vで動くものであれば問題ないかと思います。
今回は不要ですが、今後ロボットを作りたいならモーターだけ回しても厳しいのでタミヤの工作セットのギヤボックスを買っておくと良いでしょう。
制御の定番であるライントレースを作っていくために、その他駆動系パーツも用意しておきます。
・
ツインモーターギヤボックス(モーターもついてきます)
・
ユニバーサルプレートセット・
トラック&ホイールセット Amazon(俗に言うキャタピラ)
車輪型だと色々考えないといけない事が多いのでキャタピラにしておきます。
Amazon使うなら、ダブルギヤボックス、トラック&ホイールセット、ユニバーサルプレート2枚のセット買いした方が良いかも。
下ごしらえ
<ブレッドボード用電源端子を作成する>
ブレッドボードに直接電源供給ができるように電源端子を作成します。
配線の半田付けは
こちらを参照
電源ソケットは写真の位置に配線をつけます。
ソケット側
プラグ側
ブレッドボードで使いまわす配線は先にゼムクリップを半田付けしておくと抜き差しがスムーズになります。(先に半田メッキをしておき、最後に半田を溶かしてくっつける)
写真はクリップに配線を半田付けするときの作業例です。
完成品
今回ゼムクリップの先を90度曲げています。
ブレッドボードに給電用の配線を固定してしまう場合は半田メッキだけしておけば十分です。
<モーターに配線をつけておく>
モーターによって配線が付いてたりついてなかったりします。
いつもは付属の配線を取り外して新しい配線をはんだ付けしていますが、今回は何でも構いません。
ハイパワーギヤボックス付属の260モーターには配線が付いていました。
ツインギヤボックス付属の130モーターには配線がついていません。
テストなので配線が付いていれば何でも構いません。
真面目にロボットを作成するときは必ず半田付けしてください。
配線の反対側はブレッドボードに挿すので配線がばらけないようによっておきましょう。
何度もテストする場合は半田メッキなり、ゼムクリップの半田付けなりしておくてください。
モータドライバを配線する
ブレッドボードを使ってモータドライバの配線を行います。
ブレッドボードの使い方はLED接続の回を参照
モータドライバをブレッドボードに挿し、電源とGNDを接続します。
最上段を
5Vライン、最下段を
GNDラインとしました。
1:GND
4:5V 速度制御
7:5V ロジック電源
8:5V モータ電源
今回はロジック電源、モータ電電源共に単一の5Vを使用します。
続いてモータを接続します。
2:モータ端子1
10:モータ端子2
先ほど作った電源端子も接続します。
再度配線が間違っていないか確認をしておきます。
これで準備は整いました。
モーターを回す
いよいよモーターを回します。
手動での動作確認
マイコンボードとブレッドボードを接続します。
電源を接続し、5Vラインと5番端子または6番端子を配線でつないでモーターがそれぞれ正転逆転すれば成功です。
5番の配線を接続したまま6番を接続するとモーターが少し早く止まるするはずです。
これが回生ブレーキです。
指でIN1,IN2を
指で触っただけでもモーターが回転してしまいます。
これは
サンプルプログラム変更や
プルアップ・プルダウンで説明したものと同じ現象です。
5Vをかけるとモーターが回るので、何もしていないときに確実に0Vになるよう10kΩの抵抗でプルダウンします。
モータードライバの1番端子がGNDなので1番と5番6番をそれぞれ抵抗でつなぎます。
これでIN1,IN2へ5Vをかければモーターが回るようになりました。
あとはマイコンの端子をIN1,IN2へ接続すればマイコンでモーターを制御できます。(はずでした)
マイコンでの動作確認
とりあえず秋月標準プログラムでモータを動かしてみます。
使用するのはSW1.cでもtera3でも構いません。
どちらでも良いので2つのLEDが交互に転倒することを確認しておきます。
次にマイコンボードとブレッドボードを接続します。
この間5V電源は接続しないでください。
・作成した電源端子でブレッドボードの電源とマイコンボードの電源を接続。
・念のためマイコンボードのGND端子とマイコンボードのGND端子を接続
・モータドライバのIN1,IN2へプルダウン抵抗のみが接続されていることを確認
・マイコンボードPE0、PE1をそれぞれマイコンボードIN1,IN2へ接続する
こんな状態。
で、試したらやっぱり電源の問題が出てきました。モーターを回すには瞬間的に大きな電流が必要になります。
電源が瞬間の大電力に十分対応していれば大きな問題にはなりませんが、今回はダメでした。
瞬間的に大きな電流が必要となる
↓
電源の電圧が一瞬5Vを下回る
↓
マイコンの電源電圧も一瞬5Vを下回るのでマイコンが誤動作を起こす(フリーズする)
という状態になりました。
完全に0Vまで低下すればCPUリセットがかかるのですが、中途半端な電圧になるとマイコンが暴走してしまいます。
先の説明の通り、マイコン制御用電源とモータ駆動電源は別にしてマイコンの安定化を行うべきなのですが今回は同一電源のまま無理矢理安定化を図ります。
電源に電解コンデンサを接続します。
電解コンデンサには極性があるので注意が必要です。
コンデンサの極性を間違えて接続するとコンデンサが盛大に破裂します。(5Vぐらいなら大丈夫?)
足が短く、本体に白いラインが入っている方がマイナスです。
白いラインの中に書いてある長方形はマイナス記号です。(たぶん)
これで一瞬電圧低下が起きそうになってもコンデンサに蓄えられた電力でカバーできます。
正しく配線が接続できていることを確認したら電源接続。
LEDの点灯に合わせてモーターが回れば成功です。
続いて
モーターの速度制御をしてみます。