0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Arduino开发板连接干簧管(Reed Switch)

jf_78858299 来源:一板网电子技术论坛 作者:一板网电子技术论 2023-01-21 16:46 次阅读

如果您见过笔记本电脑或翻盖式的手机,可能就已经注意到,当打开和关闭这些设备时,它会相应地自动的点亮和熄灭屏幕。但它怎么知道?如果您认为转轴上安装了某种开关来检测这种打开和关闭动作,那么您是对的!

这些设备使用一种廉价且非常可靠的传感器,称为干簧管(磁簧开关,Reed Switch),当磁铁靠近时它会导通或关断。

干簧管用于各种创意应用,如开门传感器、风速计(确定风速)等。它们非常适合任何需要非接触式控制的项目。因此,让我们仔细看看它们是什么以及它们是如何工作的!

干簧管概述

常见的干簧管包含一对由铁磁材料制成的金属簧片(这种材料很容易被磁化,但离开磁场时会失去磁性)。簧片触点的表面镀有耐磨金属,例如铑、钌、钯或铱,以延长其开关数百万次时的使用寿命。

簧片被密封在管状玻璃外壳内,以保持它们没有灰尘和污垢。干簧管的密封性使其适用于易爆环境,在这些环境中,传统开关的小火花会构成危险。玻璃管充满惰性气体,通常是氮气,或真空,以防止触点氧化。

1672994458(1).png

通常,触点由镍铁合金制成,这些材料易于磁化(具有高磁导率)但不会长时间保持这种状态(具有低磁保持性)。作为一种机械设备,它们需要一些时间来响应磁场的变化 - 换句话说,与电子开关相比,它们的开关速度较低(通常为0.6ms开启时间,0.2 ms关闭时间)。

在存在磁场的情况下,两个触点都会移动,它们会形成一个平坦、平行的相互接触区域。这有助于增加簧片开关的寿命和可靠性。

干簧管只检测磁场的存在,不测量其强度。如果您对测量强度感兴趣,可以考虑使用模拟霍尔效应传感器。

干簧管如何工作?

了解干簧管如何工作的关键是要认识到它们既是磁路的一部分,也是电气电路的一部分 - 磁力和电流一样流经它们。

当您将磁铁靠近簧片开关时,整个开关将成为包括磁铁在内的“磁路”的一部分(图像中的虚线表示磁场的一部分)。

1672994528(1).png

干簧管的两个触点变成相反的磁极,这就是它们吸引并卡在一起的原因。靠近磁铁的哪一端并不重要:触点仍然以相反的方式极化并相互吸引。

当你把磁铁拿走时,触点分离并返回到原来的位置。

像这样的干簧管是常开的。这意味着通常当开关不受磁场影响时,开关打开且不导电。当磁铁足够靠近以激活开关时,触点闭合并且电流流过。

在这些插图中,触点的移动在很大程度上被夸大了。真正的干簧管的触点仅相距几微米(大约比人的头发细十倍)。所以这些动作是肉眼看不到的。

将干簧管连接到Arduino开发板

为我们的示例设置的电路尽可能简单。首先弯曲开关的两个引脚,使其垂直远离开关主体,使它们形成“U”形。

将干簧管插入面包板。然后使用跳线将开关的一端连接到地,另一端连接到Arduino的D2引脚。

如果以这种方式连接开关,则需要激活Arduino的内置输入引脚上拉电阻。否则,您必须在电路中使用外部10K上拉电阻。以下是示例电路:

!1672994616(1).png

Arduino代码 - 读取干簧管数据

这是一个基于上述电路的非常基本的Arduino草图,当您将磁铁靠近开关时,它将点亮内置LED(连接到引脚13),当您将其移开时熄灭。

const int REED_PIN = 2;        // Pin connected to reed switch
const int LED_PIN = 13;        // LED pin


void setup() {
        Serial.begin(9600);
        pinMode(REED_PIN, INPUT_PULLUP);        // Enable internal pull-up for the reed switch
        pinMode(LED_PIN, OUTPUT);
}


void loop() {
        int proximity = digitalRead(REED_PIN); // Read the state of the switch

        // If the pin reads low, the switch is closed.
        if (proximity == LOW) {
                Serial.println("Switch closed");
                digitalWrite(LED_PIN, HIGH);        // Turn the LED on
        }
        else {
                Serial.println("Switch opened");
                digitalWrite(LED_PIN, LOW);                // Turn the LED off
        }
}

上传草图后,抓住磁铁,把它靠近开关。当磁铁到达干簧管1厘米的距离时,它应该触发。

1672994652(1).png

代码说明

该代码比较通俗易懂。首先定义了两个常量,它们声明了干簧管和内置LED连接到的Arduino引脚。

const int REED_PIN = 2;
const int LED_PIN = 13;

在setup()函数中,干簧管引脚配置为输入,而LED引脚配置为输出。干簧管引脚启用了内部上拉电阻。

void setup() {
        Serial.begin(9600);
        pinMode(REED_PIN, INPUT_PULLUP);
        pinMode(LED_PIN, OUTPUT);
}

在loop()函数中,如果读取到干簧管引脚为低电平,则点亮内置的LED灯,否则熄灭。

