4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Arduino - TB6612FNG(SparkFun ROB-14450)の制御方法

Last updated at Posted at 2020-09-27

動機

SparkFun ROB-14450は小さく、2つのDCモーターを制御できるので重宝しているのだが、東芝のTB6612FNGのデータシートが少しわかりにくかったので駆け出しでも理解できるようにまとめた。

ピンの役割

symbol.png

  1. VM - DCモーターの電源。最大13.5Vまで対応。一番下に許容動作範囲表を貼っておく。
  2. VCC - ドライバ制御の電源。最大5.5Vまで対応。一番下に許容動作範囲表を貼っておく。
  3. GND - VMとVCCのグランド
  4. A01 - 1つ目のDCモーターのプラスを接続する。
  5. A02 - 1つ目のDCモーターのマイナスを接続する。
  6. B01 - 2つ目のDCモーターのプラスを接続する。
  7. B02 - 2つ目のDCモーターのマイナスを接続する。
  8. GND - VMとVCCのグランド
  9. PWMA - 1つ目のDCモーターの回転速度の制御
  10. AIN2 - 1つ目のDCモーターの制御
  11. AIN1 - 1つ目のDCモーターの制御
  12. STBY - モータードライバの制御の準備
  13. BIN1 - 2つ目のDCモーターの制御
  14. BIN2 - 2つ目のDCモーターの制御
  15. PWMB - 2つ目のDCモーターの回転速度の制御
  16. GND - VMとVCCのグランド
  • 同じGNDが3つあるがどれを使ってもよい。

Arduinoでの制御

モーターの回転は付け方でそれぞれ変わると思うので前後左右の移動のプログラムから各自変更してほしい。
左右のモータは回転速度を同じにしていても実際は微妙に違う場合があるのでテストしながら確認する。

// Arduino Nano
const int STBY = 3;     // モータードライバの制御の準備
const int AIN1 = 4;     // 1つ目のDCモーターの制御
const int AIN2 = 5;     // 1つ目のDCモーターの制御
const int BIN1 = 6;     // 2つ目のDCモーターの制御
const int BIN2 = 7;     // 2つ目のDCモーターの制御
const int PWMA = 9;     // 1つ目のDCモーターの回転速度
const int PWMB = 10;    // 2つ目のDCモーターの回転速度
void setup() {
    pinMode(STBY, OUTPUT);
    pinMode(AIN1, OUTPUT);
    pinMode(AIN2, OUTPUT);
    pinMode(BIN1, OUTPUT);
    pinMode(BIN2, OUTPUT);
    digitalWrite(STBY, HIGH); // スタンバイ
    pinMode(PWMA, OUTPUT);
    pinMode(PWMB, OUTPUT);
}
void loop() {
    // 前進(後進は全て逆にする)
    digitalWrite(AIN1, HIGH);
    digitalWrite(AIN2, LOW);
    digitalWrite(BIN1, HIGH);
    digitalWrite(BIN2, LOW);
    delay(1000);
    // 右回り(左回りは逆)
    digitalWrite(AIN1, LOW);
    digitalWrite(AIN2, HIGH);
    digitalWrite(BIN1, HIGH);
    digitalWrite(BIN2, LOW);
    delay(1000);
    // 回転速度を設定(0~255)まで
    analogWrite(PWMA, 50);
    analogWrite(PWMB, 50);
}

H-SW 制御ファンクション

ScreenShot_20200927203741.png

許容動作範囲 (Ta = -20~85°C)

ScreenShot_20200927193550.png

最後に

自分はBCMをRaspberry Piのピン番号を基準として指定していたので動作せず、行き詰ってテスターを使ってようやく原因が分かった。
ArduinoはGPIOを基準に指定することを忘れないでほしい。
これから挑戦する人は同じようなトラップにかからないように願う。

リファレンス

https://toshiba.semicon-storage.com/jp/semiconductor/product/motor-driver-ics/brushed-dc-motor-driver-ics/detail.TB6612FNG.html
https://componentsearchengine.com/part-view/ROB-14450/SparkFun

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?