ハードの作成と、プログラムの作成を同時に進めてきました。
やっと、制御部分のPICのプログラムとハードのテストがいい
結果になりました。
テストボードで、ハードの仮組をし、ソフトを確認しながら、手を
加えて、プログラムを作成しました。
今回は、PICを二つ使ってます。なんとも、もったいない使い方
で、プログラムは、容量の20パーセントぐらいしかつかって
ません。余分なコメントもありますが、掲載します。
制御プログラム----main.c
今回のプログラムは、タイマー0の割り込みと外部割り込み
を使ってます。
当初、押しボタンスイッチは、スタートとストップだけでしたが、
急遽、リセットの押しボタンスイッチを追加しました。
この、コントローラーは、ステッピングモーターの回転数と
正転・逆転のコントロール、センサーで正転から逆転への
切り替え、の動作を制御するだけです。
自動で
正転→センサーで逆転
手動で
正転 逆転 停止
これだけの動作です。パルスをカウントして、その分だけ
戻るようにすれば、停止も自動でできますが、ちょっと面倒
ですね。確か、ワンパルスで1.8度ぐらい回転しますので、
一回転には、360÷1.8=200パルス。
リードが2ミリとすると5cm動くのには、
200×50mm÷2=5000パルス往復では、
5000×2=10000パルス。
このくらいのパルス数なら、それほど苦労しなくてもカウント
できそうですが、まあ、この次の課題ですね。
ちなみに、unsigned int の整数だと
0 ~ 65535
カウントが可能ですので、Long型の整数を使わなくても
大丈夫のようです。ここまで細かいプログラムを組むと、
CNCになってしまうので、CNCにしてしまったほうが楽
でしょうね。