星夜撮影用雲台の自動追尾化が一段落したところで,その駆動モーターについてステッピングモータを使ってはどうか、少しいじってみたくなりました。
ステッピングモーターもけっこう安く手に入りますんで,arduinoを使ってのお遊び。
取り出したArduinoは、手持ちのUNOです。
いじり方はもうほとんど忘れてます。適当なスケッチを探し出して入れてみました。
以下は自分用の備忘録です。
使った材料はこんなモノ
ステッピングモータドライブモジュール(ULN2003)
モータは,28BYJ-48。これで,357円でした。
以下は篠ん爺のさんぽ道 (遊び心の旅)さんから引用。
減速ギア付きで 1/64(モータが64回転で軸回転)。
・相数:2相ユニポーラ(相数:4)
・ステップ角:5.625°
・出力軸1回転のステップ数:2048(2相励磁)
※2相励磁で無負荷の最高回転数は4秒で1回転です。
・定格電圧:5V
・直流抵抗:約22Ω(?)
・周波数:100Hz
・結線:5線式
取りあえずスケッチを頂いて,動作を確認。
結線は上のよう
stepper.hがないとかなんとかいろいろエラーが出ましたが,何回かやり直しているウチになんとかなりました。細かいところがさっぱり分からない!!
stepperライブラリのインスト-ルは以下のよう。
「ライブラリのインクルード」から、「ライブラリを管理」を選択。
窓に「stepper」入力して「stepper」のインストール
これでスケッチを描き込みます。
// ライブラリ使用宣言
#include<stepper>
// オブジェクト生成
Stepper stepper1( 2048, 8, 10, 9, 11 );
void setup() {
// put your setup code here, to run once:
// 1分間当たりの回転数設定
stepper1.setSpeed( 20 );
}
void loop() {
// put your main code here, to run repeatedly:
// 1/2(180度)反転させる
stepper1.step( 1014 );
// 出力停止
digitalWrite(8, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(11, LOW);
delay(1000); // 5000ms停止
// 1/4(90度)正転させる
stepper1.step( -512 );
// 出力停止
digitalWrite(8, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(11, LOW);
delay(1000); // 5000ms停止
}
動作が確認できたらスケッチの数字をいじってみます。
setSpeedは回転数。変更してはっきり動作が分かるように20rpmとしてみました。
反転停止時間が5秒と長かったので,1秒に変更。
step数は(1024)⇒180度,(-512)は逆方向に90度。などなどいじれます。
動作はこんな感じ
スッテンピングモータを回してみる
これを基本として,多回転にしたり,角度をいじったり,いろいろバリュエーションができますね。VRで回転スピードを変えるとかもやってみましょう。
星座の自動追尾も,こちらの方が正確かも知れません。ただ,arduino(電源とAVR)は必要ですが・・・(もうしませんが)
今日はここまでです