2019年4月17日水曜日

CNC3020 主軸の回転数

event_note4月 17, 2019 editBy sbin forumNo comments

前々から回転速度は気になっていたのですが。中々手つかずでした。

先生のページの様にPWMでコントロールして、Gコードに速度を埋め込むのも手ですが、MACH3から変えた場合影響が出そうなので、単純に計ることにしました。センサーは GP2A200LCS と言う秋月で売っているシャープの反射型赤外線センサーをつけて Arduino で読んでみました。最初は、パルスから次のパルスの時間を割り込み処理して計っておりました。



ところがI2C 16x2 のLCD も秋月で買ってきて付けたら正確に表示できません。

表示は、結構めんどくさいサンプルがついていて表示できました。そして簡単に使えるI2CRequiredCrystal を頂いてきて更に簡単に表示できるようになります。

そうシリアル表示と同じように lcd.print() が使えます。誤算だったのは I2C でこれを使う場合は割り込みが使われています。割り込み中に割り込みが掛かって表示が狂います。

そこで計測は割り込みで差分を取る方法を諦めて、パルス関数で計りました。ローとハイの時間を計って 1/T  してあげます。60を結果で割ると回転数になります。

中々正確に計れます。10ns 以上あれば結構正確に計れるようです。念のためデジタルオシロでパルス幅を計り換算すると表示結果と一致するので良しとしましょう。

ここまで来るのに別 なところで嵌りました。1回転に一回パルスが出れば問題ありませんが、2、3回出ていました(笑)。これではだめですね。スピンドルの冷却フィンを使って計るのですが、余計な所でも反射してます。最終的には養生テープを貼り付けて1回のパルスにしました。以外と簡単な方法で済みました。

もう何十年も半田付けなんてご無沙汰しておりましたが、楽しいもんですね。一応一通り作業ができる環境は整った気がします。


これで CNC3020 はかなり良くなりました。このケースのように殆どは 3D プリンタで済んでしまうので、活躍の機会は基板の切削が中心となりそうです。今回MACH3をWindows10へ移行できたこととUSBカメラによる原点合わせが簡単になった意義は非常に大きいです。

そして原点センサーも1ポートに集約できてすっきりしました。

これからも、Arduino は活躍する予感がします。今回は使わなかったのですが、Visual Micro と言うVisualStudio のプラグインを知りました。これを使うと普段のようにArduino のC++ であってもインテリセンスが使えるようになると言うことです。そしてオンラインデバッグも可能らしいので、そのうち試そうかと思います。



0 comments:

コメントを投稿