• 【雕爷学编程】Arduino动手做(3)微波雷达感应开关模块


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


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

    实验之三:微波雷达感应开关模块



    无意中得到一块RCWL-0516微波雷达传感器模块,也称RCWL-0516多普勒运动模块,或叫做人体感应智能探测器。RCWL-0516模块在芯片中集成了低压调节器,所以它很容易使用,也很容易被拼接到一些小项目中去。

    RCWL-0516传感器模块是替代常见的PIR运动传感器的极佳选择,RCWL-0516传感器广泛应用于防盗报警器和安全灯。RCWL-0516传感器与PIR传感器一样,只能检测到探测范围内的物体运动,不能探测到移动物体的黑体辐射。RCWL-0516传感器是采用“微波多普勒雷达”技术来探测移动物体,因此它也被称作多普勒传感器,探测距离范围是7米左右。 当被触发时,它的TTL-level (OUT)针将在2s到3s内从低电平(0V)转换到高电平(3.5V),然后返回到IDLE(低)状态.

    模块特性:
    电压范围:4–28 VDC
    工作频率:  3.2 GHz
    发射功率:  20 mW (typical)/30 mW (max)
    感应距离:  5–7 m
    RCWL-0516微波雷达运动传感器模块引脚图:

    ​CDS —禁用传感器输入(low = disable);VIN — 4~ 28VDC电源输入;OUT — HIGH (3.3 V) 动态侦测/LOW (0 V) 空闲;GND — 地/0 V;3V3 — 调节直流输出 (最大100 mA)。

    RCWL-0516传感器模块可以很容易地与许多微控制器一起使用,甚至可以单独使用。它支持4~28 v的电源。输出接口可用于许多任务场景,例如直接驱动一个听觉/视觉指示器,或者与微控制器的连接更深入的对数据进行处理。在运用过程中,RCWL-0516传感器模块的前方不能有任何金属部件。

    ​实验仿真图

     

    微波雷达感应开关模块检测到人体运动时,触发高电平输出,并延时2-3秒

     

    实验三:微波雷达感应开关模块实验逻辑流程图

     

     

    /*
      【Arduino】37种传感器模块系列实验(3)
        实验三---微波雷达感应开关模块
        源代码
    */
     
    void setup()
    {
        pinMode(3,INPUT); 
        pinMode(13,OUTPUT); 
    }
     
    void loop() {
      if (digitalRead(3)) {
        digitalWrite(13,LOW);
      }
      else {
        digitalWrite(13,HIGH);
        delay(3000);
      }
    }
    

      源代码之二

    /*
    【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
    实验三:多普勒微波雷达感应开关模块
    GND – [connects to ground]
    OUT -[connects to digital input]
    VIN – [connects to 5v]
    */
    
    #include <VirtualWire.h>
     
    #define PIN_RADAR 2
    #define PIN_TX 9
    #define PIN_LED 13
     
    void setup() {
      Serial.begin(9600);
      pinMode(PIN_LED, OUTPUT);
      vw_set_tx_pin(PIN_TX);        // Arduino pin to connect the receiver data pin    
      vw_setup(6000);               // bps connection speed
    }
     
    int rv = -1;
     
    void loop() {
      digitalWrite(PIN_LED, HIGH);
      int v = digitalRead(PIN_RADAR);
      if (v != rv) {
        rv = v;
        char msg[20];
        sprintf(msg, "R %lu %d", millis() / 1000, v);
        vw_send((uint8_t *)msg, strlen(msg));
        Serial.println(msg);
        vw_wait_tx();        // Wait to finish sending the message
      }
      digitalWrite(PIN_LED, LOW);
      delay(100);
    }
    

      

     

  • 相关阅读:
    BNUOJ 34978 汉诺塔 (概率dp)
    hdu1427 速算24点
    vim学习之以退为进——可反复移动和可反复改动的美妙结合
    C++设计模式实现--策略(Strategy)模式
    ios怎样在一个UIImageButton的里面加一些自己定义的箭头
    HTML5 Canvas 画图入门
    AT3728 Squirrel Migration
    HTTP请求的GET与POST方式的区别
    HTTP 的请求过程?
    servlet的生命周期
  • 原文地址:https://www.cnblogs.com/eagler8/p/11247971.html
Copyright © 2020-2023  润新知