当前位置:网站首页>【霍尔效应传感器模块与 Arduino】
【霍尔效应传感器模块与 Arduino】
2022-08-02 03:28:00 【WENJIE科技】
霍尔效应传感器模块与 Arduino
前言
霍尔效应传感器或霍尔传感器是一种磁性非接触式传感器,可产生与施加在其上的磁场成比例的电信号。霍尔效应传感器广泛用于电流感应、位置检测和非接触式开关等工业应用。它们基本上就像一个小的簧片开关,当周围有磁场时,输出电压会根据磁通量而变化。霍尔效应传感器用于 BLDC 应用,因为它们坚固、准确且故障率低。
本教程将了解我们如何将霍尔效应传感器与 Arduino 连接。我们将要使用的模块可以在模拟模式或数字输出模式下运行。我们将监控模块的输出,并据此更改 Arduino 板载 LED 状态。
霍尔效应传感器引脚
霍尔效应传感器模块有 4 个引脚 VCC、GND、DO 和 AO。我们既可以将 AO 引脚用作模拟读数的输出,也可以将 DO 引脚用作数字读数的输出。霍尔效应传感器的引脚排列如下:
VCC ==》是霍尔效应传感器的电源引脚,我们连接到 Arduino 上的 5V 引脚。
GND==》 是模块的接地引脚,它应该连接到 Arduino 的接地引脚。
DO==》 是板子的数字输出引脚,输出低表示传感器附近没有磁场,高表示传感器附近有磁场。
AO==》是电路板的模拟输出引脚,它将直接从 49E 传感器为我们提供模拟读数。
霍尔效应传感器模块如何工作?
霍尔效应传感器根据霍尔效应原理工作。这些传感器由一块薄的矩形 p 型半导体材料组成,如砷化镓、砷化铟、硅等。这种 p 型半导体材料称为霍尔元件。允许连续电流流过霍尔元件。当器件放置在磁场中时,磁通线会在半导体材料上施加一个力,使载流子、电子和空穴偏转到半导体的任一侧。电荷载流子的这种运动是它们穿过半导体材料时所经历的磁力的结果。当这些电子和空穴向侧面移动时,由于这些电荷载流子的积累,在半导体材料的两侧之间会产生电位差。然后,电子通过半导体材料的运动会受到与其成直角的外部磁场的影响,这种影响在扁平矩形材料中更大。利用磁场产生可测量电压的效应称为霍尔效应。
没有磁场时,模拟输出约为 VCC 的 50%。任何磁场都会导致该值增加或减少,具体取决于磁铁的南极或北极是否靠近传感器。磁铁的南极将导致模拟输出线性地向 VCC 倾斜。如果引入北极,电压将线性下降至最小值 0.86V。电压变化量取决于磁场强度。
数字输出为高电平有效。这取自围绕著名的LM393 比较器芯片构建的比较器电路。当没有磁场时,DO 脚为低电平,由于状态 LED 位于输出和 VCC 之间,LED 将亮起。当引入磁场时,DO 引脚变为高电平,状态 LED 熄灭。
霍尔效应传感器的类型
霍尔效应传感器的主要分类是根据输出信号类型——模拟输出霍尔效应传感器和数字输出霍尔效应传感器。
模拟输出霍尔效应传感器模拟输出霍尔效应传感器包含一个电压调节器、一个霍尔元件和一个差分放大器。这种类型的传感器提供与磁场强度成比例的模拟输出。如果在没有磁场的情况下测量霍尔电压,则输出电压将为零。但是如果霍尔元件的每个输出端的电压是相对于地测量的,就会出现一个非零电压,并且这个电压在每个输出端都是相同的。该电压称为共模电压。差分放大器用于消除这种共模电压。 49E 是这些类型的传感器的一个示例。
数字输出霍尔效应传感器
通过在差分放大器的输出端添加施密特触发器,可以将模拟输出霍尔效应传感器转换为数字输出传感器。施密特触发器将差分放大器的输出与预设值进行比较。当放大器输出超过预设值时,施密特触发器开启。同样,当放大器输出低于预设值时,施密特触发器关闭。因此,这种类型的传感器只有两个输出状态高或低。A3144 就是这类传感器的一个例子。
数字输出传感器分为两类,根据传感器是否可以同时检测南和北民意调查 - 单极和双极霍尔效应传感器。
单极霍尔效应传感器
这种类型的传感器只能检测南极磁场。WSH130NL 和 A3144 是此类传感器的一些示例。
双极霍尔效应传感器
这种类型的传感器可以检测南北磁场并提供数字输出。输出可以通过南极打开(低电平有效),并且可以通过北极关闭 WSH130 是此类传感器的一个示例。
霍尔效应传感器模块组成
该模块包含一个模拟霍尔效应传感器。霍尔效应传感器检测磁场的存在,通常用于测量旋转组件的 RPM,其中组件上的磁铁在组件旋转时交替地与传感器建立和断开磁接触。在某些情况下,它们甚至可以用来检测流过导体的电流。如前所述,该模块由霍尔传感器本身和高精度比较器电路组成。模拟输出直接取自霍尔传感器输出,该输出还连接到旁路电容和上拉电阻。比较器电路是围绕著名的LM393双比较器芯片构建的。它用于将来自霍尔传感器的模拟信号数字化。微调电位器用于调整灵敏度。
关于霍尔效应传感器的常见问题
霍尔效应传感器的输入电压是多少?
霍尔效应传感器模块可由 3.3V 和 5V 输入电源供电。这使我们更容易将它与标准 Arduino 板等普通 5V 开发板以及 ESP8266 或 ESP32 等 3.3V 微控制器一起使用。
如何测试霍尔效应传感器模块?
测试这个模块非常简单。将输入电源连接到 VCC 和 GND。调整微调电位器,直到状态/DO LED 刚刚打开,传感器附近没有任何磁性材料。然后只需在传感器附近放置一块磁铁,如果磁铁靠近传感器时 LED 熄灭,则模块工作正常。
这些霍尔效应传感器的范围是多少?
霍尔效应传感器的范围非常小,只有几毫米。但确切的范围将取决于您使用的磁铁。磁铁越强大,传感器就越灵敏。
霍尔效应传感器感知什么?
霍尔效应传感器检测磁场的存在和大小。霍尔传感器的输出电压与磁场强度成正比。
霍尔效应传感器模块的电路图
霍尔效应传感器模块的电路图如下所示。电路本身非常简单,只需要几个组件。
在原理图中,模拟输出直接取自霍尔效应传感器。数字输出经过LM393比较器处理。电源 LED 直接连接到 VCC,一接通电源就会亮起。如果没有信号,状态 LED 将亮起,当数字输出引脚有信号时,状态 LED 将关闭。微调电位器用于设置灵敏度,即数字输出应为高的点。
Arduino 霍尔效应传感器 - 连接图
现在让我们将模块连接到 Arduino 并进行测试。为此,请按如下所示进行连接。连接非常简单。我们可以使用霍尔效应传感器模块的数字或模拟输出。这里我们使用了数字输出。将 VCC 连接到 Arduino 的 5V 引脚,将 GND 连接到 GND。接下来,将 DO 引脚连接到 Arduino 的 D2 引脚。
Arduino 代码
Arduino 霍尔效应传感器代码非常简单易懂。我们将监控连接到霍尔效应传感器模块的 DO 引脚的 D2 引脚,我们将相对于它切换板载 LED 的状态,即,如果传感器输出为高,则传感器检测到磁场,LED 会亮起,当没有磁场时,LED 会亮,当它为 LOW 时,LED 会关闭。需要注意的是,模块上的状态指示灯是反相的,即无磁场时亮,有磁场时灭。
我们通过声明两个全局变量来保存传感器和 LED 所连接的引脚值来开始我们的代码。板载 LED 连接到 D13 引脚,所以我们将使用它。
int HallSensor = 2; // Hall sensor is connected to the D2 pin
int LED = 13; // onboard LED pin
在setup()函数中,我们将引脚初始化为输出或输入。传感器连接的引脚被初始化为输入。LED 引脚被初始化为输出。
void setup() {
pinMode(HallSensor, INPUT); // Hall Effect Sensor pin INPUT
pinMode(LED, OUTPUT); // LED Pin Output
}
接下来在循环中,我们将使用digitalRead函数检查传感器状态。引脚 D2 的状态被读取并存储在变量sensorStatus中。如果传感器输出为 HIGH,则表示传感器附近有磁场。为了表明这一点,我们将打开板载 LED。如果传感器输出为低,则表示不存在磁场。为了表明这一点,我们将关闭板载 LED。
霍尔效应传感器模块的工作
这是显示霍尔效应传感器模块运行情况的 GIF。
完整代码
int HallSensor = 2; // Hall sensor is connected to the D2 pin
int LED = 13; // onboard LED pin
void setup()
{
pinMode(HallSensor, INPUT); // Hall Effect Sensor pin INPUT
pinMode(LED, OUTPUT); // LED Pin Output
}
void loop()
{
int sensorStatus = digitalRead(HallSensor); // Check the sensor status
if (sensorStatus == 1) // Check if the pin high or not
{
// if the pin is high turn on the onboard Led
digitalWrite(LED, HIGH); // LED on
}
else {
//else turn off the onboard LED
digitalWrite(LED, LOW); // LED off
}
}
边栏推荐
- MVC,MVP和MVVM架构解析
- 【opencv】error: (-215:Assertion failed) ssize.empty() in function ‘cv::resize‘报错原因
- Dart-Flutter DateTime日期转换
- 关于我的数学建模~
- 分布式消息队列平滑迁移技术实战
- 研发过程中的文档管理与工具
- 成本会计的概念、产品成本核算的要求、产品成本核算的对象与成本项目、产品成本的归集和分配(可能考判断)、产品成本计算方法 (三种:产品的品种(品种法),批次(分批法),步骤(分步法))
- 哈工大2021机器学习期末考试题
- OpenCore 黑苹果安装教程
- Visual Studio2022创建setup项目
猜你喜欢
连接本地MySql时出现2003-Can‘t connect to MySql server on ‘localhost‘(10061)
ontop-vkg 学习1
账务处理程序、记账凭证账务处理程序、汇总记账凭证账务处理程序、科目汇总表账务处理程序、会计信息化概述、信息化环境下会计账务处理的基本要求(此章出1道小题)
研发过程中的文档管理与工具
OpenCore 黑苹果安装教程
Vision Transformer(ViT)论文精读和Pytorch实现代码解析
Larave 自定义公共函数以及引入使用
关于我的数学建模~
最简单的FRP内网穿透教程
[Hello World教程] 使用HBuilder和Uni-app 生成一个简单的微信小程序DEMO
随机推荐
机器学习预备知识
centos8 安装搭建php环境
Solve the problem that the 5+APP real machine test cannot access the background (same local area network)
Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset I3D论文精读
关于我的专利、软著~
Vision Transformer(ViT)论文精读和Pytorch实现代码解析
SATA M2 SSD 无法安装系统的解决方法
【一句话攻略】彻底理解JS中的回调(Callback)函数
一文理解分布式开发中的服务治理
Go Build报错汇总(持续更新)
Transformer结构解析及常见问题
加密数字货币前传:从大卫·乔姆到中本聪
C# 注释语法
Binder机制详解(一)
BSN:Boundary-Sensitive Network for Temporal Action Proposal Generation论文阅读笔记
(不重点考)试算平衡的分类
Glide使用及原理分析
研发过程中的文档管理与工具
Dart-Flutter DateTime日期转换
View与ViewGroup