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 へお送り頂けると早くお返事できると思います。