近くの磁場を検出できるデバイス、または水などからの保護が必要な用途向けの非接触スイッチとして使用できるデバイスをお探しかもしれません。 その場合、使用できます ハル効果センサーその中で、Arduino を使用した将来のプロジェクトに統合するために知っておくべきことをすべて示します。 実はネオジム磁石と併用すると応用範囲が広がります。
ご覧のとおり、このタイプのデバイスの接続は非常に簡単です。 また、電子部品ですので、 とても安い 多くの専門店やインターネットで簡単に見つけることができます。 さらに詳しく知りたい場合は、読み続けてください…
ホール効果
その名前は、最初の発見者であるアメリカの物理学者エドウィン・ハーバート・ホールに由来しています。 彼 ホール効果 磁場が循環する導体の内部で電荷の分離により電場が現れる物理現象です。 この電場 (ホール場) は、電荷の移動に対して垂直な成分と、印加される磁場の垂直成分を持ちます。 このようにして、とりわけ、磁場の存在を検出することができる。
つまり、導体や半導体に電流が流れ、近くに磁場があると、 磁力 材料内でそれらを再グループ化する電荷キャリア。 つまり、電荷キャリアは偏向し、導体/半導体の片側に集まります。 ご想像のとおり、これによりこの導体/半導体に電位の変化が生じ、磁場に垂直な電場が生成されます。
ホール効果センサーとは何ですか?
したがって、ホール効果がどのように機能するかを理解したら、コンポーネントや ホール効果センサー 彼らはこの現象を実用化に利用することができます。 たとえば、これらを使用して磁場の測定を行うことができます。
これらのアイテムは広く使用されています 多くの電子プロジェクト そして頻繁に使用するデバイス。 たとえば、車両では、エンジンのカムシャフトの位置を測定したり、流体速度を測定したり、金属を検出したりするために、一部のセキュリティ システムにこれらの機能が組み込まれています。
このタイプのホール効果センサーの良い点は、他のものとは異なります。 彼らは連絡を必要としません。 つまり、これらのタスクをリモートで実行できるだけでなく、電子ノイズや埃などの影響をまったく受けないため、非常に耐久性があり、測定の信頼性が高くなります。 ただし、生成されたフィールドを拾うためには生成されたフィールドから一定の距離にいる必要があるため、範囲は限られています。
種類
ホール効果センサー内には次のものがあります。 2つの基本的なタイプ:
- アナログ: これらは、捕捉している磁場の強度に比例した信号を送信するピンまたは出力を備えた、非常に基本的なデバイスです。 つまり、次のようなものです。 温度センサー, 電圧に、このブログで詳しく説明したその他のセンサー。
- デジタル: デジタルの場合、アナログよりもはるかに基本的です。 これらは磁場に比例した出力を提供するものではなく、磁場がある場合には高い電圧値を与え、磁場がない場合には低い電圧値を与えるためです。 つまり、単に磁場の存在を検出するために、アナログのように磁場の測定に使用することはできません。 さらに、これらのデジタルはさらに XNUMX つのサブカテゴリーに分類できます。
- ラッチ: このタイプのラッチは、極に近づくとアクティブになり、反対の極に近づくまで出力に値を維持します。
- スイッチ: これらの他のスイッチでは、出力は維持されず、ポールが取り外されると非アクティブになります。 出力を変えるために反対極を近づける必要はありません...
使用することをお勧めします ネオジム磁石、 これらのホール効果センサーがうまく機能するには最適です。
アナログタイプのセンサーをお探しなら、良い選択肢は次のとおりです ホールセンサー49E。 これを使用すると、磁場の存在を検出したり、測定したりできます。 たとえば、近くの磁場を測定したり、磁石を使用して回転数や速度を測定するタコメーターを作成したり、磁石でドアの開閉を検出したりすることができます。 このセンサーは数セントでいくつかの店で見つけることができますが、Arduino で使用できるモジュールに必要なものすべてを備えた PCB に取り付けたい場合は、もう少し高くなります。
- 製品が見つかりません。
- 製品が見つかりません。
さらに、 お探しのものがデジタルタイプの場合それなら買えます ホールセンサー A3144、これもスイッチタイプです。つまり、ポールを変更する必要はありません。 このようにして、金属物の存在や磁場の有無を検出したり、前の場合と同様に RPM カウンターを作成したりすることができます。 これも見つけやすく、個別でもモジュールとしても前のものと同じかそれ以上に安価です。
- 製品が見つかりません。
- ホール効果 A003 を備えた KY-3144 モジュールを購入する
アナログの場合は、次のことを行う必要があります。 データシートを参照してください 購入したモデルの。 に たとえば、49E では 磁場の測定方法を示すグラフが表示され、検出された磁束の密度 (mT) を計算するために Arduino ソース コードに実装する必要がある式を作成するのに役立ちます。 49E の場合、磁気範囲と出力で供給できる電圧により、B=53.33V-133.3 になります...
デジタルとアナログの共通点は、 搭載されているピンの数 (ピン配列)どちらの場合も 3 です。ホール センサーの面を自分に向けて、つまり刻印のある面を自分に向けて置くと、左側のピンが 1、中央のピンが 2 になります。右側のものは 3 になります。
- 1: 49E と A3144 の両方に 5V 電源ピンがあります。
- 2: 中央ユニットはどちらの場合も GND またはアースに接続されます。
- 3: どちらの場合も、それは出力、つまり磁界を測定または検出し、磁界を通じて電圧を生成するものです。 デジタルでは高か低の XNUMX つの値のみを取るのに対し、アナログでは前述の式を適用してフィールドがどのように検出されるかを知ることができることに注意してください。
ホール効果センサーとArduinoの統合
説明したピン配置で、このホール効果センサーがどのように機能するか、またこのホール効果センサーについて知っておくべきことを理解したら、次の方法をすでに知っているはずです。 Arduino ボードに接続する。 この場合、次のように接続します。
- デジタルとアナログの両方の場合に、信号を供給できるように、ピン 1 を Arduino の 5V 電圧出力に接続する必要があることはすでにご存知でしょう。
- 中央のピンまたは 2 は、Arduino ボードの GND またはグランドに接続する必要があります。
- ピン 3 の場合、アナログかデジタルかによって異なります。
- アナログ: ホール センサーのピン 3 を Arduino ボード上のアナログ入力の XNUMX つに直接接続します。
- デジタル: 回路が A1 で正しく動作するには、ピン 3 と 10 をプルアップ抵抗 (たとえば 3144K) でブリッジする必要があります。 他のモデルでは異なる抵抗値が必要になる可能性があります。それを考慮したら、ピン 3 を Arduino ボードのデジタル入力に接続できます。
接続したプレートの入力の番号は重要ではありません。後で正しく作成するために番号を覚えておいてください。 プロジェクトを機能させるためのソースコード。 この場合、アナログとデジタルのどちらを選択したかによっても違いが生じます。
- の簡単なコードは、 アナログ 次のとおりです。
const int pinHall = A0; void setup() { pinMode(pinHall, INPUT); Serial.begin(9600); } void loop() { //Filtro para ruido con 10 medidas long measure = 0; for(int i = 0; i < 10; i++){ int value = measure += analogRead(pinHall); } measure /= 10; //Calcular el voltaje en mV que da la salida del sensor Hall float outputV = measure * 5000.0 / 1023; Serial.print("Voltaje de salida = "); Serial.print(outputV); Serial.print(" mV "); //Interpolación a densidad del campo magnético (fórmula) float magneticFlux = outputV * 53.33 - 133.3; Serial.print("La densidad del flujo magnético del campo es = "); Serial.print(magneticFlux); Serial.print(" mT"); delay(2000); }
- の簡単なコードは、 デジタル だろう:
const int HALLPin = 2; const int LEDPin = 13; //El pin 13 en el esquema de nuestro ejemplo no pinta nada, pero se podría agregar un LED a dicho pin para que se encienda si detecta campo magnetico void setup() { pinMode(LEDPin, OUTPUT); pinMode(HALLPin, INPUT); } void loop() { if(digitalRead(HALLPin)==HIGH) { digitalWrite(LEDPin, HIGH); } else { digitalWrite(LEDPin, LOW); } }
このガイドがお役に立てば幸いです...