霍尔传感器根据埃德温·霍尔(Edwin Hall)在1869年提出的霍尔效应原理进行工作。提议的陈述说: “霍尔效应是与导体中的电流成横向的电导体两端的电压差(霍尔电压)以及垂直于电流的外加磁场。”
那么,以更好的方式理解它的最简单的语句形式是什么?在本教程中,将通过实际示例逐步进行说明。在这里,霍尔传感器将与Atmega16微控制器连接,一个磁铁将用于显示将磁体带到霍尔传感器附近时的效果。
什么是霍尔效应?
霍尔效应与磁场中的移动电荷有关。要以实用的方式理解,请将电池连接到导体,如下图(a)所示。电流(i)将开始从电池的正极流向负极。
电子的(E流- )将在从通过导体与电池的正极端子的电池负端子的电流即相反的方向。此时,当我们如下图(b)所示测量导体之间的电压时,电压将为零,即电位差将为零。
现在带上磁铁,并在导体之间产生磁场,如下图(c)所示。
在这种情况下,当测量导体两端的电压时,就会产生一些电压。这种产生的电压称为“霍尔电压”,而这种现象称为“霍尔效应”。
我们已经将霍尔传感器与许多微控制器一起使用来构建有趣的应用,例如速度计,门警报,虚拟现实等,所有链接都可以在下面找到:
- 使用霍尔传感器的电磁门报警电路
- 使用Arduino和Processing Android App的DIY车速表
- 使用Arduino和处理的虚拟现实
- 使用PIC单片机的数字车速表和里程表电路
所需组件
- A3144霍尔传感器IC
- Atmega16单片机IC
- 16Mhz晶体振荡器
- 两个100nF电容器
- 两个22pF电容器
- 按钮
- 跳线
- 面包板
- USBASP v2.0
- LED(任何颜色)
电路原理图
为霍尔传感器编程Atmega16
此处,Atmega16使用USBASP和Atmel Studio7.0进行编程。如果您不知道如何使用USBASP编程Atmega16,请访问链接。 在项目的最后给出了完整的程序, 只需使用JTAG程序员和Atmel Studio 7.0在Atmega16中上载程序即可,如先前教程中所述。
对Atmega16进行编程将很容易,并且将仅使用两个PORT引脚。一个PORT引脚将用于获取霍尔传感器的读数。其他PORT引脚将用于连接一个LED。首先,在程序中包含所有必需的库。
定义用于霍尔传感器读数的输入引脚。
#define hall在PA0
此处,霍尔传感器连接在Atmega16的PORTA0处,并且初始化为读取状态。
DDRA = 0xFE; PINA = 0x01;
如果磁铁在传感器附近,则打开LED或关闭LED。该检测基于PORT引脚的状态变化。
if(bit_is_clear(PINA,hallIn)){ PORTA = 0b00000010; } else { PORTA = 0b00000000; }
霍尔传感器的应用
霍尔传感器广泛用于需要测量磁场强度或检测磁体磁极的地方。除此之外,通常还可以找到很多应用程序。下面列出了一些应用程序:
- 作为手机中的接近传感器
- 机动车变速机构
- 旋转霍尔效应传感器
- 检查管道等材料
- 转速检测
要了解有关霍尔传感器的更多信息,请浏览我们以前基于霍尔传感器的教程。