ホールセンサーの種類と使い方
どもです。
今回のエントリは、表題にある「ホールセンサー」についてです。
1.「ホールセンサー」って何?
ホールセンサーとは、
「ホール効果を利用して『磁石が発する磁界』や『電流が発する磁界』を電気信号に変換して出力する、非接触型の磁気センサー」
だそうです。
この文章から理解できる内容としては、
「磁石や電流が流れる電線が近づいたりしたことに反応するセンサー」
です。
ざっくりな説明ではありますが、そんな感じの理解で書き進めていこうと思います。
(正しい理解か否かについては、まぁ、イロイロあるとおもいますが…)
2.「ホールセンサー」の種類について
ホールセンサーにも、いくつか種類(タイプ)があります。
ここでは、簡単にですが、それらについて説明します。
2.1.ラッチタイプ
これは、近づく磁石の極の違いにより、出力が変化するセンサーです。
また、このタイプのセンサーは磁石が離れても、出力は変化しません。
センサーの出力を元に戻すためには、逆の極を近づける必要があります。
2.2.スイッチタイプ
このスイッチタイプには、「単極検出(ユニポーラ)」と「両極検出(オムニポーラ)」の2種類があります。
この漢字から読み取れる通り、これらは「SまたはN極のいずれかで出力が変化する」タイプと、「S/N極の両方で変化する」タイプです。
さらにこのタイプのセンサーは、磁石を離すと出力は元に戻ります。
2.3.アナログタイプ
先に書いた「ラッチタイプ」/「スイッチタイプ」の出力は、HIGH/LOW(ただし、1か0かではないです)の間で変化します。
しかし「アナログタイプ」では、磁石とセンサーの距離に従って直線的に出力が変化するタイプです。
これまで書いてきたホールセンサーの種類については、ココで図/グラフを用いて説明されています。
3.使ってみよう
さて。
実際にホールセンサーを使ってみます。
まず、ホールセンサーのピンですが、下記のようになっています。
回路を組む際にピンの接続を間違えると、期待する波形が得られないので注意が必要です。
以下のように、回路を組みます。
ココで、ホールセンサと抵抗が並列で接続されています。
ホールセンサーは、磁石(正確には磁界)の変化によって、抵抗値が変化します。
そのため、何かの折に抵抗値が小さくなった際に、回路が直結されることを回避するため(と、理解しています)です。
次に、Arduinoに下記のスケッチを書き込みます。
#include "Arduino.h"
int digitalInputPin = 7;
/**
* @brief Setup function.
*/
void setup()
{
pinMode(7, INPUT);
Serial.begin(9600);
}
/**
* @brief Main loop called periodically.
*/
void loop()
{
int voltage = analogRead(A0);
Serial.print("voltage = ");
Serial.println(voltage);
}
実行したら、センサーに対して磁石を近づけます。
その結果、センサーからの出力が変化します。
今回の磁石の近づけ方、およびその結果のグラフを下記に示します。
※今回購入したセンサーは「スイッチタイプ/ユニポーラ」、使用した磁石は「ネオジウム」でした。
そのため、磁石の表裏をひっくり返した場合には、出力値は変化しません。
このように、磁石を近づける/遠ざけることで、センサーの出力値がはっきり変化することがわかります。
4.少し遊んでみた
先に示したグラフは、ホールセンサーに対してゆっくりホールセンサーを近づけたり離したりした場合の結果です。
今度は、磁石を短い時間で近づけたり離したりした場合に、どのように波形が変化するか調べてみました。
で、結果がコレです。
見ての通り、短時間の変化でも、きちんと検出されていることが分かります。
5.まとめ
以上、今回はホールセンサの種類、仕組について書きました。
また、このセンサーを用いた磁石が近づいた/遠のいたことの検知の方法、及び精度(人間の手で実現できるレベルですが…)調べてみた結果についても下記ました。
今後は、このセンサーを用いて、もう少し、実際に利用できそうなモノを作っていく予定/計画です。
ではっ!
ディスカッション
コメント一覧
まだ、コメントがありません