风筝
发表于: 2019-3-20 15:15:35 | 显示全部楼层

霍尔传感器的工作原理是基于1869年Edwin Hall提出的霍尔效应。提出的声明说:“霍尔效应是在电导体上产生电压差(霍尔电压),横向于导体中的电流和垂直于电流的外加磁场。“


那么,什么可以是最简单的声明形式,以更好的方式理解它?在本本中,将通过实际示例逐步说明。霍尔传感器将与Atmega16微控制器连接,一个LED将用于显示磁铁将被带到霍尔传感器附近时的效果。

Circuit-Hardware-for-Interfacing-Hall-Sensor-with-AVR-Microcontroller-ATmega16.jpg


什么是霍尔效应?

霍尔效应与磁场中的移动电荷有关。要以实用的方式理解,请将电池连接到导体,如下图(a)所示。电流(i)将开始从导体流过电池的正极到负极。

Hall-Effect.png

电子流(e-)将与电流的方向相反,即从电池的负极端子通过导体到电池的正极端子。在我们测量导体之间的电压的时刻,如下面的图像(b)所示,那么电压将为零,即电位差将为零。

Hall-Sensor-Effect-without-Magnet.png

现在带磁铁并在导体之间产生磁场,如下图(c)所示。

Hall-Sensor-Effect-with-Magnet.png

在这种情况下,当在导体上测量电压时,将产生一些电压。这种产生的电压称为“霍尔电压”,这种现象称为“霍尔效应”。


我们使用霍尔传感器和许多微控制器来构建有趣的应用,如速度表、门警、虚拟现实等。


需要的组件

●    A3144霍尔传感器

●    Atmega16微控制器

●    16Mhz晶体振荡器

●    按钮

●    跳线

●    面包板

●    USBASP v2.0


电路原理图

Circuit-Diagram-for-Interfacing-Hall-Sensor-with-AVR-Microcontroller-ATmega16.png


编程Atmega16用于霍尔传感器

Atmega16使用USBASP和Atmel Studio7.0进行编程。本文末尾处给出了完整的程序代码,只需使用JTAG编程器和Atmel Studio 7.0在Atmega16上传程序。


编程Atmega16很简单,只使用两个PORT引脚。一个PORT引脚将用于从霍尔传感器获取读数。其他PORT引脚将用于连接一个LED。首先,在程序中包含所有必需的库。


定义霍尔传感器读数的输入引脚。

  1. #define hallIn PA0
复制代码

这里的霍尔传感器连接在Atmega16的PORTA0上,初始化该引脚,用于读取状态。

  1. DDRA=0xFE;
  2. PINA=0x01;
复制代码

如果磁铁位于传感器附近,则打开LED或关闭LED。检测基于PORT引脚的状态变化。

  1.   if(bit_is_clear(PINA,hallIn)){      
  2.              PORTA=0b00000010;                  
  3.                }

  4.         else{
  5.              PORTA=0b00000000;               
  6.         }
复制代码

霍尔传感器的应用

霍尔传感器广泛用于需要测量磁场强度或检测磁体极点的地方。除此之外,还有很多应用程序可以找到。下面列出了一些应用程序:

●    作为移动电话中的接近传感器

●    汽车中的换档机构

●    旋转霍尔效应传感器

●    检查管道和管道等材料

●    转速检测


代码

本文使用的完整代码如下: main.rar (400 Bytes, 下载次数: 0)

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 32 | 回复: 41



手机版|

GMT+8, 2024-4-26 21:04 , Processed in 0.044878 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表