【物联网技术与应用】实验16:模拟霍尔传感器实验
实验16 模拟霍尔传感器实验
【实验介绍】
基于霍尔效应,霍尔传感器是响应于磁场而改变其输出电压的传感器。霍尔传感器用于接近开关,定位,速度检测和电流检测应用。
霍尔传感器可以分为模拟霍尔传感器和开关霍尔传感器由电压调节器,霍尔元件,差分放大器,施密特触发器和输出端子组成,输出布尔值(0/1),模拟霍尔传感器由霍尔元件线性放大器和射极跟随器组成,输出模拟值。如果在模拟霍尔传感器上增加比较器就可以组成数字开关霍尔传感器和模拟霍尔传感器一体,它可以输出模拟值和数字信号。
【实验组件】
● Arduino Uno主板* 1
● USB数据线*1
● 模拟数字霍尔传感器模块* 1
● 面包板*1
● 磁铁*1
● 9V方型电池*1
● 跳线若干
【实验原理】
霍尔效应是一种电磁效应。它在1879年由Edwin Hal发现,当时他正在研究有关金属的传导机制。当导体通过均匀的磁场时可以看到效果。载流子的自然电子漂移导致磁场对这些载流子施加洛伦兹力(施加在电磁场中带电粒子上的力)。结果就是所谓的电荷分离,在底部或顶部积聚了正电荷或负电荷。
霍尔传感器是基于它的磁场传感器。
通过导体传输的电流会产生随电流变化的磁场,霍尔传感器可用于测量电流而不中断电路。通常,传感器与围绕待测导体的绕线芯或永磁体集成。
在这个实验中,当传感器接近磁体时,引脚A0的值将改变。当该值超过电位器设定的阈值之前,D0将输出低电平,相应的LED亮起。
模拟霍尔传感器模块的原理图
【实验内容】
第一步:建立电路
第二步:程序
第三步:编译
第四步:将程序上传至Arduino Uno板
代码如下:
//Analog Hall Sensor//using an LM393 Low Power Low Offset Voltage Dual Comparator/*******************************\* Analog Hall Sensor Uno R3\* A0 A0\* D0 7\* VCC 5V\* GND GND*******************************/const int ledPin = 13;//the led attach to pin13int sensorPin = A0; // select the input pin for the potentiometerint digitalPin=7; //D0 attach to pin7int sensorValue = 0;// variable to store the value coming from A0boolean digitalValue=0;// variable to store the value coming from pin7void setup() {pinMode(digitalPin,INPUT);//set the state of D0 as INPUTpinMode(ledPin,OUTPUT);//set the state of pin13 as OUTPUTSerial.begin(9600); // initialize serial communications at 9600 bps}void loop() { sensorValue = analogRead(sensorPin); //read the value of A0digitalValue=digitalRead(digitalPin); //read the value of D0Serial.print("Sensor Value "); // print label to serial monitor Serial.println(sensorValue); //print the value of A0Serial.print("Digital Value "); // print label to serial monitor Serial.println(digitalValue); //print the value of D0 in the serialif( digitalValue==HIGH )//if the value of D0 is HIGH{digitalWrite(ledPin,LOW);//turn off the led}if( digitalValue==LOW)//else{digitalWrite(ledPin,HIGH);//turn on the led}delay(1000);//delay 200ms}
【实验结果】
现在将磁铁靠近霍尔传感器。D0的电压从高到低变化,然后传感器上的LED和接到Arduino Uno的引脚13的LED亮起,如图所示:
【实验体会】
通过本次实验,我对模拟霍尔传感器的工作原理以及数字输出的应用有了更清晰的认识。
实验中,我们采用了LM393低功耗低偏移电压双比较器与Arduino Uno主板。把模拟霍尔传感器的输出引脚连接到Arduino Uno主板的A0引脚,数字输出引脚连接到7号引脚,以此实现对LED的控制。
在程序方面,首先读取A0引脚的模拟值并存储在sensorValue变量中,接着读取D0引脚的数字值存于digitalValue变量中,随后将这两个变量的值打印到串口监视器上,这样就能观察传感器数值和数字输出状态。
之后,利用条件语句判断digitalValue的值。当digitalValue为高电平时,将ledPin设为低电平以关闭LED;若digitalValue为低电平,则把ledPin设为高电平来打开LED。
通过这个实验,我更加深入地理解了模拟霍尔传感器和数字输出的应用。并且,我还学会了运用Arduino Uno主板控制其他组件的方法。此实验对我的学习和实践应用具有很大的助力。