28BYJ-48 ステッピングモーターを ULN2003 ドライバボードで使う方法
「Arduino と L293D でステッピングモーターを制御する」 では非常に小さいステッピングモーターを動かしました。
今回はユニポーラ型のステッピングモーターである 28BYJ-48 の利用方法を紹介します。
ここではドライバーとして 「ULN2003 のドライバーボード」を購入してそのまま利用しましたが、 これの詳細が確認できなかったので、今回は少々あやふやな点が残ってしまいました。 この記事は解説というより、単に私が行ったことを記載している体験記的なスタンスでみてください。
28BYJ-48 のデータシートは次の通り。
モーターの出力軸は 5mm 径です。
私の行った配線は次の通りです。
電池は 9V ですが、Arduino は良いとしても、ボードの方が基盤に 5-12V と書いてますが本当に大丈夫なのか?と不安が残りました。 当初は 7805 などのレギュレータで 5V に落とそうかと思ったのですが、書いてるからいっか、と・・・。たぶん、ちゃんと 5V にした方がいいと思います。
Arudino のプログラムは次の通りです。Arduino の Stepper ライブラリが使えます。
#include <Stepper.h>
const int number_of_steps = 32;
const int steps_output_rev = 32 * 64; // 2048
const int CW = 1;
const int CCW = -1;
Stepper stepper(number_of_steps, 8, 10, 9, 11);
void setup() {
stepper.setSpeed(300);
}
void loop() {
int steps;
steps = get_step_by_rev(CW, 1);
stepper.step(steps);
delay(3000);
steps = get_step_by_rev(CCW, 1);
stepper.step(steps);
delay(3000);
}
int get_step_by_rev(int dir, float rev){
return dir * (steps_output_rev * rev);
}
ちなみに、このモーターでデジタル一眼レフカメラを積んだドリーをゆっくり動かすことができました。
電動のスライダーは高価ですが、この程度のことなら自作で十分です。28BYJ-48 は内部で 1/64 のギア比があるためか、小さいながらも意外とトルクがあって使いやすかったですよ。