amnjackのNewWeblog

電子工作中心に雑多なカテゴリー構成ですが,興味のあるジャンルがありましたらご覧ください。

ステッピングモータを動かしてみる

2024年09月17日 | electro_craft
星夜撮影用雲台の自動追尾化が一段落したところで,その駆動モーターについてステッピングモータを使ってはどうか、少しいじってみたくなりました。

ステッピングモーターもけっこう安く手に入りますんで,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)は必要ですが・・・(もうしませんが)
 
今日はここまでです
 
 
コメント