第十七項 モーター制御・DCモーター
電子工作創作表現(2019/11/1)
スライドPDF
電気による駆動
- 電気でものを動かす方法は基本的に「磁力」
- コイルを複数組み合わせて動かすのがモーター
電気エネルギーを何かに変換して物を動かそうとするとき、一般的に普及しているものは基本的に磁力を使って動かします。コイル状の電線に電気を流すと磁界が生まれるので、その力を動力として応用しているのがモーターです。
モーターとドライバ
- モーターは、得意な事に応じて制御方法が異なる
- 使いたいモーターに応じてドライバを選定する
コイルに電気を流して回転動力を得る、というのがモーターの基本原理ですが、細かな構造は種類によっても異なります。構造の違いによって得意な事が変わってくるので、用途別に様々なモーターが開発されており、私達は使いたい要件に応じてそれらを適切に選ぶ必要があります。
同時に、モーターを動かすためのドライバにも種類があるので、モーターに合ったドライバも選ぶ必要があります。今回はいくつかのモーターとそのドライバの特性、使い方を解説していきます。
モーターの種類
- DCモーター
- PWMサーボモーター
- ステッピングモーター
大きく分けて3つの種類を紹介します。
DCモーター
- 電気を流すだけで回るモーター
- 流す方向で正転・逆転が変わる
- 「ブラシ付きモーター」とも
まず最も構造がシンプルで制御も簡単なのがDCモーター。これは電気を流せば回るというものでブラシ(整流子)によって磁性が切り替わり回転動力を生み出します。電流を流す方向で正逆の向きを変えられるようになっています。
DCモーターの種類
- 円筒型が基本形
- ピンにギヤが付いて減速されるが力が強い「ギヤードモーター」も同じ
DCモーターは円筒型が多く、上面にネジ穴が付いているのでこれでパネルに取り付けることが多いです。ブラシの付いた軸がそのまま露出しているものに加えて、あらかじめギヤが取り付けられている「ギヤードモーター」というものがあるのですが、それらは回転速度が遅い分強い力でものを動かすことができます。
DCモーターの選定
- 大きさ
- 駆動電圧
- 回転数
- トルク
どんなモーターを選ぶかですが、主に上記4つのような要素があります。駆動電圧は6,9,12,24Vなどがあって、同じスペックで電圧の違う物などがありますので同時に使う他の機器と電源を共有できるように選定することができます。
回転数は駆動電圧をかけた時の回転する速さを表していて、rpmという単位が使われるのが一般的です。
ある程度重い物を動かしたい時にはトルクも見る必要があります。単位はN・mやkgf・mがよく使われます。
動作を切り替えるための「Hブリッジ」
プラスマイナスを繋ぎ変えれば回転方向を簡単に切り替えられますが、自動的に回路を繋ぎ変えるのは難しいです。そこで「Hブリッジ」と呼ばれる回路を使うと、スイッチをON/OFFすることでモーターに流れる電気の方向を切り替えることができるようになります。図ではスイッチを切り替えていますが、実際の駆動ではここにトランジスタやMOSFETが入ることで、マイコンから切り替えができるようになります。
画像:https://micro.rohm.com/jp/techweb_motor/knowledge/basics/basics-03/260
モータードライバ
- 2つのINで正逆をコントロールする
- 物によってはPWMによる速度コントロールも使える
デジタルで制御するとなると回路が複雑になりますが、それを簡単にできるようにしてくれているのがモータードライバです。
DCモーター用のドライバは、一般的に2つのインプットが付いており、片方をHIGH、片方をLOWにしてドライブし、逆転させたい時はHIGH・LOWの関係を逆にします。ドライバによっては、HIGH側のピンにPWMを載せることで速度コントロールのようなこともできます。
主なドライバの違い
- 同時に動かせる数(1個か2個が多い)
- 駆動電圧
- 定格電流
- 保護回路の有無
DCモーターだけでもたくさんのドライバがあって、値段もまちまちです。主に見ておくべきものとしては上記の要素があります。モーターや用途によって適切なものを選ぶ必要があります。
ドライバの例1
TB6643:比較的安く、制御もシンプル。1個だけ簡単に動かしたい時にはこれで十分
http://akizukidenshi.com/catalog/g/gI-07688/
代表的なものをいくつか紹介します。まず1個目はTB6643という東芝のモータードライバICです。DCモーター1個を動かすことができ、保護回路もいくつかついています。値段も比較的安いので、とりあえず動かしたいというような時に便利なドライバです。
ドライバの例2
MC33926:Pololuなどが1個用、2個用のモジュール基板を出している。IC自体が小さいので小型化しやすい(発熱に注意)電流センサや逆起電力保護などが付いて高機能だが、やや高い(写真の物は4000円程)
https://www.switch-science.com/catalog/581/
続いてもう一つが、freescale社のモータードライバMC33926です。これは単品では面実装ICなのですが、pololuなどがモジュール基板を作っています。薄いので小型化しやすく、電流センサが内蔵されていたり基板上に逆起電力保護機能などが付いているのでIC単体よりも高機能ですが、その分やや値段が高くなります。
モーターを動かす
- サンプルはMC33926
- ArduinoのOUTにドライバのINを接続
- 駆動電源はVINに繋いで、必要な電圧をDCジャックに入れる
DCモーターを動かすためのサンプル基板&コードです。Arduinoの出力にモーター入力を入れて、電源ラインはArduinoのVINとつなぎます。ArduinoはDCジャックに18Vまで入れることで、VINを経由して5Vを超える電源を共有することができるようになっています。
#define MOTOR_A 9
#define MOTOR_B 10
void setup()
{
pinMode(MOTOR_A, OUTPUT);
pinMode(MOTOR_B, OUTPUT);
}
void loop()
{
runMotor(true);
delay(500);
stopMotor();
delay(500);
runMotor(true);
delay(500);
stopMotor();
delay(500);
}
void runMotor(bool dir)
{
digitalWrite(MOTOR_A, dir);
digitalWrite(MOTOR_B, !dir);
}
void stopMotor()
{
digitalWrite(MOTOR_A, false);
digitalWrite(MOTOR_B, false);
}