今回はステップモーターのバイポーラ編です。
ストロベリーリナックスで発売されているこちらのドライバーL6470と12V4相のステッピングモータを使用しました。
なんでもこのL6470は細かな操作ができるようでかなり高機能のようです。
配線とプログラムは「北の国から電子工作(仮)」さんの物をそのまま使用しました。
ただ、void L6470_setup()の部分はドライバーの説明書に一緒に購入したステップモーター用の設定の数値が載っていますのでこれを書き換えました。
プログラムはL6470のライブラリーをインストールして使ってみました。なんとか動くのですが・・・・・。コマンドなども調べて色々試してみるのですが何かしっくりこない・・・誤作動が多い感じです^^;多分私の数値の調整や配線が悪いのかも・・・・。
さらに一番欲しい、スピードとステップ数を指定してのコマンドも無くて、多分色々なコマンドを組み合わせて作ればいいのでしょうが分からん^^;
かなり高機能なドライバーとのことなのですが、逆に高機能すぎてついていけないw
3、4日このソフトで悩んでいたのですが、諦めましたw
てな事で次のドライバーを探すことに。
先ほどの大きなモーターよりも模型に内蔵できそうなこちらのモーター
でテストを進めていくことにしました。
まずは家にあったDRV8835をテスト
取り扱い説明にあるプログラム
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 27 28 29 30 31 32 33 34 35 36 |
int APHASE=4; int AENBL =5; int BPHASE=6; int BENBL =7; int VR_PIN= A0; unsigned long VR_VALUE=0; void setup() { pinMode(APHASE,OUTPUT); pinMode(AENBL,OUTPUT); pinMode(BPHASE,OUTPUT); pinMode(BENBL,OUTPUT); digitalWrite(AENBL,HIGH); digitalWrite(BENBL,HIGH); } void READ_VR(void){ VR_VALUE=analogRead(VR_PIN); } void DELAY_WAIT(void){ for(int i=0;i<(VR_VALUE/10+7);i++) delayMicroseconds(100); } void loop() { READ_VR(); digitalWrite(APHASE,HIGH); DELAY_WAIT(); digitalWrite(BPHASE,HIGH); DELAY_WAIT(); digitalWrite(APHASE,LOW); DELAY_WAIT(); digitalWrite(BPHASE,LOW); DELAY_WAIT(); } |
で稼働させてみるのですが・・・・・微妙に動いたり動かなかったり・・・・
それに妙にモーターが発熱して来ますwこれもやばそうなので却下^^;
どうしよう〜と思いながらネットをさまよっていると
A4988というドライバーが配線も簡単で使いやすそう^^。
早速「programresource-netさんのこちらの記事」を参考に配線を行い、プログラムもそのままコピペでAccelStepperライブラリを導入後動かしてみました。
ちなみにモーターとドライバーの配線は少し悩みましたが上の写真左上付近のような配線色の並びでうまく動くようになりました。
おおっ!動く動く!!バイポーラ型の駆動テスト始めてようやく満足のいく動きをしてくれるようになりました!
よし、これならとこのプログラムを元に少しいじっていくのですが・・・・・・・。
あれw全然動かないw私のプログラムミスなんだろうなと色々やってみるけどダメ・・・。
それならとあらゆる部分を削って行ってプログラムミスの原因を探すのですがそれでも見つからない・・・・。最終的には提示してくださっているちゃんと動くプログラムの一番最後の行のstepper1.runSpeedToPosition();の後ろにdelay(1000);とディレイ関数を入れるだけでも動かないことに気がつきましたwえ〜〜何で???結局わからず^^;
そもそも、AccelStepperライブラリーの理解もしていないし・・・と思いこれの勉強を始めるも挫折w
またまた、ネットをさまようことにw
するとこのA4988というドライバーは2本の線でarduinoと繋がっているのですが、それぞれの役目が1本はLOW,HIGHで向きを決めるだけ、もう一本はHIGH→LOWの1パルス送るとステップモーターが1ステップ動くというすごく単純な構造のようです。この記事が載っていたブログを見失ってしまいました・・・・。
配線はそのままで、上記の言葉通りのプログラムを書き込んでみました。
1 2 3 4 5 6 7 8 9 10 11 12 |
void setup() { pinMode(3,OUTPUT); pinMode(4,OUTPUT); digitalWrite(4,HIGH); } void loop() { digitalWrite(3,HIGH); delayMicroseconds(800); digitalWrite(3,LOW); delayMicroseconds(800); } |
いやなにこの単純なプログラムはw LEDの点滅ではないんだからwこんなのでステップモーターが動くわけないじゃ・・・・・・・・むちゃくちゃ快調にステップモーター回っていますwwすごいぞA4988!!
ただむちゃくちゃ快調すぎてモーターが発熱してきました。
こんな時は電流量が多すぎるらしいのでドライバー上の緑矢印部分のスクリューを反時計方向に動かします。
いっぱいまで動かすとモーターの回転が止まりますので、今度は時計回りにこのスクリューを回してモーターが綺麗に回転する最低限の電流の位置に調整します。
これを行うとモーターの発熱がなくなりました。
おおっ!これは簡単なドライバーだ!5個で1000円しないくせにすごく使いやすいw
てなことで上記のプログラムを元に簡単なプログラム書いてみました。
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
/*/===================================================== ステッピングモータードライバーA4988用 ======================================================== -----------使用モーター----------------------------------- https://www.amazon.co.jp/gp/product/B072HZG9Y9/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 モーターステップ15度 1周24ステップ ギアー比 1:41 軸1周ステップ数 24X41=984ステップ -------------配線----------h----------------------------- 1B 黄色 1A オレンジ 2A 茶色 2B 黒 SLEEPとRESETのピンを接続 VMOT モーターの電源(5V1Aで可動確認) GND モーター電源のマイナス GND arduinoのGND VDD arduinoの5V DIRECTION D4pin STEP D3pin ------------関数---------------------------------------- moveto(int v,int steps) v回転スピード 500~15000位まで 数字が小さいほど回転が速くなります。 step 移動させるステップ数 マイナス数字の場合は反時計回り 通常の数字なら時計回り -------------------------------------------------------- とりあえず動いたら電流調整ネジを反時計回りに回して最小の電流で稼働させるようにする。 */ void moveto(int v,int steps){ if(steps<0){digitalWrite(4,LOW); steps=-1*steps;} else{digitalWrite(4,HIGH);} for(int i=0;i<=steps;i++){ digitalWrite(3,HIGH); delayMicroseconds(v); digitalWrite(3,LOW); delayMicroseconds(v); } } void setup() { pinMode(3,OUTPUT); pinMode(4,OUTPUT); digitalWrite(4,HIGH); } void loop() { moveto(500,984); moveto(3000,-800); moveto(15000,-184); } |
(半分以上が説明文というw)
スピードの数字が大きくなると遅くなることに注意してください。
これを動かすと(途中の状態から動画が始まっています^^;)
てな感じで向き、スピード、ステップ数を指定しての動きができるようになりました!
ちなみにこのモーターも1:41の減速ギアーが組み込んでありますのでそれほど高速が出せません。
それなら一番最初のモーターも!と動かしてみると
ちょwL6470ではあれだけ苦労したのに・・・・無茶軽快に動いていますw
もちろんスピードの変更はしていますが、これはいい^^。
このプログラム程度ならarduinoにこだわらなくてもAVRのATtiny13Aとかでも実行できるのでスペースの節約もできそう。
よし、バイポーラ型はこのA4988のドライバーとプログラムで動かすことにしよう^^
ちなみにこのドライバーはフルステップ、ハーフステップ、1/4ステップ、1/8ステップ、1/16ステップと細かくコントロールできるようなのでより滑らかな動きができるそうです。
「自作のいろいろさんのこちらの記事」に乗っていました^^
これで、ユニポーラ、バイポーラ型のドライバーとプログラムが決まりましたので、大概のアマゾンのステップモーターは動かせそうです。
それにしてもステップモーターて、配線やプログラムが合っていても、色々な要件で脱調して動かないとか結構繊細なんだな〜感じました。
ただ、これを使いこなせると、通常のギアードモーター+リミットスイッチの組み合わせや、サーボの代わりとなる動力源として色々と便利になりますよね〜。がんばろ^^。
関連すると思われる記事:
- None Found
こんばんは!
もう寝よかと思ってたらこんな爆弾記事が(笑)
最初はぐぬぬ!となってましたが、中盤から、なんかできそう!って思えてきました。
ユニポーラに続いて、各種実験とその考察がとても参考になります。ありがとうございます。ステップモーター、予想外に?便利そうですね
このA4988のシンプルなインターフェースすごくよいです。6jiroさんおおっしゃるようにライブラリに頼らずに簡単に制御できそう。さっそく5個セットをアマでポチリましたw
こんにちは
ステップモーターの実験が本格的に進んでいますね!
これまた、本格的な科学実験! まずは、ちゃんと動作するところまでこぎつけて、よかったです。
DRV8835は、2系統内蔵のDCモータードライバなので、ステップモーターに使うには、ちょっと厳しいかもしれませんね。
A4988は、じつは私も昨年にライントレースカー製作時に購入していました。(まだ実験していませんが)
6jiroさんに先行実験していただき、大いに参考になります。ありがとうございます。
あっ、そうそう、発熱の件ですが、ステップモーターはご存知の通り、電磁石と同じです。
加えた電力は、磁石に使用されたエネルギー以外は熱になります。
例えば、6Vで10Ωの場合、固定した状態で連続通電すると、電流は、0.6Aながれ、Wとしては、
6Vx0.6A=3.6w (最大で)
結構な熱量になります。
なおさん こんばんは!
夜遅くにも関わらず、ありがとうございました!
バイポーラ型A4988なら簡単に動かせそうでしょ〜。ただ、欠点も有ってコマンドを与え続けないといけないんですよね〜。マイコンに他の仕事をさせようと思うとちょっと不便です^^;タイマーとかで動かす手もありますが、複数となるとタイマーが足りなくなるかもですね^^;
まっ、大して難しいコマンド送信しているわけでないので、このA4988を操る専用の小型のマイコンとかを別で用意してメインのマイコンから始動命令だけ送るてな感じでマイコンの数で勝負でもいいかもですw
ステップモーターはほんと便利そうなのですが、あとは大きさの問題ですよね・・・小型のものは結構トルクがなくて・・・・・もう少しいろいろ探ってみようかなと思っています^^。
Vividさん こんばんは!
どうにか動いてくれてよかったです^^。
私程度の知識ではなかなか難しかったです。
VividさんもA4988購入されていたのですか〜。さすがですね〜。
・・・・・初めからVividさんに相談していたらあっさり結果まで到達できていたのかもw
まっ、ここまでの過程をいろいろと楽しみましたので良かったとしておきましょう^^。
DRV8835は通常のモーターで使用していますので、使い慣れているのですが、ステップモーターに初めて使ってみましたが、全然ダメですね^^;さらに言えば、あの説明書のプログラムで動くとも思えないのですが・・・・・。
なるほど〜!ステップモーターて結構電力消費大きのですね〜。あの電流調節しないとかなりな温度になっていました^^;電流調整ようのネジがあるのもアナログでわかりやすいかも^^。
今回は無茶苦茶勉強になりました!
メイン記事だけでなく、Vividさんのコメント欄までも!
ずっと待機しているだけで電力消費しちゃうんですね。
ということは、展示会でモバイルバッテリー駆動していると、
3000mAhクラスのものでは、何もしなくても1時間持たない可能性があると・・・?
gyoさん こんばんは!
少しは有益な情報ありましたかね^^;?とりあえずはVividさんのコメントが一番有益であるますw
あっ!消費電力ですが、ステップモーターの待機トルク必要なければ電源の供給を切ることができますので、プログラムで対応できますのでその辺についてはご心配なく^^。
こんにちは
たびたび失礼します。
ステップモーターって細やかな角度制御にサーボの代わりに使えるのかなぁ?と思い始めてます。電力考えなければ保持トルクが大きいとかも魅力です。
ただ、サーボのように絶対角(相対ではなく)を管理するにはやはり+αでリミットスイッチのようなセンサーを併用しないと無理なんでしょうかね?
壁掛け時計とか、電池入れたら勝手に12時に戻るので、そういう仕組みもありそうな気もしつつ、、、
自分で調べて実験しろって話だと思いますが、もしご存知でしたら教えてください。
なおさん こんばんは!
あっ!そうか!ギミックに仕込んだあと動かしている途中で何らかの原因で電源が切れると、相対位置の可動ではギミックの動きがおかしくなってしまいますね・・・。ギミックの動きが変になるくらいならいいですが、最悪壊れちゃいますもんね・・・・。
流石なおさん!気がつきませんでした^^;
絶対位置についてですが、この記事にあるL6470では位置記憶や絶対位置回帰とかのコマンドがあるのですが、電源が切れてもその位置を記憶しているのかは不明です。
プログラム的にはステップ数を数えておけば0ポイントはわかりますのでEEPROMに常に位置を書き込むとか・・・・・(ちなみに私の能力だとできませんがww)
やはり、おっしゃるようにリミットスイッチを1つ取り付けてそこを絶対位置にするようにして、初期化の際にそのスイッチを押す方向に動かして絶対位置を決めるとかのほうが簡単そうですね。
今思えば、アシェットのトムキャットやファントムのギミックでステップモーター使っているのにリミットスイッチが付いていた理由がわかりました^^
三度お邪魔します。こんばんは
早速のご指南ありがとうございますm(_ _)m
なるほど、ドライバにそういうコマンドが用意されているものもあるのですね。そこは使うものによって色々と方言があってデータシート読んで実験してが必要なのでしょうね。私もEEPROM使うとか全く未踏の地でとてもとても。。。www
トムキャットとファントムもリミットスイッチ+ステップモーターの構成だったのですか。製品レベルの品質確保にはそういうフェイルセーフは必要なのかもしれませんね。いろいろとありがとうございます、かなり予備知識ができました。私も自力で少し勉強してみます。
なおさん こんばんは!
いえいえ!こちらこそ色々と気づきを与えてくださり感謝です^^。
ちなみにL6470のデーターシートはこちらです。
http://www.ne.jp/asahi/o-family/extdisk/L6470/L6470_Rev7_DSJP.pdf
親切な方が日本語に訳して公開してくれています。
ステップごとにEEROMで記憶というのもあるかもしれませんが、EEPROMの書き換え回数上限てどのくらいなんでしょうね~。1回転で2048ステップとかだとあっという間に書き換え上限超えそうな気もしますw
トムキャットとファントムを見本にやはりリミットスイッチを1でもつけての可動が安全かもしれませんね。確かにトムキャットでも翼を開いたまま電源コードを抜くと次に電源を入れた時には必ず閉じる動作していました。多分ステップモーターの初期位置を決めるためにリミットスイッチを押しに行っていたんでしょうね~。
前の記事への書き込みですみません。
皆さんがどんどん新しい技術を身につけて進んでいるのに自分はまだこんな所で躓いておりまして…(;-_-)
PICの初期設定などの”お作法”も満足に身についていないので、どうしてほぼコピペで利用出来るプログラムに頼ってしてしまっているのですが、半年以上経ってもどうしてもL6470での制御が安定しないので、6jiroさんのこの記事の”まるでLチカ”同様に制御出来ると書いてある12行のプログラムを参考に、入手したTMC2208とL6470で使用していたPIC 18F2xK22を使って動かそうと試みたのですがステッピングモーターが全く動きません(T_T)
PICの初期設定はクロック64MHz動作設定、全てデジタル出力、使うポート(ポートB)は内部プルアップにして以下のような感じ(主要部分だけの抜粋ですが)にプログラムを書いてみたのですがなにか根本的なところが違っているのかもしれません。
この部分を6jiroさんが見て何かおかしなところがあるでしょうか?
#define _XTAL_FREQ 64000000 // delay用に必要(クロック64MHzを指定)
#define LAT_B4 LATBbits.LATB4 // RB4用にPIC18用のLATレジスタを使用
#define LAT_B5 LATBbits.LATB5 // RB5用にPIC18用のLATレジスタを使用
// 回転方向を決定(RB5)
LAT_B5 = 1 ;
while(1){
// 回転パルスを決定(RB4)
LAT_B4 = 1 ;
time_ms(500) ;
LAT_B4 = 0 ;
time_ms(500) ;
}
※PICでは__delay_msで大きな数字や変数が使えないようなのでネットで見付けた変数化させる方法(time_msを定義して__delay_msを繰り返す)を利用しています。
yangminさん おはようございます!
時間の単位が違いま~す。
ミリ秒でなくてμ秒です。
そのせいで脱調している物と思われます^^
へ!?
単位が!!??
ホントだマイクロだ(汗)
朝早くからすみません、返信ありがとうございますm(;_ _)m
こんばんは。
勘違いしていたディレイをμsに直して数値を(300) (500) (5000) (30000) (50000)と色々変えてみたのですがモーターはウンともスンとも言わずでどれも回転しませんでした(T_T)シクシク
試しにPICの信号出力ピンにLEDを接続してみるとディレイの数値が小さい時はほぼ点灯しているようにしか見えませんが、ディレイの数値が大きくなるほど目視で確認できる程LEDの点滅がチカチカしてきていたのでPICからの出力は無事にされているようなんですが・・・。
TMC2208が5個あるので3つほど試してみたのですが結果はどれも同じでした。
何がダメなんだろう(;+_+)
yangminさん おはようございます!
PICの方は専門外でよくわかりませんが、とりあえず出力は出てると考えると、
あとはTMC2208の電流調節ネジをいじるくらいですかね・・・・
それとステップモーターの配線も確認しておいてください。
モーターによっては配線のグループわけが、A、Bのグループに分けられてるものが有りますが、
このドライバーでは1,2のグループわけとなっています。
こんにちは
度々の返信ありがとうございます!
ちなみに自分の購入したTMC2208ですが電流調整用ポテンションメーターがピン側(裏側)からじゃないと回せなかったんですけど6jiroさんのはどうでしたか?
しかも、わざわざ調節用のプラスドライバーが付属しているのに合わなくて全く使えないという(;^^)
こういう場合、ポテンションメーターは裏から見て左回りで減、右回りで増と解釈して良いんでしょうねぇとか色々心配になってしまいます(苦笑)
モーターグループはL6470の時もそうですがA1 A1 B1 B2 だったり1A 1B 2A 2Bだったりと散々くらっているので大丈夫だと思うんですが・・・。
パルス送出のμsディレイ間隔ですが、もっとモーター毎に計算などで割り出さないとダメなんですかねぇ。
他にも2021-06-20の6jiroさんの記事のでも教えてもらっていますが、データシートも見てenableをlaw(gnd)接続でモーター出力有効、high(5v)で出力無効ということでgndにしてもいるのですが・・・。
yangminさん こんばんは!
うむ・・・・なんでなんでしょうね・・・・
簡単に回せるはずなんですけどね・・・・
PICの方ですがLATレジスタを使わないで、通常の出力でテストしてみました?
それと、全く関係ないかもしれませんが、外部クロックですか?周波数を少し下げてみるのもどうでしょうか?
もしどうしても分からないようなら、モーターとドライバー送ってもらったらテストしてみますよ。
ちなみに、うちのTMC2208も基板に穴が開いていてそこからマイナスドライバーで回せるようになっていますw
6jiroさん、こんばんは!
クロックは内部クロックで、そんなに高い必要は無いのでは?
と思って8MHzに変更後の結果でなんです。
LATレジスタは18Fシリーズ特有のレスポンスの良いレジスタのようで、良かれと思ってやって通常のPORTレジスタは試していないので後で試してみます。
自分のTMC2208も穴は空いているのですが、ピンと反対側に凹みやスリットが無く、そこからマイナスドライバーでポテンションメーターが回せるようになっていなかったんですよ(困)
こんにちは。A4988でステップモーターを動かす記事を探していて
こちらにたどりつきました。
記事でご指摘の通り、小型ステップモータを動かすことに
なんとか成功したのですが、発熱がとんでもなく、たぶんそれが原因で
動かなくなってしまいました(壊れた)。
ネジで調節の件は全く知らなかったので、それを念頭に次回
発熱調整しようと思います。
現状、モーターの選定をしています。まずはステップモーターを
ちゃんと動かせるようになることが目標です。
SYUMMONさん 初めまして!
お返事かなり遅れてしまい申し訳ありませんm(_ _)m
ステップモーター結構発熱しますよね~w
あのネジを調整するのはかなり重要です。
ただ弱くし過ぎるとトルク無くなってきますので、その辺は注意した方が良いと思います^^
それと、ここでは触れていませんがENABLE端子の活用も必用と思います。
こちらにもステップモーターの記事有りますのでよかったらどうぞ
https://smile-dental-clinic.info/wordpress/?p=11521#more-11521
返答ありがとうございました。ステップモーター何種類か届きましたので
A4988に接続してテストしたところ、動作するようです。
AliExpressというサイトで、以下のようなものを購入しました。
https://ja.aliexpress.com/item/1005004942888301.html?spm=a2g0o.order_list.order_list_main.11.7402585abKXTGB&gatewayAdapt=glo2jpn
A4988のSTEPにチョンチョンと手で0点微振動でテスト、それにあわせて
動いてくれています。
ただ、やはりモータの発熱がすごい。動作確認したら、壊れる前に、すぐに接続を
外しました。PICでプログラムして動かすつもりなので、ご指摘のENABLE端子に
PIC接続して、モータを動かしていない時はHIGHの信号を送るように
してみます。これがうまくいったら、TB1号やトムキャット、バルキリーの
翼の開閉とか、ライディーンのフェイスオープンとかできるなぁと、想像して
ワクワクしています。(が、しかしいつも完成までモチベが持たず、ワクワクした
だけで放置…が私の履歴…泣)
これをなんとかしたい。6jiro様のパワーはすごい。頭の回転も、手の速さもすごい。
まずはなんとか完成を目指します。私も洋物SFが好きなので、
mpc 1/72 イーグルのブースターとか、宇宙戦争のトライポッドとか
輸入で購入しました。エンタープライズも電飾完成できたらなとは「思う」のですが
とてもじゃないけど、1/350は無理。不可能。なんとか頑張って
AMTのTV放映当時に発売されたサイズものが「いつか」完成させることが
できたらな、と「夢見て」います。
(といいながら、つい先日、アリスホビープラモ店でpolar lights ガリレオシャトルが
2000円で叩き売りされていたので、即購入。しかし、もちろん積みプラ行きwww)
6jiro様のサイトは勉強になります。制作記事UPありがとうございます。m(_ _)m
SYUMMON さん こんばんは!
私も同じような物を使ってみましたが、このタイプ発熱凄いですよねw
電流量の調整は必須で連続可動はあまりしない部分に使用した方がよさそうですw
ステップモーターも使えるようになると応用範囲も広がりますので、ぜひ色々と試してみて下さい^^
6jiro様、たびたび失礼します。PICをプログラミングしてa4988に接続し
やってみたのですが、ステップモーター動きません。先のyangmin 様と
同じ問題にぶち当たっているようです。現状、まずPICの動作確認で
PIC3つの出力端子(Enable、STEP、DIR)にLEDをつないで確認すると
ちゃんとLED点灯し、出力されているの(STEPはパルス出力)ですが、
それをA4988につないでも
ステップモーターが動きません。Enable端子を外しても、同じです。
A4988のみでの0点チョンチョン(手動パルス)だと、ステップモーターが
ちょこちょこ動くのですが、PICにつなぐと、ダメ。
理由がわかりません。
発熱も、ネジ調整しても、かなり発熱します。
ちょっと自分の場合、ステップモーターの少し大きいのを購入して
じっくりテストしていかないと、動くまでたどり着けなさそうです。
こんにちは!
じつはyangminさんの時は、TMC2208の出力側(モーターにつなぐ配線側)の端子のプリント位置が分かりにくい状態になっていて、出力側の接続の配線位置がずれていたんですw
念のためもう一度配線ご確認ください^^
それとまれにですが(実は以前あった事象w)ジャンパー線が内部で断線している時もありますのでご注意くださいw
他のA4988に交換してもダメですかね?
手動で動かしたくらいで発熱するというのもちょっと気になります^^;
6jiro様、ご親身に助言くださり、本当にありがとうございます。他の方の
参考にもなると思いますので、まず、当方の現状を詳しく述べますと、
使用しているステップモーターは、先に貼ったリンク先のものです。
リンク先の動画ではスムーズに動くようなので、動かすのが不可能という
ことではないと思います。
ほか、同じようなステップモーターを購入してやってみてますが、どれも
A4988に接続し、ステップ0点チョンチョンの手動パルスでちょこちょこ動くのですが
発熱が半端ないので、すぐにモーターをはずします。
どうもネジ調整がかなり微妙なセッティングをしないといけないようで、
当方、残念ながらそれほど(いや全く)電気の知識がありません。ネジ調整も手探りで
やりましたので、テスター使ってません。まず、電流値を測定しながら
ネジ調整してみようと思います。
ちなみに、ENABLE端子をHIGHにしていると、モーターが発熱
しないのは確認しました。
ジャンパー線断線の件、配線チェックとともに確認します。ありがとうございます。
A4988もまだ予備がありますので、変えてやってみます。
PICはパルスをMSでやってました。US(マイクロセカンド)に変えて
試してみようと思います((発熱解決後)。
正直、どはまりしました。こいつが動いてくれないと、気持ち的に前に進めません。
このくそ暑い中、自分が発熱しています。この状態ではうまく進まないので
天気様子見ぼちぼちでなんとか進めていきます(泣)
6jiro様、追記です。回路ですが、ブレッドボードにA4988をセット、ステップモーターに接続し、電源はパソコンからUSBで5V電源を引っ張り、この状態で、手動動作で発熱してます。ネジをかなり最小にしないと、発熱します。しかし、最小にすると、動きません。
電源を、USB5vから単三電池3本(4.5v)に変更すると、ネジを右いっぱいに回しても動かないし、発熱もしません。
何度も確認しましたが、上記の状態で間違いありません。何かお気づきの点があれば
助言いただけましたら幸いでございます m(_ _)m
SYUMMON さん こんにちは!
プログラムの方、時間単位がmsなら脱調して動かないと思います。
μsに直したプラグラムで試してみてください。
正常に動けば発熱もコントロールできるはずなので、そちらが優先と思います。
ちなみに私も同様のステップモーターを使っていますが正常に動いていますよ^^
https://twitter.com/6jiro1/status/1664945697660223488?s=20
調節ネジを最小やモーター電源が5V以下でも動きません。本当は8V程度必要らしいです。
この辺はこちらのコメント欄で詳しい方が解説してくださっています。
https://smile-dental-clinic.info/wordpress/?p=11521#more-11521
6jiro様、動きました!今まで見たこともないような動きで
(=6jiro様の先の動画のように)動きました。音もスムーズ。
正直、なんで?なんで?
状態です。が、感動してます。発熱もありません。
Enableコントロールがうまくいっているようです。
電源接続ですが、USB5Vをa4988のモーター電源端子に、
PICとA4988の電源を4.5V電池から引っ張りました(電源を分けた)。
ENABLE、STEP、DIR をPICからコントロールしています。
今までから信じられないように快調に動きます。
MSをUSに直したのが効いたのでしょうか?
なんにせよ、「心すっきり」してます。助言ありがとうございました!m(_ _)m
SYUMMON さん おつかれさまです。
はい!
msとμsでは時間単位が1000倍違いますので、msだと脱調と言いましてステップモーターのタイミングが全く合わずに回転できなくなります。
上記のプログラムもマイクロセカンドになっています。
上記のプログラム内のコメントにもあるように試しにμsの数字を範囲外に変えてみて下さい。脱調で多分動かなくなると思います^^