センサーは、どのプロジェクトでも常に重要なコンポーネントです。これらは、リアルタイムの環境データをデジタル/可変データに変換して、電子機器で処理できるようにするものです。市場にはさまざまな種類のセンサーがあり、要件に基づいてセンサーを選択できます。このプロジェクトでは、Arduinoでホールセンサー(別名ホール効果センサー)を使用する方法を学習します。このセンサーは、磁石と磁石の極を検出することができます。
なぜ磁石を検出するの です か?、 あなたは尋ねるかもしれません。ホール効果センサーを実際に使用するアプリケーションはたくさんありますが、私たちはそれらに気づかなかったかもしれません。このセンサーの一般的な用途の1つは、自転車や回転機械の速度を測定することです。このセンサーは、BLDCモーターでも使用され、ローターマグネットの位置を検知し、それに応じてステーターコイルをトリガーします。アプリケーションは無限大なので、ホール効果センサーArduinoをインターフェースして、武器庫に別のツールを追加する方法を学びましょう。ホールセンサーを使用したいくつかのプロジェクトは次のとおりです。
- ArduinoとAndroidアプリの処理を使用したDIYスピードメーター
- PICマイクロコントローラーを使用したデジタル速度計と走行距離計回路
- Arduinoと処理を使用したバーチャルリアリティ
- Arduinoを使用した磁場強度測定
このチュートリアルでは、Arduinoの割り込み機能を使用して、ホールセンサーの近くの磁石を検出し、LEDを点灯させます。ほとんどの場合、ホールセンサーは、高い読み取り速度と実行速度が要求されるアプリケーションのため、割り込みでのみ使用されます。したがって、チュートリアルでも割り込みを使用しましょう。
必要な材料:
- ホール効果センサー(任意のデジタルバージョン)
- Arduino(任意のバージョン)
- 10kオームと1Kオームの抵抗器
- 導いた
- 接続線
ホール効果センサー:
接続に飛び込む前に、ホール効果センサーについて知っておくべき重要なことがいくつかあります。実際には、2つの異なるタイプのホールセンサーがあります。1つ はデジタルホールセンサーで、もう1つはアナログホールセンサーです。デジタルホールセンサーは磁石の有無(0または1)のみを検出できますが、アナログホールセンサーの出力は磁石の周囲の磁場に基づいて変化します。つまり、磁石の強度や距離を検出できます。このプロジェクトでは、最も一般的に使用されているデジタルホールセンサーのみを対象としています。
名前が示すように、ホール効果センサーは「ホール効果」の原理で動作します。この法則によれば、「一方向に電流が流れる導体または半導体が磁場に垂直に導入された場合、電圧は電流経路に対して直角に測定できます」。この技術を使用して、ホールセンサーはその周りの磁石の存在を検出することができます。理論的には十分ですが、ハードウェアについて見ていきましょう。
回路図と説明:
ホールセンサーをArduinoに接続するための完全な回路図を以下に示します。
ご覧のとおり、ホール効果センサーのarduino回路図は非常に単純です。しかし、私たちがよく間違えるのは、ホールセンサーのピン番号を把握することです。読み取り値を手前に置き、左側の最初のピンはVcc、次にGroundとSignalです。
前述のように割り込みを使用するため、ホールセンサーの出力ピンはArduinoのピン2に接続されます。ピンはLEDに接続されており、磁石が検出されると点灯します。ブレッドボードで接続しただけですが、完了すると以下のようになります。
ホール効果センサーArduinoコード:
完全なArduinoのコードは わずか数行であり、それは直接あなたのArduinoボードにアップロードすることができ、このページの下部に見つけることができます。プログラムがどのように機能するかを知りたい場合は、さらに読んでください。
センサーである入力とLEDである出力が1つずつあります。センサーは割り込み入力として接続する必要があります。したがって、 セットアップ 関数内で、これらのピンを初期化し、ピン2を割り込みとして機能させることもできます。ここで、ピン2は Hall_sensor と呼ばれ、ピン3は LED と呼ばれます。
void setup(){pinMode(LED、OUTPUT); // LEDは出力ピンですpinMode(Hall_sensor、INPUT_PULLUP); //ホールセンサーは入力ピンですattachInterrupt(digitalPinToInterrupt(Hall_sensor)、toggle、CHANGE); //ピン2は、トグル関数を呼び出す割り込みピンです}
存在する場合、割り込みが検出上の行で述べたように、トグル機能が呼び出されます。 Toggle 、 Change、Rise、Fall などの多くの割り込みパラメータがありますが、このチュートリアルでは、ホールセンサーからの出力の変化を検出しています。
トグル 関数内で、「 state 」と呼ばれる変数を使用します。この変数は、状態がすでに1の場合は0に、すでにゼロの場合は1に変更されます。このようにして、LEDをオンまたはオフにすることができます。
void token(){state =!state; }
最後に、 ループ 関数内で、LEDを制御する必要があります。可変状態は磁石が検出されるたびに変更されるため、LEDをオンまたはオフのままにするかどうかを決定するために使用します。
void loop(){digitalWrite(LED、状態); }
Arduinoホール効果センサーの動作:
ハードウェアとコードの準備ができたら、コードをArduinoにアップロードするだけです。私は9Vバッテリーを使用してセットアップ全体に電力を供給しましたが、任意の電源を使用できます。次に、磁石をセンサーに近づけると、LEDが点灯し、取り外すと消灯します。
注:ホールセンサーは極に敏感です。つまり、センサーの片側は北極のみまたは南極のみを検出でき、両方は検出できません。したがって、南極を北の検出面に近づけると、LEDは点灯しません。
内部で実際に起こることは、磁石をセンサーに近づけると、センサーの状態が変化することです。この変化は、変数「状態」を0から1に変更するトグル関数を呼び出す割り込みピンによって検出されます。したがって、LEDがオンになります。ここで、磁石をセンサーから遠ざけると、センサーの出力が再び変化します。この変更は、割り込みステートメントによって再び認識されるため、変数「状態」が1から0に変更されます。したがって、LEDがオフになっている場合。磁石をセンサーに近づけるたびに同じことが繰り返されます。
プロジェクトの完全な作業ビデオは以下にあります。あなたがプロジェクトを理解し、何か新しいものを作るのを楽しんだことを願っています。それ以外の場合は、以下のコメントセクションまたはフォーラムを使用してください。