SPG20-332 + MP4401
2012.06.24 · 542 words · 2 minute read
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