void loop() {
        int proximity = digitalRead(REED_PIN);


        if (proximity == LOW) {
                Serial.println("Switch closed");
                digitalWrite(LED_PIN, HIGH);
        }
        else {
                Serial.println("Switch opened");
                digitalWrite(LED_PIN, LOW);
        }
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 磁场
    +关注

    关注

    3

    文章

    873

    浏览量

    24206
  • 干簧管
    +关注

    关注

    3

    文章

    80

    浏览量

    28085
  • Arduin
    +关注

    关注

    0

    文章

    8

    浏览量

    6114
收藏 人收藏

    评论

    相关推荐

    如何使用Arduino开发板连接干簧管

    干簧管,又称磁力开关或磁簧开关,基本上是一个电气开关,当磁场靠近时它会动作。W. B. Ellwood于1936年在贝尔实验室发明。
    的头像 发表于 10-20 14:22 3121次阅读

    如何设置Arduino IDE、连接开发板以及上传第一个草图

    我们曾介绍了Arduino Uno以及基于该平台的可编程开发板和扩展板系列。但是如果没有软件,硬件将没有任何作用。本指南将向您展示如何设置Arduino IDE、连接您的
    的头像 发表于 02-22 16:41 5750次阅读
    如何设置<b class='flag-5'>Arduino</b> IDE、<b class='flag-5'>连接</b><b class='flag-5'>开发板</b>以及上传第一个草图

    请问Arduino开发板如何连接倾斜传感器?

    请问Arduino开发板如何连接倾斜传感器?
    发表于 10-28 08:54

    干簧管(Reed Switch) 的历史概要

    干簧管(Reed Switch) 的历史概要
    发表于 11-30 11:57 33次下载

    Arduino Uno开发板原理图和PCB文件(贴片版)

    Arduino Uno开发板原理图和PCB文件(贴片版),自己动手的好机会
    发表于 04-26 17:59 0次下载

    Arduino开发板的Leonardo针脚图免费下载

    本文档的主要内容详细介绍的是Arduino开发板的Leonardo针脚图免费下载。
    发表于 01-07 08:00 9次下载

    Arduino的各种常用开发板

    Arduino开发板大全,来看看你玩过哪些? 昨天认识了Arduino,今天来看看Arduino的各种常用开发板。 它有各种型号的,如
    的头像 发表于 03-24 09:28 2.5w次阅读

    配置esp8266开发板Arduino开发环境

    1.esp8266开发板硬件:基于esp8266的nodemuc开发板 需要microUSB连接线。ESP8266-NodeMCU是一个开源硬件开发板,由于它支持WIFI功能,所以在物
    发表于 12-08 14:51 33次下载
    配置esp8266<b class='flag-5'>开发板</b>的<b class='flag-5'>Arduino</b><b class='flag-5'>开发</b>环境

    Arduino 下初试 stm32开发板

    Arduino 下初试 stm32开发板1.实验环境1.野火STM32指南者(STM32F103VET6)2.Arduino IDE 1.8.13(下载链接)3.STM32 Flash loader
    发表于 12-20 19:48 18次下载
    <b class='flag-5'>Arduino</b> 下初试 stm32<b class='flag-5'>开发板</b>

    工业应用的STM32 Arduino开发板Portenta H7

      新开发板为熟悉 Arduino 生态系统并希望体验工业解决方案的用户搭建了良好的桥梁。作为 Arduino 开发板意味着 Portenta H7 使用同样受创客和爱好者欢迎的工具和
    的头像 发表于 05-13 09:19 2986次阅读

    PLEX Arduino UNO引导加载程序开发板

    电子发烧友网站提供《PLEX Arduino UNO引导加载程序开发板.zip》资料免费下载
    发表于 07-26 14:35 0次下载
    PLEX <b class='flag-5'>Arduino</b> UNO引导加载程序<b class='flag-5'>开发板</b>

    arduino和其他开发板的面包开源项目

    电子发烧友网站提供《arduino和其他开发板的面包开源项目.zip》资料免费下载
    发表于 08-01 09:26 3次下载
    <b class='flag-5'>arduino</b>和其他<b class='flag-5'>开发板</b>的面包<b class='flag-5'>板</b>开源项目

    使用Arduino开发板构建室内花园

    电子发烧友网站提供《使用Arduino开发板构建室内花园.zip》资料免费下载
    发表于 10-19 09:38 0次下载
    使用<b class='flag-5'>Arduino</b><b class='flag-5'>开发板</b>构建室内花园

    Arduino开发板使用NRF24L01进行无线通信

    如何使用NRF24L01收发器模块在两个Arduino开发板之间进行无线通信。为了说明无线通信,我们将举两个例子,第一个是 从一个Arduino开发板向另一个发送简单的“Hello
    发表于 05-30 10:22 2次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>开发板</b>使用NRF24L01进行无线通信

    这么漂亮的Arduino开发板你见过吗?

    摘要:找到几块基于Arduino UNO形状的开发板,一起来欣赏下。
    的头像 发表于 06-06 09:52 1855次阅读
    这么漂亮的<b class='flag-5'>Arduino</b><b class='flag-5'>开发板</b>你见过吗?