![見出し画像](https://assets.st-note.com/production/uploads/images/105535732/rectangle_large_type_2_038e3ddccb6bd3ff820d815c698cd332.png?width=1200)
Arduinoでダイセン電子工業4CHモーターコントローラーDSR1202を使う方法
はじめに
ロボットプログラミングキットTJ3やTJ3B-Coreを卒業し、Arduinoを使って "C言語" で開発しようと考えるロボカッパーは少なくありません。
既に購入済みのダイセン製のセンサやモーターコントローラをArduinoで使いたいのは必然です。
今後、ダイセン電子工業仕様の3P(汎用ポート)、4P(I2Cポート)を搭載したArduino互換基板の製作記事を掲載予定ですが、先ずモーターコントローラを使う方法について解説致します。
ステップ1 I2C接続・動作確認
Arduino UNOはコネクタにピン名称が印刷されています。
DSR1202は下図の様に裏面にピン名称が印刷されています。
それぞれ同じピン名称同士(GND、SCL、SDA)を接続します。
Arduino UNOの”5V”とDSR1202の”VDD”を接続して配線完了です。
接続は必ず電源を切った状態で行って下さい。
![](https://assets.st-note.com/img/1684023601174-it5GCgGn0n.png?width=1200)
配線の接続先は以下の動画にて概ねの場所が分かると思います。
![](https://assets.st-note.com/production/uploads/images/105506478/picture_pc_8285cf94bda66fe77dca4e49669f5f77.gif)
既に、ダイセン電子工業仕様のArduino互換基板を製作済みの方は下図の様にHXコネクタ4ピンにDSR1202に同梱されている配線を接続するだけです。
![](https://assets.st-note.com/production/uploads/images/105516857/picture_pc_485373f839298fb9e96aea386780af67.gif)
基板同士が接続された状態で、USBケーブルにてパソコンに接続します。
I2Cの4ピンコネクタに電源5VとGNDがあるので、この時点でDSR1202のパイロットLEDが点灯します。
”Arduino IDE”を立ち上げてテストプログラム"DSR1202.ino"を書き込んで下さい。
動画と同じLEDの点灯・消灯が確認できればOKです。
DSR1202は左右の緑色、青色で前進・後進を示し、真ん中のLEDは明るさでパワーの強弱を示しています。
動画と同じ動きにならない場合は、配線に間違いが無いか確かめて下さい。
ステップ2 電源の接続
電源ケーブルの逆接続は基板を壊してしまいます。
くれぐれも慎重に配線して下さい。
配線色に御約束があり、赤色は電源、黒色はGNDに配線します。
DSR1202の "POWER IN" の ”-” に黒色、”+” に赤色を接続します。
![](https://assets.st-note.com/img/1684027248928-Mn5WiCOZmL.png?width=1200)
DSR1202への電源供給は ”1点接地” を原則にバッテリーから配線します。
”1点接地” については、こちらの ↓ 記事が参考になるかと思います。
I2Cのノイズ対策 その2(一点接地編) - 隠居エンジニアのものづくり (hatenablog.com)
既に、ダイセン電子工業仕様のArduino互換基板を製作済みの方は電源供給用コネクタから配線して下さい。
再度確認の上、バッテリーを接続し、電源を入れます。
動画の様に、LEDの点灯、消灯が行われればOKです。
![](https://assets.st-note.com/production/uploads/images/105527784/picture_pc_9547d5f0264bfa15de3774b84cbaa38e.gif)
ステップ3 モーターの接続
いよいよ、モーターの接続です。
お手持ちのモーターを接続して下さい。
![](https://assets.st-note.com/production/uploads/images/105529354/picture_pc_caeceefcb8a99685479655a4119aca9c.gif)
動画の様に動けば動作確認は終了です。
テストプログラム "DSR1202.ino"
関数 ”Motor(int num, int val)” は、ダイセン電子製教育用ロボットプログラミングキットに慣れている方が、違和感なくプログラミングできるように、モーターパワーは前進:0~100、後進:0~-100を記述すればDSR1202に意図した動作を指示できる値に変換します。
”Motor(モーター位置指定, パワー指定)”
モーターの位置指定は0~3です。
パワーを変更したいモーターのみ値を指示すればOKです。
テストプログラムでは4個セットで値を指示していますが
Motor(0, 100);
MotorDrive();
delay(1000);
Motor(0, 0);
MotorDrive();
delay(1000);
こう書けば一つだけのモーターを1秒フルパワー前進、1秒停止させることができます。
他のモーターは最後に指示したパワーを出し続けます。
関数 "MotorDrive( )" は、I2Cを用いてDSR1202にデータ送信を行う関数です。
モーター 6ch分の配列データを纏めて送信します。
"DSR1202" より先に製品化された "6CHモーターコントローラーDSR631" とデータフォーマットを合わせる為に5個目、6個目のモーターは "DSR1202" にはないのですが、ダミー送信を行います。
最後に
DSR1202はモーターパワー入力のコネクタがXHですので定格3Aです。
定格電流を超えるモーターの接続は危険ですので絶対にしない様に!
”定格と安全なロボット作り” については、こちらの ↓ 記事が参考になるかと思います。
ロボカップジュニアの二次電池安全対策 - 隠居エンジニアのものづくり (hatenablog.com)
いいなと思ったら応援しよう!
![あるちざんラボ](https://assets.st-note.com/production/uploads/images/88674840/profile_86a4d0f3faa4497728b52047ec17b6ba.jpg?width=600&crop=1:1,smart)