これで勝てる!ロボコン仕様!
DCモータードライバー
お問い合わせはこちらから
製品仕様 型式:RH2BMD
機器の分類 | DCモーター制御 | 本体サイズ(端子除く) | 幅70mm奥行35mm高さ12mm |
---|---|---|---|
重量 | 48g | チャンネル数 | 2ch |
入力電圧 | 6V-24V | チャンネルID | 各ch 0~31 |
連続電流 | 20A ×2ch | ID設定方法 | Modeボタン(下記記載) |
制御方式 | UART(シリアル通信) | 通信データ | 2byte (ID・回転方向・速度) |
通信速度 | 38400bps | PWM周波数 | 15.8kHz |
ID設定方法(初期値 Ach=1 Bch=2)
①電源投入(運転モード) ※安全のため信号線は外してください
②Modeボタン長押し
③Ach設定モードになるのでボタンを短く押してID設定(2進数で設定)
④Modeボタン長押し
⑤Bch設定モードになるのでボタンを短く押してID設定(2進数で設定)
⑥Modeボタン長押し
⑦運転モードへ戻る
シリアル通信方法
送信側条件:通信速度38400bps ストップビット1 パリティなし
1byte目 1✕✕✕ ✕✕〇▢
✕=ID(1~31) 〇=0(ストップ) 〇=1(ブレーキ) ▢=0(正転) ▢=1(逆転)
2byte目 0△△△ △△△△
△=0~127(127段階の出力調整0~100%)
送信例① 1byte目10000100 2byte目00001111 →ID1を正転、速度15(15/127)で回転
送信例② 1byte目10101101 2byte目00101111 →ID11を逆転、速度47(47/127)で回転
送信例③ 1byte目1010111X 2byte目0XXXXXXX →ID11をブレーキ、速度任意(関係なし)
送信例④ 1byte目10101100 2byte目00000000 →ID11をストップ、速度0
Arduinoサンプルプログラム
byte Speed=127; //速度設定範囲0~127
#define CW 0 //正転
#define CCW 1 //逆転
#define BK 2 //ブレーキ
void setup() { //シリアル通信
Serial.begin(38400);
}
void loop() { //メインループ
MdSendData( 1, CW, Speed); //ID1を正転,速度127
delay(4000); //待ち時間4秒
MdSendData( 1, CCW, Speed); //ID1を逆転,速度127
delay(4000); //待ち時間4秒
MdSendData( 1, BK, 0); //ID1をブレーキ,速度関係なし
delay(4000); //待ち時間4秒
}
void MdSendData(int ID,int DIR,int SPEED){ //送信プログラム
// DIR: 2->CCW / 1->CW / 2->Brake
byte SendData[2] = {0x00,0x00}; //変数設定
SendData[0] = (ID*0x04 + DIR) | 0x80; //IDを2ビットシフト,回転方向の加算,8bit目を1
SendData[1] = SPEED & 0x7F; //8bit目を0の状態で速度を代入
Serial.write(SendData[0]); //1byte目送信 1✕✕✕ ✕✕〇▢(ID,ブレーキ,回転方向)
Serial.write(SendData[1]); //2byte目送信 0△△△ △△△△(回転速度)
}