使用Arduino开发板连接干簧管(Reed Switch)的方法

在现实生活中,干簧管(Reed Switch)有许多重要的应用,如磁性门开关、笔记本电脑、智能手机等。在本篇文章中,我们将了解一些干簧管的知识,并介绍如何使用Arduino开发板连接干簧管。

 

干簧管(Reed Switch)

干簧管,又称磁力开关或磁簧开关,基本上是一个电气开关,当磁场靠近时它会动作。W. B. Ellwood于1936年在贝尔实验室发明。它是由在真空下保持在玻璃管内的两个小金属片组成。在典型的干簧管中,两个金属片将由铁磁材料制成,并覆盖有铑或钌金属,以使它们具有长寿命。当开关周围存在磁场时,将会激活开关。

 

两个金属片的玻璃外壳可以保护它们免受灰尘和其他颗粒的侵蚀。干簧管可以在任何环境中运行,例如存在易燃气体的环境或会影响开关触点的腐蚀环境。

 

干簧管有两种常见的类型:

1.  常开型干簧管

2.  常闭型干簧管

在常开型干簧管中,开关在没有磁场的情况下断开,并且在有磁场的情况下短接。在存在磁场的情况下,玻璃管内的两个金属触点彼此吸引以进行接触。

在常闭型干簧管中,开关在没有磁场的情况下短接,并且在有磁场的情况下断开。

 

干簧管常见的应用

●    用于电话交换机

●    在笔记本电脑中,如果合上盖子,屏幕就会处于睡眠状态

●    用于防盗报警系统中的门窗传感器

 

需要的组件

●    Arduino Uno开发板

●    干簧管

●    电阻

●    LED指示灯

●    磁铁

●    连接导线

 

Arduino连接干簧管的电路图

 

 使用Arduino连接干簧管(Reed Switch)的工作过程

Arduino Uno开发板是一款基于ATmega328p微控制器的开源电路板。它有14个数字引脚(其中6个引脚可用作PWM输出)、6个模拟输入以及板载稳压器等。Arduino Uno具有32KB闪存、2KB SRAM和1KB EEPROM。它的工作频率为16MHz。 Arduino Uno支持串行、I2C、SPI通信,可用于与其他设备通信。下表显示了Arduino Uno的技术规格。

微控制器
ATMEGA328P
工作电压
5V
输入电压
7-12V(推荐)
数字I / O引脚
14
模拟引脚
6
闪存
32KB
SRAM
2KB
EEPROM
1KB
时钟频率
16MHz

 

要将干簧管与Arduino进行连接,我们需要使用一个分压电路,如下图所示。开关断开时Vo为+ 5V,开关短接时为Vo。在本篇文章中,我们使用的是常开型干簧管。开关在存在磁场的情况下短接,并且在没有磁场的情况下闭合。

 

 

 

 

代码说明

本篇文章使用的完整代码将在末尾处给出。

在代码中,我们必须先定义Reed开关和LED连接到Arduino的引脚。干簧管连接到Arduino的数字引脚4,LED通过限流电阻连接到Arduino的数字引脚7。变量“reed_status”用于保存干簧的状态。

  1. int LED = 7;
  2. int reed_switch = 4;
  3. int reed_status;
复制代码

 

setup()函数中,我们需要设置LED和干簧管连接的引脚状态。引脚4设置为输入,引脚7设置为输出。

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

 

接下来,我们需要读取干簧管开关的状态。如果等于1,则开关断开,LED指示灯熄灭。如果它等于0,则开关短接,我们需要点亮LED灯。每秒重复一次这个过程。代码如下所示:

  1. void loop()
  2. {
  3.   reed_status = digitalRead(reed_switch);
  4.   if (reed_status == 1)
  5.     digitalWrite(LED, LOW);
  6.   else
  7.     digitalWrite(LED, HIGH);
  8.   delay(1000);
  9. }
复制代码

 

以上就是使用Aduino开发板连接干簧管(Reed Switch)的方法。是不是很容易实现?如果您在使用过程中遇到问题,欢迎在本贴下面进行回复。

 

更多内容请参考以下链接:https://www.yiboard.com/thread-888-1-1.html

posted @ 2018-08-02 09:32  子鱼_  阅读(798)  评论(0编辑  收藏  举报