ホールエフェクトセンサー
ホールエフェクトセンサーは、磁場の存在を検出し、検出されたときに出力電圧を生成できます。ホールエフェクトセンサー、で使用する場合線形アクチュエーター、通常、アクチュエータのギアボックス内に磁気ディスクとともに配置されます。線形アクチュエータが拡張または撤回すると、このディスクがホール効果センサーを通過すると、センサーが電圧のパルスの形でデジタル出力を生成します。これらのパルスをカウントして使用して、アクチュエータがどこまで移動したかを判断することができます。
ホールエフェクトセンサーからの位置フィードバック
位置フィードバックにホールエフェクトセンサーを使用する欠点は、絶対位置を測定しないことです。代わりに、アクチュエーターがどこまで移動したかを決定するためにカウントできるパルスを生成します。位置フィードバックのためにこれらのパルスを利用するには、 マイクロコントローラー 生成されたパルスをカウントします。そのためには、マイクロコントローラーの外部割り込みピンを使用して、これらのパルスが発生したときにカウントする必要があります。外部割り込みは、電圧の変化を検出するピンです。この場合、ホール効果センサーからの電圧パルスを検出するために使用できます。マイクロコントローラーのデータシートを参照して、マイクロコントローラーのピンを割り込みピンとして使用できるようにする必要があります。を使用して Arduino uno たとえば、ピン2と3は外部割り込みに使用できます。適切な割り込みピンを選択したら、ホールエフェクトセンサーの出力のワイヤーをそのピンに接続し、入力電圧を5Vに接続し、グランドピンに接続できます。
以下のコードの例は、電圧パルスの立ち上がりエッジで割り込みがトリガーされるArduino IDEで割り込みをセットアップする方法を示しています。電圧変化の異なるポイントでトリガーされるように割り込みを設定し、マイクロコントローラーのデータシートを参照して、利用可能なオプションを決定する必要があります。割り込みをセットアップするために必要な最後の側面は、割り込みサービスルーチンを作成することです。これは、割り込みがトリガーされるたびにコードが実行される関数です。この機能は短く、ホールエフェクトセンサーからのパルスの数を数えるなどの簡単なタスクのみを実行します。以下のコード例の関数カウントステップ()は、ホール効果センサーからのパルスの数をカウントするために使用されます。
これらのパルスを利用して位置値を決定するには、線形アクチュエータの以前の位置と線形アクチュエータが移動している方向を知る必要があります。したがって、変数を設定して、コード内のアクチュエーターの方向を追跡するだけで、以前の位置からパルスを追加または減算するかどうかを判断するために使用できます。ポジションを更新したら、カウントされたパルスをゼロにリセットする必要があります。以下のコード例は、カウントされたパルスの数に基づいて位置を更新する関数を示しています。パルスの観点から位置があると、線形アクチュエータのインチごとのパルス仕様を使用してインチに変換できます。以下のコードサンプルでは、1インチあたりのパルス移動は3500です。
線形アクチュエータをホームします
ホールエフェクトセンサーからの位置フィードバックを正確に利用するには、線形アクチュエータの開始位置を常に知る必要があります。最初にシステムをオンにすると、マイクロコントローラーはアクチュエータが拡張されているかどうかを判断できません。これにより、線形アクチュエーターを既知の位置に在宅する必要があります。線形アクチュエータを家に帰るには、完全に格納されたような既知の位置に駆動する必要があります。あなたも利用することができます 外部制限スイッチ 既知の位置を完全に拡張または撤回する以外の場所に設定します。以下のArduinoコードを例として使用して、線形アクチュエーターを既知の位置に向けて駆動する耐久性のあるループを設定する必要があります。この場合、完全に格納されます。ホールエフェクトセンサーの割り込みがトリガーされないため、あなたが私たちの既知の位置にいることを知っています。この場合、ステップ変数が変更されているかどうかを確認して、割り込みがトリガーされたかどうかを判断します。また、割り込みがトリガーされることを期待するのに十分な時間が経過したことを確認する必要があります。これは、コードが開始されてからミリ秒単位で時間を出力するmillis()関数を使用し、それを以前のタイムスタンプと比較する必要があります。 。線形アクチュエーターが私たちのホーム位置にあると判断したら、アクチュエーターの運転を停止し、ステップ変数をリセットし、whileループを終了します。
誤ったトリガーを扱う
ホールエフェクトセンサーは、ポテンショメータほど電気ノイズに敏感ではありませんが、電気ノイズは出力信号に影響を与える可能性があります。スイッチバウンドは、誤ったパルスをカウントする可能性のあるホールエフェクトセンサーの問題でもあります。これは、マイクロコントローラーが線形アクチュエータが動いたと考えるまでの距離に影響します。 1インチあたりのパルスがあるため、いくつかの余分なパルスはポジショニングにあまり影響しませんが、時間が経つにつれて大きな問題になる可能性があります。内部タイマーを使用して誤ったトリガーを除外することにより、これらの問題に対処できます。新しいパルスが検出されると予想される頻度を判断できるため、ノイズによって割り込みがトリガーされたときに除外できます。以下のコードサンプルでは、Trig-Delayは各パルス間の時間遅延です。この遅延の前に割り込みがトリガーされた場合、パルスはカウントされません。
この遅延の時間はアプリケーションに基づいて異なりますが、短すぎるとノイズが適切に除外されず、長すぎると線形アクチュエータからの実際のパルスを見逃します。線形アクチュエータの速度もこの遅延に影響を与え、速度を調整する場合は、この変数が予想されるパルスの新しい周波数に調整するために変更する必要がある場合があります。各パルス間の正確な遅延を正確に決定するには、ロジックアナライザーを使用して、ホール効果センサーからの実際の信号を表示できます。これはほとんどのアプリケーションでは必要ありませんが、非常に正確なポジショニングが必要な場合は、正確な遅延を決定する必要があります。
虚偽のトリガーと戦う別の方法は、アクチュエーターが既知の位置に到達するたびに位置値を修正することです。線形アクチュエータをホーリングするように、線形アクチュエータを完全に格納または拡張した位置に駆動した場合、または使用する場合 外部制限スイッチ、アクチュエーターがどこまで移動したかを知っているでしょう。ホールエフェクトセンサーがあなたの既知の位置に到達するために送信するステップ数を知っているので、私たちがそれに到達するときに値を単純に修正することができます。以下のコードサンプルでは、これは完全に拡張された完全に格納された位置に対して行われます。アクチュエーターがそれらの位置の1つに達したら動かないため、アクチュエータを駆動しようとして位置値が変わらない場合、私たちは限界にあることがわかります。この方法は、特に手術中のある時点でアクチュエーターを完全に撤回または完全に拡張している場合、位置価値が正確に留まるようにするための実用的なソリューションを提供します。この方法は、上記の方法と組み合わせて使用できます。これにより、位置価値の精度を維持するのに役立ちます。
まとめ
位置フィードバックにホールエフェクトセンサーを使用すると、ポテンショメータからのフィードバックと比較して、はるかに大きな解像度が得られます。 1インチあたりのパルスが1インチあたりのパルスがある可能性があるため、ホール効果センサーは、線形アクチュエータの配置において精度と信頼性を提供します。また、ホール効果センサーは、ポテンショメータの変化する電圧よりもパルスカウントがより正確であるため、複数の線形アクチュエーターが同時に一緒に移動するようにするためのより大きな能力を提供します。私たちを活用します fa-sync-x アクチュエータコントローラーでは、負荷に関係なくアクチュエーターが一斉に移動することもできます。 DIYERSの場合、Arduinoを使用してアクチュエーターが一斉に移動する方法を確認できます ここ.
以下は、このブログで使用されている完全なサンプルコードで、14インチのストロークの長さを制御するために構築されました 弾丸シリーズ36 Cal。リニアアクチュエータ。線形アクチュエータは、aを使用して駆動されます モータードライバー、セットアップ方法を学ぶことができます ここ.
[1]モナリ、G。(2013年6月) 光学エンコーダーと磁気エンコーダーの解像度を理解します。から取得: https://www.electronicdesign.com/technologies/components/article/21798142/understanding-resolution-in-optical-and-magnetic-encoders