Changes between Version 5 and Version 6 of DCMoterDriver


Ignore:
Timestamp:
May 19, 2015 4:50:28 PM (9 years ago)
Author:
soumura
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DCMoterDriver

    v5 v6  
    9393  digitalWrite(AIN2,LOW);
    9494  delay(500);
     95
    9596  //モーター正回転・スピード変化
    9697  digitalWrite(AIN1,HIGH);
     
    104105    delay(100); 
    105106  }
     107
    106108  //モーター停止
    107109  digitalWrite(AIN1,LOW);
    108110  digitalWrite(AIN2,LOW);
    109111  delay(500);
     112
    110113  //モーター逆回転・スピード変化
    111114  digitalWrite(AIN1,LOW);
     
    123126}}}
    124127
    125 === 回転方向切替:1本 回転速度:1本 ===
     128=== 回転方向切替:1本 回転速度:1本 ===
    126129
    127130このタイプは回転方向の制御に信号線を1本、回転速度を指定するために信号線(PWM)を1本使います。[[BR]]
     
    133136||x||0||||L||L||ブレーキ||
    134137
    135 今回は例として[https://www.switch-science.com/catalog/1637/ デュアルモータードライバDRV8835]を使ってみます。
    136 
    137 
     138今回は例として[https://www.switch-science.com/catalog/1637/ デュアルモータードライバDRV8835]を使ってみます。[[BR]]
     139APAHSEピンをArduino Unoのデジタル12番にAENABLEピンをデジタル11番に接続しました。[[BR]]
     140VCCがロジック電源で、今回はArduino Unoから5Vをもらっています。VINはモーター駆動用電源で今回は3Vにしました。[[BR]]
     141
     142[[Image(0J4056.1200.jpg,300px)]]
     143[[Image(DRV8835_3.png,360px)]]
     144
     145サンプルスケッチです。正転と逆転を繰り返すようになっています。
     146
     147
     148{{{
     149#define APHASE 12
     150#define AENABLE 11
     151
     152void setup() {
     153  pinMode(APHASE,OUTPUT);
     154  pinMode(AENABLE,OUTPUT);
     155}
     156
     157void loop() {
     158  int i=0;
     159  //モーター停止
     160  analogWrite(AENABLE,0);
     161  digitalWrite(APHASE,LOW);
     162  delay(500);
     163
     164  //モーター正回転・スピード変化
     165  digitalWrite(APHASE,LOW);
     166  for(i=0;i<256;i++){
     167    analogWrite(AENABLE,i);
     168    delay(100);
     169  }
     170  for(i=255;i>=0;i--){
     171    analogWrite(AENABLE,i);
     172    delay(100); 
     173  }
     174
     175  //モーター停止
     176  analogWrite(AENABLE,0);
     177  digitalWrite(APHASE,LOW);
     178  delay(500);
     179
     180  //モーター逆回転・スピード変化
     181  digitalWrite(APHASE,HIGH);
     182  digitalWrite(APHASE,LOW);
     183  for(i=0;i<256;i++){
     184    analogWrite(AENABLE,i); 
     185    delay(100);
     186  }
     187  for(i=255;i>=0;i--){
     188    analogWrite(AENABLE,i);
     189    delay(100); 
     190  }
     191}
     192}}}
     193
     194=== ・回転方向と速度:2本 ===
     195最後のタイプは回転方向と速度の両方を2本の入力で行うタイプです。一見、前のタイプ(回転方向切替:1本 回転速度:1本)と同じように感じますが、少し違います。[[BR]]
     196こちらは両方とも同じ役割を持つ2本の入力端子を持ちますが、前のタイプは回転方向と速度の違う役割を持ったピンが1本ずつです。[[BR]]
     197(OUT1 OUT2の状態はモータードライバの種類によって少し異なります。)
     198
     199||IN1||IN2||OUT1||OUT2||状態||
     200||0||0||Z||Z||ストップ||
     201||0||PWM||L||PWM||逆転(ストップ)||
     202||PWM||0||PWM||L||正転(ストップ)||
     203||1||PWM||H||PWM||逆転(ブレーキ)||
     204||PWM||1||PWM||H||正転(ブレーキ)||
     205||1||1||H||H||ブレーキ||
     206
     207今回は例として[https://www.switch-science.com/catalog/1637/ デュアルモータードライバDRV8835]を使ってみます。[[BR]]
     208前のタイプ(回転方向切替:1本 回転速度:1本)の例で使用したのと同じモータードライバです。このモータードライバはモードを切り替えることで制御方法を変えることができます。[[BR]]
     209前回はMODEピンをHIGHにしていましたが、今回はLOWにします。
     210
     211