风筝
发表于: 2020-10-15 21:35:53 | 显示全部楼层

大家好,欢迎来到今天的教程。在本篇文章中,我们将介绍如何在Arduino开发板上使用霍尔效应传感器。


霍尔效应传感器(Hall Effect Sensor)是一种根据是否存在磁场来改变其输出的传感器。这意味着霍尔效应传感器产生的输出信号是其周围磁场密度的函数。当其周围的磁通密度超过某个预设阈值时,传感器将对其进行检测并生成输出电压(有时称为霍尔电压),以指示磁场的存在。

hall-effect.jpg


霍尔传感器由于其多功能性而变得非常流行,并且被用于许多不同的应用中。霍尔效应传感器的流行应用之一是在汽车系统中,用于检测位置、测量距离和速度。它们还用于智能手机和计算机等现代设备中,还用于不同类型的开关中,其中存在磁场用于激活或禁用电路。霍尔传感器根据特定传感器产生模拟或数字输出。无论哪种类型,它们通常采用3个引脚封装,其中一个引脚代表信号,另外两个引脚为传感器供电。这使得与任何微控制器的连接变得容易。


在今天的文章中,我们将通过将霍尔效应传感器和LED灯连接到Arduino开发板的方式来演示霍尔传感器的工作原理。 我们将对Arduino的工作方式设定为,当将磁铁靠近霍尔效应传感器时,LED点亮,而当移除磁铁时,LED熄灭。


所需的组件

构建此项目需要以下组件:

●    霍尔效应传感器

●    Arduino Uno开发板

●    面包板

●    发光二极管

●    连接导线

●    磁铁


原理图

该项目的示意图很简单,因为我们要做的就是将霍尔传感器的三个引脚和一个LED连接到Arduino。如下图所示连接组件。

hall-sketch.png


霍尔传感器与Arudino开发板的引脚连接如下:

霍尔传感器引脚
Arudino引脚
VCC
5V
GND
GND
SIG
D2

LED可以直接插入到Arduino,其正极连接到Arduino的引脚13,而另一端无需串联电阻就可以直接接地,因为Arduino在引脚13上连接了内部电阻。完成原理图后,我们可以继续进行该项目的代码。


代码

该项目的代码非常简单,如前所述,我们要做的就是检查是否检测到磁场,如果是,则点亮LED,如果没有,我们熄灭LED。


在此项目的代码中,我们要做的第一件事是声明将霍尔传感器和LED连接到的Arduino的引脚,然后创建一个变量state,该变量将存储霍尔传感器的值。

  1.    //////////////////////////////////////////////
  2.   //        HALL EFFECT SENSOR DEMO           //
  3. //          Author: Nick Koumaris           //
  4. //           http://www.educ8s.tv           //
  5. /////////////////////////////////////////////

  6. int hallSensorPin = 2;     
  7. int ledPin =  13;   
  8. int state = 0;
复制代码

接下来,我们编写void setup()函数,在此我们声明LED和霍尔传感器连接到的Arduino引脚的引脚模式。

  1. void setup() {
  2.   pinMode(ledPin, OUTPUT);      
  3.   pinMode(hallSensorPin, INPUT);     
  4. }
复制代码

接下来是void loop()函数,这里的任务与我们要使用按钮来控制Arduino之间的LED灯相同。我们读取霍尔传感器的输出并将其存储在名为state的变量中。当值为LOW时,我们将点亮LED;当值为HIGH时,我们将熄灭LED。霍尔传感器的配置可能有所不同,因为当检测到磁场时,传感器可能会输出高电平。这需要在传感器的数据表中得到确认。

  1. void loop(){
  2.   
  3.   state = digitalRead(hallSensorPin);

  4.   if (state == LOW) {        
  5.     digitalWrite(ledPin, HIGH);  
  6.   }
  7.   else {
  8.     digitalWrite(ledPin, LOW);
  9.   }
  10. }
复制代码

该项目的完整代码如下所示;

  1. //////////////////////////////////////////////
  2.   //        HALL EFFECT SENSOR DEMO           //
  3. //                                          //
  4. //           http://www.educ8s.tv           //
  5. /////////////////////////////////////////////

  6. int hallSensorPin = 2;     
  7. int ledPin =  13;   
  8. int state = 0;         

  9. void setup() {
  10.   pinMode(ledPin, OUTPUT);      
  11.   pinMode(hallSensorPin, INPUT);     
  12. }

  13. void loop(){
  14.   
  15.   state = digitalRead(hallSensorPin);

  16.   if (state == LOW) {        
  17.     digitalWrite(ledPin, HIGH);  
  18.   }
  19.   else {
  20.     digitalWrite(ledPin, LOW);
  21.   }
  22. }
复制代码

效果演示

复制代码并上传到您的Arduino开发板。 如下图所示,当磁铁靠近时,您应该会看到LED开关。

demo.jpg


以上就是本文的所有内容,感谢您的关注,如果您对本文有任何疑问,请随时在本文下进行回复, 我很乐意为您提供帮助。


跳转到指定楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 714 | 回复: 1501



手机版|

GMT+8, 2024-12-22 10:43 , Processed in 0.058451 second(s), 9 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

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

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