趣味を楽しむ Enjoy your hobby
Share my hobby experience
| ホーム |
2019-10-12 10:50 |
カテゴリ:PIC応用回路
ちょっと前に、AMAZONでステップモータ(超小型版のネジビス付き)を購入し、テストしました。
あれはあまりにも小さくて、何かを動かすには非力なので、その後もう少し大きな物を探していました。
しかし、ちょうど良い大きさ物が無く、仕方がないので、4cm角のちょっと大きいステップ・モーターを3個購入しておりました。
今回はこれを上手く制御できるように「勉強」したいと思います。
(STM0101)
今回のステップモーター(17HS08-1004S)です。
結構大きく、重い物です。
続きは、、、、
まずは部品の整理から。
モーターは、製品に型番号が記載されていましたので、ググったら簡易データシートがありました。
(PM0102)
ステップ・モーター以外は、
ステップ・モータードライバ(A4988)。
(PM0103)
これはちょっと前に、小型パルスモータ(ステップモーター)を入手した際に調達してありました。
(PM0104)
このドライバーは、励磁のパターン(フルドライブから1/16まで対応)の指定、リセット、回転方向の指定、をすると、後は起動するパルスを与えるだけです。
(PM0105)
端子名を印刷した基盤が裏側になるので、ちゃんとメモしておきます。(笑)
それ以外は、PIC16F18875、10KΩの可変抵抗、プッシュSW、確認用LED
以前制作した、表示装置、そしてPIC-KIT3です。
これらを順にブレッドボードに組み上げていき、ジャンパー線で回路をセットしていきます。
(PM0106)
まずは、PICへのプログラミングと起動。printf文による文字表示の動作確認、まで進めました。
(PM0107)
何回か、配線の間違い(笑)を修正して、小さな「うっかり」だけで、起動できました。
printf文は、TXからシリアル通信で出力された物を例の表示装置に表示させます。
この段階では、割り込みによるバッファでの表示ではなく、まずは素直に「直接出力」で、SWの動作と表示の確認です。
一応の動作確認ができたので、次に、TXのデータをバッファリングして割り込み処理で送信する様にしたいので、MCCでシリアル出力にバッファリングと割り込み処理の設定をしました。
ついでに、MCCで、タイマーの初期設定をしました。(まだタイマー値はセットしていません)
ステップ・モーターに与える駆動パルスのトリガーを計数するためです。
これらのタイマー割り込みをMCCでセットし、main関数で「割り込み解除」と「周辺機器割り込み許可」を記述すれば、文字列をバッファリングの上、割り込み処理で表示してくれるはずです。
所が、起動直後の動作確認LEDが定期点滅しません。点灯したままです。
どうやら、イニシャライズ直後の最初のprintf文が表示されません。
先ほどの「直接出力」ではちゃんと動作していたのに。
ここではまりました。
MCCの設定やら、割り込み処理の「許可」なども確認しましたが、問題なさそうです。
散々悩んだ末、原因がわかりました。
先ほど初期設定だけしていた、タイマー(TMR1、2、3)がスタートしたままだったのです。
これは、MCCの初期化の処理内で、自動的に「スタート」されます。
文字表示の為に割り込みを許可したので、TMRの割り込みも発生し、「常時、のべつ幕なし」で割り込みが発生し、mainに戻れなかった様でした。
タイマーをストップする様にしたら、ちゃんと文字が表示されました。
割り込み解除直後に、タイマーを停止させる。でないと、永久にタイマー割り込みが発生し続ける。
さて、問題が解決したので、今度はAD変換です。
VR(10KΩ)をGNDとVddに接続し、中間点をPICのADに入力します。
(PM0108)
これで、ADを読み込むと、0-1023の値が得られます。
実際に動作させると、VRを変化させても、1023固定です。
(PM0109)
AD変換が常時1023を示す??
なんで??
VRには、ちゃんとGNDとVdd(5V)が供給されています。
VRの中点は、ADの指定Chに接続されています。
ここでまた、はまりました。
AD変換の各種設定の再確認。OKです。
3時間経過、、、
あれ?
(PM0110)
ふと触ったVRの中点のピンの根元を見ると、、、折れかかっていて、導通がなさそうです。
なあーんだ!
早速、半田付け。
そして再確認。
あれ?
やっぱり、1023ばかり。
また1時間経過。
VRに関連するブレッドボードのジャンパー線をテスターで確認。
あれ~~!!
内部で断線してる。
(PM0111)
テスターで見ても導通がありません。
こういうジャンパーの断線は困りますね。
多少価格が高くなっても、もう少し信頼性のあるジャンパーが欲しいです。
で、全てをセットして、AD変換までたどり着きました。
(PM0112)
では、一連の動作をどうぞ。
あっ、そうそう、動画ではモーターが回転していますが、これはmain()の中に、__delay_ms(10)などで適当なパルスを発生させ、while(1)文で繰り返しているだけで、AD変換で指定したパルスを与えているわけではありません。
単純な動作確認だけです。
これから、AD変換で与えたパルス間隔とSWで指定した励磁モードで、ちゃんと起動するか、
まだ先は長そうですが、例のフリスク表示器は役に立っています!
(PM0113)
- 関連記事
-
- ステップ・モーター制御へ入門 (3) (2019/10/22)
- ステップ・モーター制御へ入門 (2) (2019/10/18)
- ステップ・モーター制御へ入門 (1) (2019/10/12)
- 電子工作 倒立振り子ロボットの製作 (2) (2019/07/10)
- 電子工作 倒立振り子ロボットの製作 (1) (2019/07/05)
6jiro
こんにちは!
A4988は最高ですよね~!
とにかく単純明快で凄く使いやすいです。
タイマーの所が少しわからないのですが、タイマーを止めるのですか?タイマーが止まるとタイマー割込みが出来なくりそうな気もするのですが・・・・・。まだまだタイマー割込みとかよくわかっていない部分が多いです^^;
ジャンパー線の断線はホント困りますよね!
これ初めて遭遇した時は相当な時間悩んでようやくたどりつけましたwたしかyangminさんもこれで相当悩まれていたのを思い出しますw
A4988は最高ですよね~!
とにかく単純明快で凄く使いやすいです。
タイマーの所が少しわからないのですが、タイマーを止めるのですか?タイマーが止まるとタイマー割込みが出来なくりそうな気もするのですが・・・・・。まだまだタイマー割込みとかよくわかっていない部分が多いです^^;
ジャンパー線の断線はホント困りますよね!
これ初めて遭遇した時は相当な時間悩んでようやくたどりつけましたwたしかyangminさんもこれで相当悩まれていたのを思い出しますw
2019-10-12 17:26 URL [ 編集 ]
Re: タイトルなし
Vivid
6jiroさん、こんばんは!
そちらは台風の影響は少なかったでしょうか? 我が家の近辺は、風が少し吹いたくらいで、事なきを得ました。
しかし、愚息二人が千葉と横浜におり、これからが要警戒です。
このモータードライバーは便利ですよね。最大1A流れる設定にしても、放熱器は全く正常です。
タイマーの件、
説明不足ですみません。先々の為にMCCでTMR1、TMR2、TMR3を定義して、しかしタイマーにはカウント設定をしていませんでした。
なので、タイマーの動作を停止しておかないと、割り込みが次々に入って、他に仕事ができない状態でした。
printf()の出力は、タイマー割り込みではなく、TX送信割り込みなので、送信バッファにデータがあると一文字づつ送信する仕組みと思われます。
従って、TMR1、TMR2、TMR3の動作を停止しても文字表示は大丈夫でした。
yangminさんもジャンパーの罠にはまったのですか??
皆さんご経験されているのですね。(笑)
そちらは台風の影響は少なかったでしょうか? 我が家の近辺は、風が少し吹いたくらいで、事なきを得ました。
しかし、愚息二人が千葉と横浜におり、これからが要警戒です。
このモータードライバーは便利ですよね。最大1A流れる設定にしても、放熱器は全く正常です。
タイマーの件、
説明不足ですみません。先々の為にMCCでTMR1、TMR2、TMR3を定義して、しかしタイマーにはカウント設定をしていませんでした。
なので、タイマーの動作を停止しておかないと、割り込みが次々に入って、他に仕事ができない状態でした。
printf()の出力は、タイマー割り込みではなく、TX送信割り込みなので、送信バッファにデータがあると一文字づつ送信する仕組みと思われます。
従って、TMR1、TMR2、TMR3の動作を停止しても文字表示は大丈夫でした。
yangminさんもジャンパーの罠にはまったのですか??
皆さんご経験されているのですね。(笑)
2019-10-12 18:06 URL [ 編集 ]
なお
こんばんは。
ああ、なんかこういうデバッグ過程ってすごく親近感を覚えます。記事にすると、これをこうしてこうなりました、な裏に、あーでもないこーでもない、がありますよね~♪
私はまだジャンパ線内部の断線には遭遇したことがありません、運がよいのかな?
今は、マイコン間通信で時々ミスってるっぽい原因を追っかけてます(^^;
ああ、なんかこういうデバッグ過程ってすごく親近感を覚えます。記事にすると、これをこうしてこうなりました、な裏に、あーでもないこーでもない、がありますよね~♪
私はまだジャンパ線内部の断線には遭遇したことがありません、運がよいのかな?
今は、マイコン間通信で時々ミスってるっぽい原因を追っかけてます(^^;
gyo
フリスクメーターは便利ですね!
しかし、些細なトラブルで躓いた以外は実にサクサクとAD変換からモーター稼働まで進んでいて、基本スキルが高いと楽勝なのが楽しそうでうらやましいです。
ステッパモーターって、いくらでもグルグル回って細かく調整が効いて便利ですけど、
図体がデカいのがちょっと使いにくい印象です。
しかし、些細なトラブルで躓いた以外は実にサクサクとAD変換からモーター稼働まで進んでいて、基本スキルが高いと楽勝なのが楽しそうでうらやましいです。
ステッパモーターって、いくらでもグルグル回って細かく調整が効いて便利ですけど、
図体がデカいのがちょっと使いにくい印象です。
Re: タイトルなし
Vivid
なおさん、こんばんは
自己満足なんですが、あーでもない、こーでもない、を聞いてほしいんですね、ほんと!(笑)
ジャンパ線断線、ぜひお気を付けください。
思わぬ落とし穴でした。
マイコン間通信って、i2cですか?
センサーやLCD表示器をつなげた経験はあるのですが、PIC間の通信は経験ないです。
今度挑戦してみたいです。
自己満足なんですが、あーでもない、こーでもない、を聞いてほしいんですね、ほんと!(笑)
ジャンパ線断線、ぜひお気を付けください。
思わぬ落とし穴でした。
マイコン間通信って、i2cですか?
センサーやLCD表示器をつなげた経験はあるのですが、PIC間の通信は経験ないです。
今度挑戦してみたいです。
2019-10-12 19:19 URL [ 編集 ]
Re: タイトルなし
Vivid
gyoさん、こんばんは
そちらは台風の影響は大丈夫でしょうか?(これから激しくなりそうですが、無事に過ぎることを祈っています)
フリスク・メーター、良い名前ですね、使わせていただきます(笑)
決してサクサクなんて、とんでもない。あーでもない、こーでもない、で悩みつつの作業です。
でも仕事ではないので、「楽しんで」います。
ステップモーターは、AMAZONで検索したのですが、デジカメに使用するような超小型か、3Dプリンター用の4cm角以上のおおきなものしか見つけられませんでした。
2-3cmくらいが使いやすいのですが。
そちらは台風の影響は大丈夫でしょうか?(これから激しくなりそうですが、無事に過ぎることを祈っています)
フリスク・メーター、良い名前ですね、使わせていただきます(笑)
決してサクサクなんて、とんでもない。あーでもない、こーでもない、で悩みつつの作業です。
でも仕事ではないので、「楽しんで」います。
ステップモーターは、AMAZONで検索したのですが、デジカメに使用するような超小型か、3Dプリンター用の4cm角以上のおおきなものしか見つけられませんでした。
2-3cmくらいが使いやすいのですが。
2019-10-12 19:25 URL [ 編集 ]
yangmin
今度はステッピングモーターの制御ですか。
毎回興味の振り幅が大きくて、しかもキッチリ解決しているのは本当に凄いです(^^)
自分も以前Vividさんが当方のブログへ書き込んでくれた時に遭遇し、会話したことがありましたが、秋月のジャンパー線、ちょっと断線しすぎですよね(>_<)
毎回興味の振り幅が大きくて、しかもキッチリ解決しているのは本当に凄いです(^^)
自分も以前Vividさんが当方のブログへ書き込んでくれた時に遭遇し、会話したことがありましたが、秋月のジャンパー線、ちょっと断線しすぎですよね(>_<)
2019-10-28 05:14 URL [ 編集 ]
Re: タイトルなし
Vivid
yangminさん、こちらにもコメントをありがとうございます。
ほんと、なんにでも食いついています(笑)
本格ステップモーターの制御は初めてなので、いろいろ勉強することが多いです。
この記事は、まだ続きますので、お時間ありましたらご覧いただければ幸いです。
秋月のジャンパー(中華製と思いますが)もう少し高くても柔軟で切れにくい物にしてほしいですよね。
ほんと、なんにでも食いついています(笑)
本格ステップモーターの制御は初めてなので、いろいろ勉強することが多いです。
この記事は、まだ続きますので、お時間ありましたらご覧いただければ幸いです。
秋月のジャンパー(中華製と思いますが)もう少し高くても柔軟で切れにくい物にしてほしいですよね。
2019-10-28 05:35 URL [ 編集 ]
| ホーム |