モータードライバー(TA7291P)の使い方 [Arduino]
Arduinoでモータードライバー(TA7291P) を使用してモーターを「回転、逆回転、回転速度の調整」をする方法をご紹介します。
使用部品・材料
総額で約2450円です。(Arduino本体の値段を除く)
部品/材料 | 値段 | 備考 |
---|---|---|
ブレッドボード | ¥270 | 秋月電子の通販コード(P-00315) |
モータードライバ(TA7291P) | ¥150 | 秋月電子の通販コード(I-02001) |
タミヤ ユニバーサルプレート 2枚セット (70157) | ¥468 | |
タミヤ ツインモーターギヤーボックス (70097) | ¥587 | ギアは低速ギヤー比203:1のCタイプを使用します。 1つのモーターの電圧は恐らく1.5Vから3Vです。9Vでモーターを回すと超高速になりますのでモーターが壊れる可能性が高いのでご注意ください。 |
タミヤ マンモスダンプ 17013 | ¥819 | タイヤ2個と単3電池ボックスのみを使用しています。 [電池ボックスの使用例] |
単3電池 2本 | ¥50 | モーター用 |
コネクタ付コード(みの虫×ジャンパーワイヤ) | ¥110 | 単3電池ボックス用。 秋月電子の通販コード(C-08916) |
モーターにはリード線がありませんので「耐熱電子ワイヤー」(P-06756)や片側をカットした「ジャンパーワイヤー」を半田付けして下さい。その2本を繋ぐ場合は2本のリード線をつなぐをご参考にして下さい。
配線図
TA7291Pの使い方
次の写真が正面で、端子は左から「1,2,3 ... 10」と数えます。
端子 番号 | 端子 記号 | 説明 |
---|---|---|
1 | GND | グラウンド |
2 | OUT1 | 出力端子(モーター端子と接続) |
3 | NC | 非接続 |
4 | Vref | 制御電源端子(モーターの回転速度の調整。PWMで0-255の範囲を指定する。値が大きいほど回転が早くなる) ArduinoのデジタルピンはPWMが使用できる「3,5,6,9,10,11」のいずれかを使用します。また、このVrefを使用しないときは抵抗器(3kΩ以上)を介してVS端子(8番)に接続します。 出力電圧は「Vref ≦ VS」とします。Vrefの電圧を測定した所、約2.5Vです。VSの乾電池2本は3V(1.5V + 1.5V)ですので問題ないと思います。また、乾電池を4本にすると6Vになりますが、今度はモーターに負荷がかかります。 |
5 | IN1 | 入力端子(デジタルでHIGH or LOW) |
6 | IN2 | 入力端子(デジタルでHIGH or LOW) |
7 | VCC | ロジック側電源端子 |
8 | VS | 出力側電源端子(モーターの電源) |
9 | NC | 非接続 |
10 | OUT2 | 出力端子(モーター端子と接続) |
※3と9はNC端子(NON CONNECTION)で内部接続はありません。
[入力端子]
IN1 | IN2 | 動作 |
---|---|---|
LOW(0) | LOW(0) | ストップ |
HIGH(1) | LOW(0) | 回転 |
LOW(0) | HIGH(1) | 逆回転 |
HIGH(1) | HIGH(1) | ブレーキ |
※詳細は部品の「データシート」を型番などで検索してご確認ください。
スケッチ(プログラム)
次の処理を繰り返します。
・モーターの回転速度を中間にする
・モーターの回転(5秒間)
・ブレーキ
・モーターの逆回転(5秒間)
・ブレーキ(2秒間)
・モーターの回転速度をMAXにする
・モーターの逆回転(5秒間)
・ストップ(2秒間)
#define PIN_IN1 7 #define PIN_IN2 8 #define PIN_VREF 9 // PWM void setup(){ pinMode(PIN_IN1,OUTPUT); pinMode(PIN_IN2,OUTPUT); } void loop(){ // モーターの回転速度を中間にする analogWrite(PIN_VREF,127); // 回転 digitalWrite(PIN_IN1,HIGH); digitalWrite(PIN_IN2,LOW); delay(5000); // ブレーキ digitalWrite(PIN_IN1,HIGH); digitalWrite(PIN_IN2,HIGH); // 逆回転 digitalWrite(PIN_IN1,LOW); digitalWrite(PIN_IN2,HIGH); delay(5000); // ブレーキ digitalWrite(PIN_IN1,HIGH); digitalWrite(PIN_IN2,HIGH); delay(2000); // モーターの回転速度を最大にする analogWrite(PIN_VREF,255); // 逆回転 digitalWrite(PIN_IN1,LOW); digitalWrite(PIN_IN2,HIGH); delay(5000); // ストップ digitalWrite(PIN_IN1,LOW); digitalWrite(PIN_IN2,LOW); delay(2000); }
用語集 & メモ
PWM(パルス幅変調) (周波数は変更せずに)HIGHとLOWのデューティー比を変更する。 |
Vcc(Voltage Collector) IC用の電源 |
Vs(Voltage Supply?) モーター用の電源 |
Vref(Voltage Reference circuit) 基準電圧回路と呼ばれ、一定の電圧を出力する電子回路。 |
参考サイト
スポンサーリンク
掲示板
ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。
関連記事
公開日:2017年04月03日 最終更新日:2017年12月09日
記事NO:02314