昨日と少し違う今日を!何か面白いこと、一緒に考えませんか?

Fun-Desire-Blog 

電子工作

あなたもできる。やればできる!CNCプロッタ製作。【変換画像も書ける】(その3.5)-ステッピングモーターを動かす-

更新日:

今回は、その3のおまけです。

1.ステッピングモーター(28BYJ-48)をモータドライバー(TA7291P)で回してみた。

今回はおまけなので、詳細は割愛しますが、ちょっと昔のモータードライバーが手持ちであったので、既製品のモータードライバーではなく、回路を組んでプログラム(スケッチ)も考えて回してみました。(回せたど~!)

まずは、回路図。

TA7291P でモーターを回す(接続図)

TA7291Pのピン番号

端子 : 番号 端子 : 記号 説明
1 : GND  : グラウンド
2  :OUT1  :出力端子(モーター端子と接続)
4  :Vref  : 制御電源端子(モーターの回転速度の調整)
5  :IN1   : 入力端子(デジタルでHIGH or LOW)
6 : IN2   :入力端子(デジタルでHIGH or LOW)
7 : VCC   :ロジック側電源端子
8 :VS   : 出力側電源端子(モーターの電源)
10 :OUT2   :出力端子(モーター端子と接続)
 ※ちなみに、端子番号 3と9には何も繋ぎません。

モーターの接続説明は、下記のページにあります。
https://akizukidenshi.com/download/ds/akizuki/28byj-48.pdf

その3で動作させたステッピングモーター(28BYJ-48)の動きと同じ動きをさせます。さらに、Stepper.hというライブラリーを使わないと、こんなスケッチになります。(英語いうところの、決して流暢でなく、かっちかちのサムライイングリッシュでしょうね)



void setup() {
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
}
 
void loop() {

 int i,n;
 i=0;
 while( i<=511 ){
  
 digitalWrite(8,HIGH);
 digitalWrite(11,LOW);
 digitalWrite(10,LOW);
 digitalWrite(9,LOW);
 delay(2);
 
 digitalWrite(11,HIGH);
 digitalWrite(8,LOW);
 digitalWrite(10,LOW);
 digitalWrite(9,LOW);
 delay(2);

 digitalWrite(10,HIGH);
 digitalWrite(8,LOW);
 digitalWrite(11,LOW);
 digitalWrite(9,LOW);
 delay(2);
 
 digitalWrite(9,HIGH);
 digitalWrite(8,LOW);
 digitalWrite(11,LOW);
 digitalWrite(10,LOW);
 delay(2);

 i=i+1;
 }
 
 delay(1000);
 n=0;
 
 while( n<=511 ){
 digitalWrite(9,HIGH);
 digitalWrite(11,LOW);
 digitalWrite(10,LOW);
 digitalWrite(8,LOW);
 delay(2);
 
 digitalWrite(10,HIGH);
 digitalWrite(8,LOW);
 digitalWrite(11,LOW);
 digitalWrite(9,LOW);
 delay(2);

 digitalWrite(11,HIGH);
 digitalWrite(8,LOW);
 digitalWrite(10,LOW);
 digitalWrite(9,LOW);
 delay(2);
 
 digitalWrite(8,HIGH);
 digitalWrite(9,LOW);
 digitalWrite(11,LOW);
 digitalWrite(10,LOW);
 delay(2);

 n=n+1;
 }
  
 delay(1000);

}

とにかく、自分で調べて回すことができてうれしかったです。
最初は、リード線の接続確認を兼ねて、付属のドライバシールドを使って回したときの、その3と同じコードで動くことを確認してから、スケッチを考えてみました。


その3でやったスイッチで回していくやり方をもとに、ユニポーラで1相励磁(1つの相を1個ずつ励磁していくやり方)でやりました。
delayの時間を大きく取るとゆっくり回りますし、2より小さくすると脱調して制御にローターが追い付かず、ウーンとうなりますがモーターは回りません。
脱調も短時間(5秒くらいですかね)なら問題ないと思いますので、試しにやってみて下さい。

最初は、1相励磁で他の相は励磁しないようにすることが分からず、回りませんでした。下記のサイトを見て何となくヒラメキました。ご協力頂きありがとうございました。https://stupiddog.jp/note/archives/1209
・・閃いたときはこんな感じです。
「あ、1相だけ確実に励磁して、他の相は励磁したらあかんのちゃうか?」(恥ずかしながら、この程度の実力なのでご容赦下さい)でも、今回のように発見出来で、うまくいったときはメチャ嬉しいです。これが楽しい!です。

では、おまけなので、このあたりで。

つづく

-電子工作

Copyright© Fun-Desire-Blog  , 2021 All Rights Reserved Powered by STINGER.