Arduino 霍尔模块
霍尔开关
首先科普一下,当一块通有电流的金属或半导体薄片垂直地放在磁场中时,薄片的两端就会产生电位差,这种现象就称为霍尔效应。霍尔开关则是利用霍尔效应的一种传感器,它可以很方便的把磁信号转换成电信号,具有很高的可靠性和灵敏度。
模块产品具体数据:
霍尔传感器模块
用于磁场检测
传感器使用M44开关型霍尔传感器:
模块有2个输出:
1、AO,霍尔实时输出
2、DO,霍尔信号经过比较器调整之后输出
模块特点:
1、尺寸小,36mm X 16mm
2、有3mm的安装螺丝孔
3、可以使用3-5.5v直流电源供电
4、有霍尔实时输出信号
5、有通过比较器整理之后更加稳定的输出信号
6、比较器输出能力16mA
7、有电源指示灯
8、比较器输出有指示灯
有两个输出
Digital 输出
Analog 输出
先做一个关于数字输出的简单测试代码用来测试霍尔模块的数字端口TTL情况。
用的是以前做声控的测试代码,这里一样用。不用太在意变量名称。
把模块的D口接入arduino Pin2上。
打开串口监视器看效果:
int sensorVoice = 2;
void setup()
{
pinMode(sensorVoice, INPUT);
Serial.begin(9600);
}
void loop()
{
int temp = digitalRead(sensorVoice);
Serial.println(temp);
delay(200);
}
输出0,代表我将霍尔元件靠近磁铁。
说明磁铁靠近霍尔模块。
当没有靠近霍尔模块的时候,默认输出的是1
用的是一个在收音机上拆下来的喇叭。
用喇叭口(S极)靠近霍尔元件,使上图输出0,
拿开则输出1.
下面复习一下基本知识:
电流与磁场的右手定则。大拇指指向N极。
使用的 是动圈式扬声器。没有通电,就是利用其里面的一个永久磁铁
图为:
扬声器的工作原理:根据右手定则,可以判断环路里面电流和磁场的关系,又根据原本永久磁铁的磁极。在电流方向与大小不同的情况下,可以是锥形纸盆达到下陷,上凸,并且根据电流的大小决定其运动的幅度。
这里,我并没有使用通电的扬声器,仅仅是使用其内部的永久磁铁罢了。所以其永久磁铁的极性为喇叭口为S,喇叭尾为N。
当我把喇叭口靠近霍尔元件的时候,霍尔元件(在相应的磁场S极下)出现一个电位差,想单片机传输一个0 的TTL低电平,表示有磁场接触。
下面我们将使用:
analog模拟信号,测试霍尔元件能感应的磁场强度。
将模拟口链接到Analog Pin A0 上
拿着霍尔模块,不同距离靠近喇叭口(S极):
void setup()
{
Serial.begin(9600);
}
void loop()
{
int temp = analogRead(A0);
Serial.println(temp);
delay(200);
}
得到的数据:
通过图片看到,有0,1,1022,1023这几个数。
当霍尔元件靠近S极的时候,就变成0,1 最近的时候变成0.
离开就变成1023,1022
没有一个具体的磁场取值范围。灵敏度大让人失望。
这个analog 模拟口还不如直接用TTL省事了。呵呵~
刻度不够精确。
6.5元的模块。成本也就3块不到的样子。
凑合着用吧。
如果需要高精度的,那要花大价钱了。