首先科普一下,当一块通有电流的金属或半导体薄片垂直地放在磁场中时,薄片的两端就会产生电位差,这种现象就称为霍尔效应。霍尔开关则是利用霍尔效应的一种传感器,它可以很方便的把磁信号转换成电信号,具有很高的可靠性和灵敏度。
在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相应引脚读出来的值为低。另外这里介绍的霍尔开关模块属于单极性霍尔元件,所以只对磁铁的南极或者北极有响应,实验的时候如果发现不响应的话可以试着换磁铁的另一极使用噢;-)