首先科普一下,当一块通有电流的金属或半导体薄片垂直地放在磁场中时,薄片的两端就会产生电位差,这种现象就称为霍尔效应。霍尔开关则是利用霍尔效应的一种传感器,它可以很方便的把磁信号转换成电信号,具有很高的可靠性和灵敏度。

在Arduino上使用霍尔开关比较简单,电路连接上只需要用专用的传感器连接线,将霍尔开关与传感器扩展板上的相应端口连接起来就可以了:

编程的话使用最简单的数字输入函数digitalRead()进行读取就可以了:
int ledPin = 13;
int switchPin = 19;
int value = 0;
void setup() {
pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
value = digitalRead(switchPin);
if (HIGH == value) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
使用的时候当霍尔开关靠近磁铁的时候,从Arduino相应引脚读出来的值为高,而当霍尔开关远离磁铁的时候,从Arduino相应引脚读出来的值为低。另外这里介绍的霍尔开关模块属于单极性霍尔元件,所以只对磁铁的南极或者北极有响应,实验的时候如果发现不响应的话可以试着换磁铁的另一极使用噢;-)

我要赚赏金
