zoukankan      html  css  js  c++  java
  • 「雕爷学编程」Arduino动手做(20)—水银开关模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉。 


    【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)

    实验二十:水银开关传感器模块(KY-017)


    水银
    汞是化学元素,元素周期表第80位。俗称水银。元素符号Hg,在化学元素周期表中位于第6周期、第IIB族,是常温常压下唯一以液态存在的金属(从严格的意义上说,镓(符号Ga,31号元素)和铯(符号Cs,55号元素)在室温下(29.76℃和28.44℃)也呈液态)。汞是银白色闪亮的重质液体,化学性质稳定,不溶于酸也不溶于碱。汞常温下即可蒸发,汞蒸气和汞的化合物多有剧毒(慢性)。水银具有良好的导电性和流动性。汞使用的历史很悠久,用途很广泛。 在中世纪炼金术中与硫磺、盐共称炼金术神圣三元素。

    水银开关

    又称倾侧开关,是电路开关的一种,一般是一个小玻璃泡容器中储存着一小滴水银,容器中多数注入惰性气体或真空。因为重力的关系,水银珠会向容器中较低的地方流去,因为水银是一种导电的液体,如果它同时接触到两个电极,电路便会接通,否则电路断开。因为水银开关的通断与物体的水平角度有关,因此它常被应用在一些自动控制电路当中。

    我有五个这开关

    工作原理

    水银开关的构造很简单。外面是一个密封的圆柱形绝缘壳体,长约30 毫米, 直径约10 毫米。里面装有约五分之一的水银。在壳体的一端固定着从里面引出的两根导线。这就是一个水银开关。因为重力的关系,水银水珠会向容器中较低的地方流去,如果同时接触到两个电极的话,开关便会将电路闭合,开启开关,从而触发后续电路工作。

    主要特色

    水银是液态,接触面积接触大且稳定,一般来说导通效果更稳定。其电阻在0.02欧以下, 在额定电流下寿命可达几百万次,可用来分合交直流大电流,体积小,灵敏度高,无机械噪音,价格低廉,所以一向是作为自动控制用开关。适用于有尘埃、油、水蒸汽等和有腐蚀性气体的特殊场所,也可以在有爆炸性气体的场所中充当防爆开关使用。玻璃管封装的水银开关的优点是可以从外部观察到它的工作状态,缺点就是容易破碎。

    ●由密封玻璃管、电极和水银组成;

    ●通过水银的流动特性来实现电路的通断,自由角度,灵活控制;

    ●高温烧制,可以做成任何形状;

    ●广泛应用于水位液位控制、报警装置、检测装置、通讯设备、仪器仪表等领域作信号传递及控制用。

    注意事项:

    水银对人体及环境均有毒害,故使用水银开关时,请务必小心谨慎,以免破出;在不再使用时,也应该妥善处理。防止水银开关从高处跌落,避免其与硬物接触,或被挤压,导致玻璃泡破裂。

    水银开关模块内部结构图

    水银开关应用电路

    特别警告:

    水银有毒,一旦玻璃泡破裂,请迅速将流出的水银移至室外,切勿与皮肤接触。因为水银开关里面的水银量很少,甚至比普通水银体温计里面的还少,因此在正确使用的情况下,不必担心安全问题。

    模块特色:

    1、采用高灵敏度水银开关

    2、比较器输出,信号干净,波形好,驱动能力强,超过15mA

    3、工作电压3.3V-5V

    4、输出形式 :数字开关量输出(0和1)

    5、设有固定螺栓孔,方便安装

    6、小板PCB尺寸:3.2cm x 1.4cm

    7、使用宽电压LM393比较器

     

    模块接线:

    1.VCC:接电源正

    2.GND:接电源负

    3.DO:数字量信号输出

    模块使用说明:

    1、产品不倾斜时,震动开关呈导通状态,输出端输出低电平,绿色指示灯亮;

    2、产品倾斜时,震动开关断开状态,输出端输出高电平,绿色指示灯亮;

    3、输出端可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境是否有倾斜,起到角度倾斜报警作用!

    实验示意场景图

     

    /*
    
    【Arduino】108种传感器模块系列实验(20)
    
       实验二十:水银开关传感器模块(KY-017)
    
      源代码
    
    */
    
    
    void setup()
    
    {
    
          pinMode(3,INPUT);
    
          pinMode(13,OUTPUT);
    
    }
    
    
    void loop() {
    
      if (digitalRead(3)) {
    
          digitalWrite(13,HIGH);
    
          delay(1000);
    
      }
    
      else {
    
          digitalWrite(13,LOW);  
    
      }
    
    }
    

      

    /*
    
    【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
    
    实验二十:水银开关传感器模块(KY-017)
    
    */
    
    
    // constants won't change. They're used here to
    
    // set pin numbers:
    
    const int buttonPin = 2;     // the number of the pushbutton pin
    
    const int ledPin =  13;      // the number of the LED pin
    
    
    // variables will change:
    
    int buttonState = 0;         // variable for reading the pushbutton status
    
    
    void setup() {
    
      // initialize the LED pin as an output:
    
      pinMode(ledPin, OUTPUT);      
    
      // initialize the pushbutton pin as an input:
    
      pinMode(buttonPin, INPUT);     
    
    }
    
    
    void loop(){
    
      // read the state of the pushbutton value:
    
      buttonState = digitalRead(buttonPin);
    
    
      // check if the pushbutton is pressed.
    
      // if it is, the buttonState is HIGH:
    
      if (buttonState == HIGH) {     
    
        // turn LED on:   
    
        digitalWrite(ledPin, HIGH);  
    
      }
    
      else {
    
        // turn LED off:
    
        digitalWrite(ledPin, LOW);
    
      }
    
    }
    

      

  • 相关阅读:
    14 微服务电商【黑马乐优商城】:day02-springcloud(理论篇一:HttpClient的简单使用)
    14 微服务电商【黑马乐优商城】:day01-springboot(Thymeleaf快速入门)
    14 微服务电商【黑马乐优商城】:day01-springboot(理论篇)
    1.1 行列式:二阶三阶n阶行列式
    ubuntu:make工程管理器大致了解
    ubuntu:VIM使用
    机器学习:朴素贝叶斯邮件分类(python实现)
    ubuntu 添加快速启动
    ubuntu:软件包
    Ubuntu:远程管理ubuntu文件系统
  • 原文地址:https://www.cnblogs.com/eagler8/p/11427580.html
Copyright © 2011-2022 走看看