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ではうまく動いたので、問題はないと思うのですが。

