Changes between Version 4 and Version 5 of DCMoterDriver


Ignore:
Timestamp:
May 19, 2015 4:11:38 PM (5 years ago)
Author:
soumura
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DCMoterDriver

    v4 v5  
    1212||Pololu||[https://www.switch-science.com/catalog/235/ デュアルモータードライバVNH2SP20(最大14A、電流センサ内蔵)]||235||2||5V||5.5V~16V||14A||30A||20kHz||回転方向切替:2本 回転速度:1本||
    1313||Pololu||[https://www.switch-science.com/catalog/236/ デュアルモータードライバTB6612FNG]||236||2||2.7V~5.5V||4.5V~13.5V||1A||3A||100kHz||回転方向切替:2本 回転速度:1本||
    14 ||Pololu||[https://www.switch-science.com/catalog/237/ ハイパワー・モータードライバ18V15]||237||1||5V||5.5V~30V||15A||30A||40kHz||回転方向切替:1本 回転速度:1本||
     14||Pololu||[https://www.switch-science.com/catalog/237/ ハイパワー・モータードライバ18V15]||237||1||5V||5.5V~30V||15A||30A||40kHz||回転方向切替:1本 回転速度:1本||
    1515||Pololu||[https://www.switch-science.com/catalog/238/ ハイパワー・モータードライバ36V9]||238||1||5V||5.5V~50V||9A||12A||40kHz||回転方向切替:1本 回転速度:1本||
    1616||SparkFun||[https://www.switch-science.com/catalog/385/ デュアルモータードライバTB6612FNG]||385||2||2.7V~5.5V||2.7V~13.5V||1.2A||3.2A||100kHz||回転方向切替:2本 回転速度:1本||
     
    4848(OUT1 OUT2の状態はモータードライバの種類によって少し異なります。)
    4949||PWM||IN1||IN2||OUT1||OUT2||状態||
    50 ||L||L||L||Z||Z||ストップ||
    51 ||H||L||L||Z||Z||ストップ||
    52 ||L||L||H||L||L||ショートブレーキ||
    53 ||H||L||H||L||H||正転||
    54 ||L||H||L||L||L||ショートブレーキ||
    55 ||H||H||L||H||L||逆転||
    56 ||L||H||H||L||L||ショートブレーキ||
    57 ||H||H||H||H||H||ショートブレーキ||
     50||0||0||0||Z||Z||ストップ||
     51||1||0||0||Z||Z||ストップ||
     52||0||0||1||L||L||ショートブレーキ||
     53||1||0||1||L||H||逆転||
     54||0||1||0||L||L||ショートブレーキ||
     55||1||1||0||H||L||正転||
     56||0||1||1||L||L||ショートブレーキ||
     57||1||1||1||H||H||ショートブレーキ||
    5858
    5959例として[https://www.switch-science.com/catalog/236/ デュアルモータードライバTB6612FNG(連続最大1A)]を使ってみます。[[BR]]
    6060このモータードライバはモーター駆動電源の推奨値が4.5V~13.5Vですが、下の図では3Vにしています。(非推奨ですが2.5Vから動作します。)
    61 このように基本的にモータードライバーを使うときはマイコン用の電源とモーター用の電源の2種類を用意する必要があります。
     61このように基本的にモータードライバーを使うときはマイコン用の電源とモーター用の電源の2種類を用意する必要があります。[[BR]]
     62理由は次の通りです。
     63
     64 * モーターに使う電源の電圧と制御系の電源電圧が違う
     65 * モーターの電流消費が大きく、大きなノイズも発生するので制御系への影響を少なくするため
     66
     67今回の例で言うとVCCがロジック電源(制御系)、これはArduino Unoからもらっています。[[BR]]
     68VMOTがモーター用の電源です。モータードライバの種類によってはロジックとモーター用の電源端子が共通になっているものもあります。[[BR]]
     69
    6270AIN1とAIN2をArduino Unoのデジタル12、13番に接続し、PWMAをデジタル11番につなげました。
    6371
     
    6573[[Image(TB6612_3.png,360px)]]
    6674
     75サンプルスケッチです。正転と逆転を繰り返すようになっています。
     76
     77{{{
     78#define AIN1 13
     79#define AIN2 12
     80#define PWMA 11
     81
     82void setup() {
     83  pinMode(AIN1,OUTPUT);
     84  pinMode(AIN2,OUTPUT);
     85  pinMode(PWMA,OUTPUT);
     86 
     87}
     88
     89void loop() {
     90  int i=0;
     91  //モーター停止
     92  digitalWrite(AIN1,LOW);
     93  digitalWrite(AIN2,LOW);
     94  delay(500);
     95  //モーター正回転・スピード変化
     96  digitalWrite(AIN1,HIGH);
     97  digitalWrite(AIN2,LOW);
     98  for(i=0;i<256;++){
     99    analogWrite(PWMA,i);
     100    delay(100);
     101  }
     102  for(i=255;i>=0;i--){
     103    analogWrite(PWMA,i);
     104    delay(100); 
     105  }
     106  //モーター停止
     107  digitalWrite(AIN1,LOW);
     108  digitalWrite(AIN2,LOW);
     109  delay(500);
     110  //モーター逆回転・スピード変化
     111  digitalWrite(AIN1,LOW);
     112  digitalWrite(AIN2,HIGH);
     113  for(i=0;i<256;++){
     114    analogWrite(PWMA,i);
     115    delay(100);
     116  }
     117  for(i=255;i>=0;i--){
     118    analogWrite(PWMA,i);
     119    delay(100); 
     120  }
     121
     122}
     123}}}
     124
     125=== 回転方向切替:1本 回転速度:1本 ===
     126
     127このタイプは回転方向の制御に信号線を1本、回転速度を指定するために信号線(PWM)を1本使います。[[BR]]
     128(OUT1 OUT2の状態はモータードライバの種類によって少し異なります。)
     129
     130||IN||EN||OUT1||OUT2||状態||
     131||0||PWM||PWM||L||正転||
     132||1||PWM||L||PWM||逆転||
     133||x||0||||L||L||ブレーキ||
     134
     135今回は例として[https://www.switch-science.com/catalog/1637/ デュアルモータードライバDRV8835]を使ってみます。
    67136
    68137
    69