震动传感器(模拟和数字)

数字震动传感器

转载:dfrobotwiki

简介

DFRobot数字震动传感器是一个数字的即插即用传感器模块。它可以检测到震动信号,然后输出开关信号到Arduino,

模块使用PH2.0接口,使用数字连接线可以很方便的连接到传感器扩展板上。

它能够感知微弱震动信号,可实现与震动有关的互动作品。

在这里插入图片描述

产品参数

  • 工作电压:3.3V到5V
  • 接口类型:数字
  • 引脚定义:1–输出 2–电源 3—地
  • 平时保持高电平输出,震动时输出低电平
  • 本开关在静止时为开路(OFF)状态,当受到外力碰触而达到适当震动力时,或移动速度达到适当离(偏)心力时,导电接脚会发生瞬间导通(ON)状态,使电气特性改变,而当外力消失时电气特性恢复开路(OFF)状态
  • 无方向性,任何角度均可以触发工作
  • 在外力震动时,达到适当的震动力时导电针将瞬间开启(ON)。
  • 无方向,任何角度可能检测震动。
  • 适用于小电流电路(二次回路)或触发(IC)。
  • 在室温和正常使用情况下的开关使用寿命可达10万次(times/1sec)。
  • 供电电压:和所用控制器一致即可。
  • 开启时间:0.1ms(建议使用中断捕捉)
  • 开路电阻:10Mohm

连线图

在这里插入图片描述

数字模块链接示意图

示例代码

#define SensorLED     13
#define SensorINPUT   3  //Connect the sensor to digital Pin 3 which is Interrupts 1.

unsigned char state = 0;

void setup()
{
  pinMode(SensorLED, OUTPUT);
  pinMode(SensorINPUT, INPUT);
  attachInterrupt(1, blink, FALLING);// Trigger the blinkfunction when the falling edge is detected
  Serial.begin(9600);
}
void loop()
{
  if (state != 0)
  {
    state = 0;
    digitalWrite(SensorLED, HIGH);
    delay(500);  //小灯点亮时间
  }
  else
    digitalWrite(SensorLED, LOW);
}

void blink()//Interrupts function
{
  state++;
  Serial.println(digitalRead(3));
}

结果

如图连线,引脚13插上LED小灯后,每次振动数字震动传感器,小灯都会短暂点亮,具体点亮时间可在代码中设置

震动传感器2

在这里插入图片描述

用途:

用于各种震动触发作用,报盗报警,智能小车,电子积木等。
请注意这个模块在感应到小的震动时触发时间会很短,不够驱动继电器,有些人的资料显示可以直接和继电器模块相连,实际运用效果不佳。

模块特色:

  1. 采用本公司生产的各种灵敏度震动开关,默认用SW-18020P震动传感器,。
  2. 比较器输出,信号干净,波形好,驱动能力强,超过15mA
  3. 工作电压3.3V-5V
  4. 输出形式 :数字开关量输出(0和1)
  5. 设有固定螺栓孔,方便安装
  6. 小板PCB尺寸:3.2cm x 1.4cm
  7. 使用宽电压LM393比较器

模块使用说明:

  1. 产品不震动时,震动开关呈断开状态,输出端输出高电平,绿色指示灯不亮;

  2. 产品震动时,震动开关瞬间导通,输出端输出低电平,绿色指示灯亮;

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

实验器材:Arduino 168P 基础套件 互动媒体

      1.Arduino 168P 开发板一个
      2.USB下载线一条
      3. SW-18010P 震动传感器一个
      4.LED一个
      5.200欧姆电阻一个
      6.面包板一块
      7.面包板跳线若干条

实验目的:

学习SW-18010P 震动传感器的工作原理,以及如何使用Arduino 控制SW-18010P 震动传感器。

实验电路:

实验电路如下图所示
在这里插入图片描述

实验原理:

SW-18010P 震动传感器这是一款基于弹簧摆动原理设计的震动传感器,震动势能传到弹簧末端引起共振,左右摆动碰触到金属外壁形成通路。在静止时任何角度都为开路OFF状态,当受到外力碰撞或者大力晃动时,弹簧变形和中心电极接触导通使两个引脚瞬间导通为ON状态,当外力消失时,电路恢复为开路OFF状态。由于导通时间和弹簧的刚性有关,所以该震动传感器的输出带宽很窄,在使用Arduino读取时,建议使用外部中断功能。
在这里插入图片描述

实验步骤:

一. 按照以上电路正确搭建实验电路。

二. 将我提供的调试程序下载到Arduino开发板中。

三. 晃动SW-18010P 震动传感器看LED的工作情况。

实验程序:

Arduino外部中断代码:

#define SensorLED     13
#define SensorINPUT   2 

unsigned char state = 0;

void setup()
{
  pinMode(SensorLED, OUTPUT);
  pinMode(SensorINPUT, INPUT);
  attachInterrupt(0, blink, FALLING);//D2口为外部中断0,当有下降沿触发的时候调用blink函数

}
void loop()
{
      if(state!=0)
      {
        state = 0;
        digitalWrite(SensorLED,HIGH);
        delay(500);
      } 
      else
        digitalWrite(SensorLED,LOW);
} 


void blink()//数字输入传感器下降沿触发中断服务函数
{
  state++;
}

最后结果可观察数字口13脚上的L指示灯,震动后可以看见L灯亮500ms。

——————以上内容部分摘自网络————————————————————

