今回はArduinoでステッピングモーターを動かしてみたいと思います。
ちなみにバイポーラ駆動で、簡単なモータドライバを作ります。
ユニポーラ編はこちら→Arduinoでステッピングモータ(ユニポーラ編)
・Arduino UNO R3
・ステッピングモーター 17PM-K044-AKZ
・MOS-FET 2N7000(10個入り)
・抵抗 4.7kΩ 4つ
・9V電池 006P
抵抗はプルダウンに使うので数kΩ~10kΩぐらいならどれでもいいと思います。
2相励磁
1-2相励磁
1-2相励磁は1相励磁と2相励磁を交互に繰り返す方法で、ステップ角が半分になるため、なめらかな回転になるらしいです。(比べてみないと正直よくわからない。)
ちなみにバイポーラ駆動で、簡単なモータドライバを作ります。
ユニポーラ編はこちら→Arduinoでステッピングモータ(ユニポーラ編)
用意するもの
・Arduino UNO R3
・ステッピングモーター 17PM-K044-AKZ
・MOS-FET 2N7000(10個入り)
・抵抗 4.7kΩ 4つ
・9V電池 006P
抵抗はプルダウンに使うので数kΩ~10kΩぐらいならどれでもいいと思います。
配線とスケッチ
図1 配線した様子
相変わらずごちゃごちゃしててすみません…
こう…なんかうまい感じにまとまらなくてアレでした。
このFETは左からソース、ゲート、ドレインになってます。(図1の向きから見て)
8つのFETを右上から
T7 T5 T3 T1
T8 T6 T4 T2
とします。
A側を+V、Aバー側をGNDに繋げるにはT7とT6をONにします。
このように+V側に繋げるのをA→B→A_→B_→A→…の順でやっていけばモータは回転します。
(赤→青→黄→橙→赤→…)
よって、各FET(T7,T6) (T3,T2) (T5,T6) (T1,T2)をセットとしてパルスを送れば、ユニポーラ駆動の時と同じスケッチが使えるなーと思いました。
なのでArduinoのDigitalPin10~13を
10 (T7,T6) 赤 A
11 (T3,T2) 青 B
12 (T5,T6) 黄 A_
13 (T1,T2) 橙 B_
のように繋げます。以下はユニポーラ編のスケッチの流用です。
1相励磁
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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 prev = i-1; if (prev == -1) prev =3; digitalWrite(pin[prev], LOW); digitalWrite(pin[i], HIGH); delay(2); } } |
2相励磁
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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 prev = i-1; int next = i+1; if (prev == -1) prev =3; if (next == 4) next = 0; digitalWrite(pin[prev], LOW); digitalWrite(pin[i], HIGH); digitalWrite(pin[next], HIGH); delay(2); } } |
1-2相励磁
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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 prev = i-1; int next = i+1; if (prev == -1) prev =3; if (next == 4) next = 0; digitalWrite(pin[prev], LOW); digitalWrite(pin[i], HIGH); digitalWrite(pin[next], LOW); delay(2); digitalWrite(pin[next], HIGH); delay(2); } } |
結果
定格とかを考えると、果たしてこのMOS-FETと17PM-K044-AKZの組み合わせが適切だったかどうかわかりませんが、手持ちにこれしか無かったので…。
今までユニポーラ駆動のものしか使ったことがなかったのですが、バイポーラ駆動でも同じ感じでやればよいということがわかりました。
参考サイト
http://eleclog.quitsq.com/2012/06/mp4401-spg20-332.html
0 件のコメント:
コメントを投稿