光学センサー
使用する場合、光学センサー 線形アクチュエーター、機能します ホールエフェクトセンサー、磁場の代わりに光を検出することを除いて[1]。光学センサーは、エンコーダーディスクを通過するLEDまたは他の光源からの光を使用して動作します。このエンコーダーディスクは、ライトが定期的に通過できるようにスロットされています。ディスクの反対側には、光検出器があり、ディスク内のスロットを通過して出力信号を作成すると光が検出されます[1]。アクチュエータが移動すると、エンコーダーディスクが回転し、光が電圧パルスの正方形の波を生成する光検出器によって検出されます。これらのパルスは、ホール効果センサーのパルスと同様に使用して、アクチュエーターがどこまで移動したかを判断できます。
光学センサーからの位置フィードバック
光学センサーは、出力の観点からホール効果センサーに非常によく似ているため、このブログ投稿では、ポジションフィードバックのために出力を読み取る方法について簡単に説明します。詳細をお探しの場合は、ホールエフェクトセンサーからの位置フィードバックを読む方法についての投稿をご覧ください。
ホールエフェクトセンサーと同様に、光学センサーには3つのピンがあります。 1つは入力電圧、もう1つはグランド、最後に出力信号です。位置フィードバックのために出力信号でパルスを利用するには、 マイクロコントローラー 生成されたパルスをカウントします。マイクロコントローラーの外部割り込みピンを使用して、これらのパルスを正確にカウントする必要があります。電圧の変化によって外部割り込みがトリガーされると、それらを使用して、発生時に各パルスを検出できます。マイクロコントローラーのコードで割り込みをセットアップしたら、パルスが発生したときにカウントされる割り込みサービスルーチンをセットアップする必要があります。以下のコード例の関数カウントステップ()は、光学センサーからのパルスの数をカウントするために使用されます。
これらのパルスを利用して位置値を決定するには、線形アクチュエータの以前の位置と線形アクチュエータが移動している方向を知る必要があります。コード内のアクチュエータの方向を追跡します。この変数を使用して、前の位置からパルスを追加または減算する必要があるかどうかを判断できます。ポジションを更新したら、カウントされたパルスをゼロにリセットする必要があります。以下のコード例は、カウントされたパルスの数に基づいて位置を更新する関数を示しています。パルスの観点から位置があると、線形アクチュエータのインチごとのパルス仕様を使用してインチに変換できます。
線形アクチュエータをホームします
光学センサーからの位置フィードバックを正確に利用するには、線形アクチュエータの開始位置を常に知る必要があります。最初にシステムをオンにすると、マイクロコントローラーはアクチュエータが拡張されているかどうかを判断できません。これには、線形アクチュエータを既知の位置に在宅する必要があります。あなたの家に帰る リニアアクチュエータ、完全に格納されたように、既知の位置に運転する必要があります。以下のArduinoコードを例として使用すると、線形アクチュエーターを既知の位置に向けて駆動する時間ループを設定しました。この例では、ステップ変数が変更されたかどうかを確認することにより、割り込みがトリガーされたかどうかを確認することにより、既知の位置にいることがわかります。また、割り込みがトリガーされることを期待するのに十分な時間が経過したことを確認する必要があります。これは、Millis()関数を利用して、それを以前のタイムスタンプと比較する必要があります。線形アクチュエーターが私たちのホーム位置にあると判断したら、アクチュエーターの運転を停止し、ステップ変数をリセットし、whileループを終了します。
誤ったトリガーを扱う
光学センサーはポテンショメータほど電気ノイズに敏感ではありませんが、電気ノイズとスイッチバウンスは依然として出力信号に影響を与える可能性があり、カウントされる偽のパルスをトリガーする可能性があります。いくつかの余分なパルスはポジショニングにあまり影響しませんが、時間が経つにつれて大きな問題になる可能性があります。内部タイマーを使用して誤ったトリガーを除外することにより、これらの問題に対処できます。新しいパルスが検出されると予想される頻度を判断できるため、ノイズによって割り込みがトリガーされたときに除外できます。以下のコードサンプルでは、Trigdelayは各パルス間の時間遅延です。この遅延の前に割り込みがトリガーされた場合、パルスはカウントされません。この遅延の長さはアプリケーションに基づいて異なりますが、短すぎるとノイズが適切に除外されず、長すぎると光学センサーからの実際のパルスを見逃します。
虚偽のトリガーと戦う別の方法は、アクチュエーターが既知の位置に到達するたびに位置値を修正することです。線形アクチュエーターをホーリングするように、線形アクチュエーターを完全に格納または伸ばした位置に駆動した場合、または外部リミットスイッチを使用した場合、その位置に到達するために必要なパルスの数がわかります。その後、その既知の位置に達したときに、その値を使用して位置値を単純に修正できます。以下のコードサンプルでは、これは完全に拡張された完全に格納された位置に対して行われます。この方法は、位置価値が正確であることを保証するための実用的なソリューションを提供します。
まとめ
位置フィードバックに使用される光学センサーは、ホール効果センサーやポテンショメータと比較して、より大きな精度と解像度を提供し、ホール効果センサーと同様の強度と欠点を持ちます。それらは絶対位置を測定せず、位置値を提供するために既知の開始位置を必要としますが、多数のインチあたりのパルスは、位置決めと複数の線形アクチュエータが同時に移動することを確実にすることで信頼性を可能にします。私たちを活用します fa-sync-x アクチュエータコントローラーまたは 追加のコードを介して、荷物に関係なく、アクチュエーターが一斉に動くことを確認することもできます。
完全なコードの例については、私たちのブログをチェックしてください ホールエフェクトセンサーからの位置フィードバックの読み方 同様に似ています。パルスあたりのパルスやパルス間の時間遅延などの値は、そのコードを使用して光学センサーを正確に利用するために必要な変更の一部です。
[1] Paschotta、R。 光学センサーに関する記事。 から取得:https://www.rp-photonics.com/optical_sensors.html