2012年6月24日

SPG20-332 + MP4401

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

Arduinoでステッピングモーター SPG20-332(≒SPG20-1332)を回す。
モータードライバーとしてMP4401を使う。
Fritzingの練習も兼ねて作ってみた接続図。
(同梱されてたステッピングモーターのSVGを弄ってSPG20-S332用にピン配置を変更しています)

Arduino     MP4401  
 pin 10 ----- pin 01
 pin 11 ----- pin 12
 pin 12 ----- pin 05
 pin 13 ----- pin 08

MP4401   SPG20-332
 pin 02 ----- pin 1
 pin 09 ----- pin 6
 pin 11 ----- pin 2
 pin 04 ----- pin 5

MP4401のpin3とpin10をVinに、pin6とpin7をGNDに接続、SPG20-332のpin3とpin4をVinに接続。
今回は2相励磁で回すのでArduinoには7.5VのACアダプタを接続しました。
(7〜9Vくらいの電源なら良いんじゃないかと)

プログラムはこんな感じでいいはず。
int pin[4] = {10,11,12,13};

void forward(int rot){
  for(int i=0;i<rot*120;i++){
    for(int i=0;i<4;i++){
       int prev = i-1;
       int next = i+1;
       if(prev < 0) prev = 3;
       if(next > 3) next = 0;
       digitalWrite(pin[prev], LOW);
       digitalWrite(pin[i], HIGH);
       digitalWrite(pin[next], HIGH);
       delay(2);
     }
   }
}
void reverse(int rot){
  for(int i=0;i<rot*120;i++){
     for(int i=3;i>=0;i--){
       int prev = i+1;
       int next = i-1;
       if(prev > 3) prev = 0;
       if(next < 0) next = 3;
       digitalWrite(pin[prev], LOW);
       digitalWrite(pin[i], HIGH);
       digitalWrite(pin[next], HIGH);
       delay(2);
     }
   }
}

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

void loop(){
  forward(1); // 1回正転
  reverse(1); // 1回逆転
  forward(3); // 3回正転
  reverse(3); // 3回逆転
  forward(5); // 5回正転
  reverse(5); // 5回逆転
}

2相励磁なのでトルクは十分。
ステッピングモーターを2個使ってプロッタとか作ってみたいなぁと思っているところです。

追記:ポートレジスタで制御する方法を書きました → SPG20-332 + MP4401 その2

0 件のコメント:

コメントを投稿

記事へのコメントはいつも確認している訳ではないので、お返事が遅れる場合があります。
ご質問やご意見は twitter@9SQ へお送り頂けると早くお返事できると思います。