- ベストアンサー
パラレルポートを使ったステッピングモータ角度制御について教えてください
windows98でパラレルポートを使ってステッピングモーターを角度制御したいと考えています。しかし、プログラムがわかりません。 何か参考になるものはないでしょうか。 言語はVC++6.0を使用します。 任意の値を与えることにより、その角度に駆動させたいのです。 (たとえば1だったら1.8°、2だったら3.6°、3だったら5.4°といった具合に) ソースなんかがあるとうれしいです。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 パラレルポートと言う事は、プリンタポートを使うと言うことですか? パソコンにもよりますが、パラレルポートは有名な8255と言う ICが使われている事が多いので、この石のデータシートを入手し て、Cのプログラムからポートの設定をしてやる必要があると思い ます。 そして、その設定したポート(ステッピングモーターのドライバに つながっている足)に対して、回転速度を計算して、位相を持った 信号を送り出します。 とりあえず実験なら、データテーブルを生成してそれをループで送 るのが簡単だと思います。 話を簡単にするために4極のモーターでコイルを右回りにX,Y,x,y (X-x,Y-yが対向)とすると、回転させるには、 X x Y y 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 と送り出してやればいいのはわかりますよね? あまり早く切り替えると脱調して回転しないので多少の待ちが必要 になります。 最近の本は知りませんが、15年くらい前でも本屋さんに行くと 回路図やプログラムの載った本があったので今でも何か参考になる ものが売られていると思います。 プログラムは制御するハード(パラレルポートのICや使用する ポートの足によって)によって違うので、それを参考に自分でアレ ンジしてみてください。
その他の回答 (2)
- assamtea
- ベストアンサー率57% (203/353)
こんにちは。 まず、ステッピングモーターの回る原理をきちんと理解する事が 必要だと思います。 ジャンクと言うことですが、何か書いてありませんか?内部の結 線はモーターから出ているリード線でわかると思いますが、その あたりの資料はありますか? 一般的には、180,200,360pprが多いと思いますが、軸を持ってゆっ くり回すと、細かなクリック感が感じられるので、それを数えると どのタイプかわかると思います。200回であったら1パルス1.8度 になります。 あと、モーターのドライバはどのように設計されているのでしょうか? パラレルポートから、FETなどのスイッチング素子を直接プログラ ムから制御するのか、サンケン等の専用の石を用いるのでしょうか? 個人的には、小型のステッピングモーターにはサンケンのSLA7020等の 石を使う事が多かったですが、そのあたりによってもプログラムは 変わります。 とにかく、使用するステッピングモーターの結線、回転原理を正しく 理解することが先決です。それがわかればプログラムなんてすぐに 書くことが出来ると思います。
補足
ありがとうございます。しかし、言語がまったくといってもいいほどわかりません。(わかるのはscanfとprintfぐらい) ちなみに駆動原理はわかっています。1-2相励磁によって駆動させたいと考えています。 おそらく線は4本出ているので4相だと思います。配線がしていないので具体的なことはわかりませんが。 クリックの回数は10回だったのでステップ角は36°だと思います。 信号を与える先は単純にブリッジで、絶縁してフォトカプラに与えます。 よろしくお願いします。
- nitscape
- ベストアンサー率30% (275/909)
>たとえば1だったら1.8°、2だったら3.6°、3だったら5.4°といった具合に これはパルスの与え方というよりもVC++でのプログラミング上の問題ですよね。ステッピングモータを駆動できるようになればすぐにできると思いますよ。まずはステッピングモータの駆動原理をきちんと押さえるといいと思います(原理は参考URLなど)。 ステッピングモータはモータによって1ステップの角度が違います。4ステップのモータなら1ステップは360度/4=90度、48ステップなら360/48度のようにです。またパルスの与え方によっても若干ですが1ステップでの角度を調整することが可能です。そのためお持ちのステッピングモータによってプログラムも若干ですが変わります。
補足
別の質問でも答えていただきありがとうございます。 ちなみに、今回使用するステッピングモータは仕様がわからないジャンク品です。 ステップ角は今後調べていくつもりです。 ステッピングモータを駆動させるのとはまたちがって、言語でどんな風に書いていったらいいのかわからないのです。(言語自体が初心者なので)
お礼
ありがとうございます. 上記の方法の12,9,3,6で矩形波の出力に成功しました. IOアドレスの直接指定でできました.