#モータの種類と制御方法
##DCモーター
マブチの130モーターなどです。
(画像https://www.mabuchi-motor.co.jp/motorize/branch/motor/)
制御方法はモーターの電流を正方向+に流すと正方向に回転、逆方向-に流すと逆方向に回転します。
図.DCモーター接続イメージ
##ステッピングモーター
(画像秋月電子:http://akizukidenshi.com/catalog/g/gP-06578/)
励磁のパターンで、モーターのステップ数を制御します。
この辺りは今回は扱いませんが、WIKIペディアより画像を添付します。
(画像ウィキペディア:https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC)
励磁の順を変更して行くことでモーターが回転します。
図.ステッピングモーター接続イメージ
##サーボモーター
(画像秋月電子:http://akizukidenshi.com/catalog/g/gM-08761/)
制御線は電源/GND/制御信号の3本が必要になり、複数接続する場合は、サーボモーター毎に制御信号が1本必要になります。
大体20MS間のうちに制御信号のHIGH時間を500US~2500US 程度HIGHに制御することで右から左へ方向が変更されます。
通常真ん中 1500us程度な模様です。実際のサーボにあわせて制御します。
Arduinoですと角度を設定する事でパルス幅が自動的に変わります。
図.サーボモーター接続イメージ
##シリアルサーボモーター
シリアルサーボはuart(232c出力の5vや3.3v版)を用いて、uartによってコマンドを送信を行い制御します。
コマンドラインは1つで複数のモーターを接続する事ができます。なので電源/GND/制御線(コマンドライン)を並列化して何台もつなげることが可能です。制御方法は1番モーターは、120度へ、 2番モーターは90度へ等をuartのコマンドによって送信します。
図.シリアルサーボモーター接続イメージ
#マイコンでDCモーター制御
マイコンでモーターを制御する場合に、
図の接続で、
+側にHI 電圧を掛け、-側の電圧をLOWとすることで正回転
+側にLOW電圧を掛け、-側の電圧をHIGHすることで逆回転となることは1で記述しましたが、
実際にはもっと奥が深いのです。
たとえば、秋月電子さんで販売している。TA7291Pのマニアルを読むと制御信号と出力の関係は以下の様になっています。
1.ストップとは電圧の掛かっていない状態です。すなわち熱も発生しませんし、外力でモーターを回すことも可能です。
2.CW(CLOCKWISE)時計方向=正方向となります。
3.CCW(COUNTER CLOCKWIS)Eは半時計方向=逆方向となります。
4.ブレーキとはブレーキです。これは一体何???って思われる方が多いと思います。本当にブレーキです止める為のモードです。
この機能をうまく使わないと、慣性の法則をモロにくらってロボットもまともに動きません。
この状態にしておくと、外力でモーターを回すことは難しい状態になります。
ただし、その分、熱が発生しますので、注意も必要です。**
#DCモータースピード制御
モーターの回転制御を説明しましたが、スピードはどのように調整するのでしょうか?
それは以下の様に時間で区切ってCWやCCWになる時間を多くしたり、少なくしたりする事で制御します。
たとえば、CWを例とすると、
1.CWの状態を10MS間行う。
2.ブレーキもしくはストップの状態10MS間行う
上記の1.(CW)/2.(ブレーキもしくはストップ)を連続的にくり返す
これによって、モーターに掛かる電圧の総量は通常時の半分となりるので、モーターの電圧を半分に落とした状態と同じ事になります。
よって、回転速度が遅くなります。
(ブレーキとストップで、スピードも変わりますので、実際には動作させて確認してください。)
今回はDCモーターの制御方法について解説しましたが、次回機会がありましたら、他の制御方法についても寄稿できればと思います。