自己写了一个程序。是用analogRead来判断的。将震动模块的数字口插在A0口上。得到一个0-1023的数字。

在晃动的时候,可以得到28 或者 一个差不多的两位数,不晃动的时候,得到的是1021,1022,1023,说明没有震动。

有震动,便内部导通,向外发送一个电讯号。

int sensorPin = A0;
//int ledPin = 7;
int sensorValue = 0;
void setup()
{
  //pinMode(ledPin,OUTPUT);
  Serial.begin(9600);
}

void loop(){
  sensorValue = analogRead(sensorPin);
  delay(100);
  Serial.println(sensorValue);
}

显示效果如下,

在这里插入图片描述

有一个缺点就是,数字滚动速度太快。所以得到的都是刷新值。

一般情况下,晃动一下,我们会希望大约有2秒钟的延迟,因为人的反映速度相对电脑来说还是很慢的。所以,我们可以这么做。

把LED等连接到Pin7, 震动感应器,连接到A0口

按照下面的代码尝试

int sensorPin = A0;
int ledPin = 7;
int sensorValue = 0;
void setup()
{
  pinMode(ledPin,OUTPUT);
  Serial.begin(9600);
  digitalWrite(ledPin, LOW);
}

void loop(){
  sensorValue = analogRead(sensorPin);
  if (sensorValue < 100)
  {
    digitalWrite(ledPin, HIGH);
    delay(2000);  // delay for 2 sec if sensor's shaked
    
  }else{
    digitalWrite(ledPin, LOW);
  }
  Serial.println(sensorValue);
}

这样,每次碰到传感器,它都会亮两秒钟,如果两秒内还在有震动的话,会继续亮。

这样,人就反映过来了。当然,可以适当修改一下时间,比如不是两秒,是1秒也行。总之要人眼能反映过来才好。

效果一般,但是达到既定的预期效果。

  • 11
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
振动传感器的种类丰富,按照工作原理的不同,能分为电涡流式振动传感器、电感式振动传感器、电容式振动传感器、压电式振动传感器和电阻应变式振动传感器等。以下是这几种振动传感器的工作原理和用途。 1、电涡流式振动传感器 电涡流式振动传感器是涡流效应为工作原理的振动式传感器,它属于非接触式传感器。电涡流式振动传感器是通过传感器的端部和被测对象之间距离上的变化,来测量物体振动参数的。电涡流式振动传感器主要用于振动位移的测量。 2、电感式振动传感器 电感式振动传感器是依据电磁感应原理设计的一种振动传感器。电感式振动传感器设置有磁铁和导磁体,对物体进行振动测量时,能将机械振动参数转化为电参量信号。电感式振动传感器能应用于振动速度、加速度等参数的测量。 3、电容式振动传感器 电容式振动传感器是通过间隙或公共面积的改变来获得可变电容,再对电容量进行测定而后得到机械振动参数的。电容式振动传感器可以分为可变间隙式和可变公共面积式两种,前者可以用来测量直线振动位移,后者可用于扭转振动的角位移测定。 4、压电式振动传感器 压电式振动传感器是利用晶体的压电效应来完成振动测量的,当被测物体的振动对压电式振动传感器形成压力后,晶体元件就会产生相应的电荷,电荷数即可换算为振动参数。压电式振动传感器还可以分为压电式加速度传感器、压电式力传感器和阻抗头。 5、电阻应变式振动传感器 电阻应变式振动传感器是以电阻变化量来表达被测物体机械振动量的一种振动传感器。电阻应变式振动传感器的实现方式很多,可以应用各种传感元件,其中较为常见的是电阻应变。
一、电路特性 电路是一款高线性度、低噪声、宽带宽振动检测 解决方案。该方案适用于要求具有宽动态范围(±70 g、±250 g 或±500 g)以及平坦频率响应(从直流到22 kHz)的应用。 该电路提供适合进行轴承分析、引擎监控以及振动检测的 低功耗解决方案。 享有ADI专利的第五代iMEMs:registered:工艺让 ADXL001加速度计拥 有从±70 g扩展至±500 g的扩展动态范围,且带宽为22 kHz。 AD8606是一款精密、低噪声、双通道运算放大器,用于创 建模拟双二阶滤波器,可使加速度计的输出频率响应较为 平和。 ADXL001输出电压经低功耗、单通道12位SAR ADC AD7476 转换为数字字。 二、电路描述 加速度计输出特性 ADXL001经测试的额定电源电压为3.3 V和5 V。虽然该器件 可采用3 V至6 V范围内的任意电源电压工作,但采用5 V电 源可获得最优整体性能。 输出电压灵敏度与电源电压成比例。采用3.3 V电源时,标称 输出灵敏度为16 mV/g。采用5 V电源时,灵敏度为24.2 mV/g。 0 g输出电平亦为比例电平,标称值为 VDD/2。 只要1 MHz内部时钟频率上不存在噪声,ADXL001就只需要 一个0.1μF去耦电容。如果需要,可以包含较大的大容量电 容(1μF至10μF)或氧化铁磁珠 加速度计物理操作 ADXL001采用绝缘硅片(SOI) MEMS技术制造,具有机械耦 合但电气隔离的差分检测单元。图1显示其中一个差分传 感器单元模块的简化图。每个传感器模块均集成数个差分 电容单元。每一单元都以器件层上的固定板以及传感器框 架上的活动板组成。传感器框架移位将改变差分电容。片 内电路测量电容变化,并将其转换为输出电压。 图1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值