Arduinoで遊ぶページ

Arduinoで遊んだ結果を残すページです。
garretlab
モータードライバ

概要

Arduinoにモータードライバをつないで、モーターの回転の制御を行うための実験です。

東芝のTA7291Pというモータードライバを使います。秋葉原で2個300円で購入しました。

目的

タミヤのツインモーターギヤボックスとトラック&ホイールセットを買いました。これと、モータードライバとを組み合わせて、キャタピラ車でも動かしてみようとしています。このため、モーターを制御する仕組みを調べていたら、モータードライバを利用するのが一番簡単そうでした。ここでは、キャタピラの制御に必要そうな、以下について実際にどうすればいいのかを確かめていきます。

  1. モーターの回転方向の制御
  2. モーターの回転速度の制御

データシート

TA7291Pのデータシートを参照して、まずは、何ができそうかを調査しました。

モーターの回転方向の制御

モーターの回転方向は、入力端子に与える電圧の組み合わせで制御できるようです。具体的には、以下の4パターンの制御が可能です。

入力 出力 モード
IN1(5番ピン) IN2(6番ピン) OUT1(2番ピン) OUT2(10番ピン)
0 0 ストップ
1 0 H L CW/CCW
0 1 L H CCW/CW
1 1 L L ブレーキ

CWは時計方向(ClockWise)、CCW(CounterClockWise)は反時計方向という意味です。回転方向を表すときに使われます。

Arduinoのデジタル出力を、TA7291PのIN1とIN2に接続すれば、モーターの回転方向を制御できそうです。

モーターの回転速度の制御

モーターの回転速度は、モーターに与える電圧を変えることで制御することができます。TA7291Pは、Vref端子(4番ピン)に与える電圧を変化させると、OUTに出力する電圧を変化させることができます。

Arduinoのアナログ出力を、TA7291PのVrefに接続すれば、モーターの回転速度を制御できそうです。

実験

モーターの回転方向が変わるのかと、回転速度がどのように変化するのかを実際に試しました。回転速度は回転数を測る機器を持っていないので、OUT1とOUT2の電圧を測りました。

測定条件

以下の条件で測定しました。

  1. Vcc = 5V
  2. Vs = 5V
  3. OUTはオープン(テスターだけを接続)

VccとVsには、Arduinoの5Vの出力をそのまま接続しました。通常は、Vsには別電源から電力を供給します。図に回路のイメージを示します。図中のValには、Arduinoのアナログ出力を接続しました。

ValをArduinoで変化させ、OUT1とOUT2のそれぞれの電圧、そして、OUT1とOUT2間の電圧を測定しました。

モーターの回転方向

IN1とIN2との入力を変えるプログラムを書いて、実際に試したところ、想定通りの結果が得られました。これは、当たり前ですね。

モーターの回転速度

モーターの回転速度というよりは、モータードライバの出力電圧ですが、計測結果を以下に示します。横軸は、arduinoのanalogWrite()の第二引数、V1はOUT1の電圧、V2はOUT2の電圧、V1-V2はOUT1とOUT2間の電圧です。

モータードライバの特性

結果から、ArduinoのanalogWrite()の第二引数に与える値とV1との関係は、以下のような関係にあることがわかりました。

V1 = 0.014*Val + 1.4、V1-V2 = 0.014*Val + 0.8

ただし、V1の単位はV(ボルト)、Valは、ArduinoのanalogWrite()に与える第二引数の値です。

例えば、マブチモーターのFA-130RAは、1.5ボルトから3ボルトの間で使うように指定されているので、analogWrite()の第二引数には、だいたい、50~150の間の数値を指定するのがいいということがわかります(上記の指定が電位差であればですが)。

実際には、モーター用に外部電源を使うことになるので、そのときには、再度測定を行う予定です。たぶん、乾電池を4個使うことになると思います。



メニューを表示するためにJavaScriptを有効にしてください。

Arduinoで遊ぶページ
Copyright © 2011 garretlab all rights reserved.
inserted by FC2 system