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

您所在的位置:网站首页 压电式传感器振动实验数据分析 震动传感器(模拟和数字)

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

2024-07-13 09:49| 来源: 网络整理| 查看: 265

index 数字震动传感器简介产品参数连线图示例代码结果 震动传感器2用途:模块特色:模块使用说明:实验器材:Arduino 168P 基础套件 互动媒体实验目的:实验电路:实验原理:实验步骤:实验程序:自己写了一个程序。是用analogRead来判断的。将震动模块的数字口插在A0口上。得到一个0-1023的数字。显示效果如下,

数字震动传感器

转载: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

在这里插入图片描述

用途:

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

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

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

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

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

实验器材: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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3