Thursday, May 5, 2011

Arduinoでステッピングモータ回してみる

モータは同じくSPG20-332。
以前買って放置していたArduinoで、ものすごく適当な回路を組んでみた。


で、コードはこんな感じ。

/* 適当ステッピングモータ */
int pin[4] = {10,11,12,13};

void setup(){
  for(int i=0;i < 4;i++){
    pinMode(pin[i], OUTPUT);
  }
}

void loop(){
  for(int i=0;i<4;i++){
    digitalWrite(pin[i], HIGH);
    delay(20);
    digitalWrite(pin[i], LOW);
    delay(20);
  }
}

…自分で作っといてなんだけど、まさかこれで動くとは思わなかった。


さすがにパワーが足りない気もするけど、ちょっと何かを動かす程度ならこれでいいかも。
あー、パワーを増すなら2層励磁という手もあるのか。
というわけでコードを書き換え。
/* 適当ステッピングモータ 2相励磁 */
int pin[4] = {10,11,12,13};

void setup(){
  for(int i=0;i < 4;i++){
    pinMode(pin[i], OUTPUT);
  }
}

void loop(){
  for(int i=0;i<4;i++){
    int pre = i-1;
    int next = i+1;
    if(pre < 0){
      pre = 3;
    }
    if(next > 3){
      next = 0;
    }
    digitalWrite(pin[pre], LOW);
    digitalWrite(pin[i], HIGH);
    digitalWrite(pin[next], HIGH);
    delay(20);
  }
}
この程度のパワーがあれば大体の用は足りるような気がする。
楽だからありがたいけど、何の苦労もないからいまいち達成感が無い。

No comments: