|
大家好,欢迎来到今天的教程。在本篇文章中,我们将介绍如何在Arduino开发板上使用霍尔效应传感器。
霍尔效应传感器(Hall Effect Sensor)是一种根据是否存在磁场来改变其输出的传感器。这意味着霍尔效应传感器产生的输出信号是其周围磁场密度的函数。当其周围的磁通密度超过某个预设阈值时,传感器将对其进行检测并生成输出电压(有时称为霍尔电压),以指示磁场的存在。
霍尔传感器由于其多功能性而变得非常流行,并且被用于许多不同的应用中。霍尔效应传感器的流行应用之一是在汽车系统中,用于检测位置、测量距离和速度。它们还用于智能手机和计算机等现代设备中,还用于不同类型的开关中,其中存在磁场用于激活或禁用电路。霍尔传感器根据特定传感器产生模拟或数字输出。无论哪种类型,它们通常采用3个引脚封装,其中一个引脚代表信号,另外两个引脚为传感器供电。这使得与任何微控制器的连接变得容易。
在今天的文章中,我们将通过将霍尔效应传感器和LED灯连接到Arduino开发板的方式来演示霍尔传感器的工作原理。 我们将对Arduino的工作方式设定为,当将磁铁靠近霍尔效应传感器时,LED点亮,而当移除磁铁时,LED熄灭。
所需的组件 构建此项目需要以下组件: ● 霍尔效应传感器 ● Arduino Uno开发板 ● 面包板 ● 发光二极管 ● 连接导线 ● 磁铁
原理图 该项目的示意图很简单,因为我们要做的就是将霍尔传感器的三个引脚和一个LED连接到Arduino。如下图所示连接组件。
霍尔传感器与Arudino开发板的引脚连接如下: 霍尔传感器引脚 | Arudino引脚 | VCC | 5V | GND | GND | SIG | D2 |
LED可以直接插入到Arduino,其正极连接到Arduino的引脚13,而另一端无需串联电阻就可以直接接地,因为Arduino在引脚13上连接了内部电阻。完成原理图后,我们可以继续进行该项目的代码。
代码 该项目的代码非常简单,如前所述,我们要做的就是检查是否检测到磁场,如果是,则点亮LED,如果没有,我们熄灭LED。
在此项目的代码中,我们要做的第一件事是声明将霍尔传感器和LED连接到的Arduino的引脚,然后创建一个变量state,该变量将存储霍尔传感器的值。 - //////////////////////////////////////////////
- // HALL EFFECT SENSOR DEMO //
- // Author: Nick Koumaris //
- // http://www.educ8s.tv //
- /////////////////////////////////////////////
- int hallSensorPin = 2;
- int ledPin = 13;
- int state = 0;
复制代码
接下来,我们编写void setup()函数,在此我们声明LED和霍尔传感器连接到的Arduino引脚的引脚模式。 - void setup() {
- pinMode(ledPin, OUTPUT);
- pinMode(hallSensorPin, INPUT);
- }
复制代码
接下来是void loop()函数,这里的任务与我们要使用按钮来控制Arduino之间的LED灯相同。我们读取霍尔传感器的输出并将其存储在名为state的变量中。当值为LOW时,我们将点亮LED;当值为HIGH时,我们将熄灭LED。霍尔传感器的配置可能有所不同,因为当检测到磁场时,传感器可能会输出高电平。这需要在传感器的数据表中得到确认。
- void loop(){
-
- state = digitalRead(hallSensorPin);
- if (state == LOW) {
- digitalWrite(ledPin, HIGH);
- }
- else {
- digitalWrite(ledPin, LOW);
- }
- }
复制代码
该项目的完整代码如下所示; - //////////////////////////////////////////////
- // HALL EFFECT SENSOR DEMO //
- // //
- // http://www.educ8s.tv //
- /////////////////////////////////////////////
- int hallSensorPin = 2;
- int ledPin = 13;
- int state = 0;
- void setup() {
- pinMode(ledPin, OUTPUT);
- pinMode(hallSensorPin, INPUT);
- }
- void loop(){
-
- state = digitalRead(hallSensorPin);
- if (state == LOW) {
- digitalWrite(ledPin, HIGH);
- }
- else {
- digitalWrite(ledPin, LOW);
- }
- }
复制代码
效果演示 复制代码并上传到您的Arduino开发板。 如下图所示,当磁铁靠近时,您应该会看到LED开关。
以上就是本文的所有内容,感谢您的关注,如果您对本文有任何疑问,请随时在本文下进行回复, 我很乐意为您提供帮助。
|