Arduino+ダイセンモータードライバ


Arduinoでダイセン電子工業のモータードライバを動かす実験です。


結果から言うとうまくいきませんでした。


このモータードライバは6つのモーターを駆動でき、小型のモーターであれば十二分に動かせるパワーもあります。
価格も高くなくコストパフォーマンスに優れたボードだと思います。
ロボカップジュニア(サッカー)ではおなじみのボードで、うちの子供も使っています。
I2Cでコントロールできるので、Arduinoから簡単に動かせると考えました。

ダイセン電子工業のサイト
http://www.daisendenshi.com/detail/ddkit_0601.html


【接続】

  • Arduinoの5VとGNDをモータードライバのI2C端子の5VとGNDへ接続。
  • Arduinoのアナログ4pinをSDAへ接続、アナログ5pinをSCLへ接続、各々3KΩの抵抗を介してプルアップ。


【スケッチ(プログラム)】
プログラムは上記のURLからダウンロードできるマニュアルを参考に作成しました。

#include <Wire.h>

#define TJ3M_ADDR 0x14

int ret;
byte b[6];

void setup()
{
  Wire.begin();
  delay(100);
}

void loop()
{
  Wire.beginTransmission(TJ3M_ADDR);
  b[0] = 50;
  b[1] = 50;
  b[2] = 0;
  b[3] = 0;
  b[4] = 0;
  b[5] = 0;
  Wire.send(b, 6);
  ret=Wire.endTransmission();
  delay(100);
}


結果は冒頭の通りうまくいかなかったのですが、ごく稀に(10回に1回ぐらい?)動くこともありますので、タイミングの問題でしょうかね?よくわかりません。
なお、ArduinoのI2Cは100KHzで動いているようです。モータードライバのマニュアルによれば100KHzでも大丈夫なようです。

ArduinoのI2Cの使い方としては温度センサのLM73ではうまく動いたので、問題はないと思うのですが。