スポンサーリンク

ステッピングモーターの制御パルスを確認するパルスカウンターを自作する

その他工作

CNCコントローラーから出力される制御パルスによってステッピングモーターの角度が決まります。
もし、コントローラーの不具合などでパルスが抜けてしまうようなことが起きると、正確な位置決めができず、いくら高精度のフライス加工機を作ったとしても正確な寸法で加工することが出来ません。

今までは加工機を実際に動かし、繰り返し精度を測定することで確認していました。
今後はLinuxCNC等の制御ボード自体を製作することになるので、加工機に取り付ける前にパルスを測定できた方が効率的に開発が進みます。

そこでステッピングモーターの制御パルスを計測するカウンターを作ってみました。

スポンサーリンク

パルスカウンターの構想

パルスカウンターは手っ取り早くマイコンを使って自作することにします。
マイコンとはプログラムを書き込んで利用するICチップの事です。
プログラムは通常ユーザーが用途に応じて自作します。

マイコンを使うのは4年ぶりなので開発キットを押入れの奥から出してきました。
マイコンはAVR Ttiny2313などストックがあったのでこれを利用することにします。
水晶発振子を利用すれば最高20MHzで駆動します。内部発振でも8MHzまで出せるので速度的には問題ないでしょう。
パーソナルユースのCNCコントローラーから出力されるステッピングモーターの制御パルスは速くても100kHz~200kHz程度なので8MHzで測定すればパルスの取りこぼしはないはずです。(一応確認はします)

カウンターの表示方法としてLCDと7セグメントLEDが思いつきます。
LCDは非常に見やすいディスプレイですが、制御用のプログラムを作らなくてはいけません。
AVRマイコンでLCD制御の経験が無いのでこの制御で多分つまずくはず・・・
目的はAVRで遊ぶことではなく、パルスを測定することですから、割り切って簡単に制御できる7セグメントLEDを使うことにします。
一応パルス計測は余裕を見て8桁表示にしました。

AVR Ttiny2313は20本の足があり、I/Oピンとして18本利用できます。

7セグメントの制御側に7本。
8桁表示のために8本。
そしてパルスカウンター(Step、Dir)で2本。
リセットボタンで1本

ぎりぎり足りますが万一マイコン側の周波数が足りない場合、水晶発振子を増設して20MHz駆動にしたいと考えています。このでこのままではI/Oピンが足りません。

そこで7セグメントLED用のデコーダを使うことにします。
4ビットの信号を入力することで7セグメントのLEDを制御できるICです。これでI/Oピンを3本節約できるので水晶発振子も増設可能です。

パルスカウンターの自作

7セグメントLEDは1つ40円で購入できます。
4桁つながったタイプは200円で販売されていて、「1桁タイプを4つ購入した方が安いじゃん」とおもって1桁タイプを買ったのですが、配線が非常に面倒ということに後になってから気が付きました。

片面のユニバーサル基板にそのまま取り付けると被覆導線が複雑に配線することになります。
そこで、スズメッキ線を基盤に縫う様に配線すると疑似的に両面プリント基板のようになります。
もっとも両面スルーホール基盤を使えばこんなことしなくても綺麗に配線できます。
DSC_5653

DSC_5655

カソードコモンタイプの7セグメントLEDを使っているのでアノード側の各ピンを繋げ、カソード側のON・OFFで表示する7セグLEDを選択する設計です。
これをダイナミック接続と言います。

高速で次々に表示する7セグLEDを切り替えることで人間の目には同時に点灯しているように見えるのです。
ただし、8桁表示ともなると光度も1/8になるので少々薄暗く、表示のチラつきも目に付くようになります。
↓7セグLEDのアノード側のピンを半田付けしたもの
DSC_5659

この時点では被覆配線はゼロなので非常にすっきりした配線です。
この後、マイコンのプログラムを書きながら(I/Oピンの選択など)部品を配線していきます。
DSC_5660
マイコンやスイッチ類をすべて取り付けた状態。
マイコンとデコーダIC、抵抗とスイッチなど非常に簡単な部品構成です。
事前に配線の設計をせず、場当たり的に配線したので被覆導線がひどいことになっています。
DSC_5662

DSC_5663

ボードが完成したのでプログラムを書き込みます。
AVR純正ライターを接続できるのでマイコンを取り外すことなく書き込むことが可能です。
DSC_5672
電源を投入してみると、やはり8桁のダイナミック接続なので光度が足りず、表示が見難いです。
とりあえず動いているのでUSBCNCに繋いでみました。
DSC_5664

数字が判別不能というわけでもないのでこのままUSBCNCのパルスを測定してみることにします。
4mm分軸を動かしてみるとパするカウンターが3200カウントしました。
計算値も3200なのでぴったりと一致しています。(部屋を薄暗くして撮影)
DSC_5681
40mm分動かすと32000カウントします。パルスの取りこぼしもないようです。
F9600(mm/min)の高速で動かしてもパルスの取りこぼしはありませんでした。
正確なパルス測定が可能の様です。
DSC_5684

コメント