【雕爷学编程】Arduino动手做(4)---振动传感器模块

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

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

实验之四:振动传感器模块

手头这模块的实物照片
【雕爷学编程】Arduino动手做(4)---振动传感器模块_第1张图片
核心是sw-18015p(18010p) 高灵敏振动传感器

【雕爷学编程】Arduino动手做(4)---振动传感器模块_第2张图片
【雕爷学编程】Arduino动手做(4)---振动传感器模块_第3张图片
【雕爷学编程】Arduino动手做(4)---振动传感器模块_第4张图片
【雕爷学编程】Arduino动手做(4)---振动传感器模块_第5张图片
滚珠开关也叫钢珠开关,珠子开关,其实都是震动开关的一种只是叫法不一样是通过珠子滚动接触导针的原理来控制电路的接通或者断开的。

简单来说,就如同打开或关掉电灯一样,开关触碰里头的金属板电灯就亮,离开就关,滚珠开关也是利用类似的原理。利用开关中的小珠的滚动,制造与金属端子的触碰或改变光线行进的路线,就能产生导通或不导通的效果。

滚珠开关目前已有许多不同类型的产品,包括角度感应开关、震动感应开关、离心力感应开关、光电式滚珠开关。以往此类型开关以水银开关为主,把水银(汞)当作触击的元件,但自从各国政府陆续禁用水银后,触击元件就为滚珠所取代。

滚珠开关运用层面极广,例如:如胎压监控系统(TPMS)、脚踏车灯、数位相框旋转、 萤幕旋转、视讯镜头翻转、防盗系统等,举凡想侦测物体角度变化、倾倒、移动、震动、旋转的场合,滚珠开关皆适用。

【雕爷学编程】Arduino动手做(4)---振动传感器模块_第6张图片
模块电原理图
【雕爷学编程】Arduino动手做(4)---振动传感器模块_第7张图片
模块用途:
用于各种震动触发作用,报盗报警,智能小车,电子积木等。
请注意这个模块在感应到小的震动时触发时间会很短,不够驱动继电器,有些人的资料显示可以直接和继电器模块相连,实际运用效果不佳。

【雕爷学编程】Arduino动手做(4)---振动传感器模块_第8张图片
模块特色:
1、工作电压 3.3V-5V
2、使用宽电压 LM393 比较器
3、设有固定螺栓孔,方便安装
4、小板 PCB 尺寸:3.2cm x 1.4cm
5、输出形式 :数字开关量输出(0 和 1)
6、比较器输出,信号干净,波形好,驱动能力强,超过 15mA
7、高灵敏度震动开关,采用SW-18010P或者SW-18015P 震动传感器。
【雕爷学编程】Arduino动手做(4)---振动传感器模块_第9张图片
模块接线(3 线制)
1、 VCC 外接 3.3V-5V 电压(可以直接与 5v 单片机和 3.3v 单片机相连)
2 、GND 外接 GND
3 、DO 小板数字量输出接口(0 和 1)
【雕爷学编程】Arduino动手做(4)---振动传感器模块_第10张图片
模块使用说明:
1、产品不震动时,震动开关呈断开状态,输出端(3脚)输出高电平,红色指示灯(12脚)不亮;
2、产品震动时,震动开关瞬间导通,输出端(3脚)输出低电平,红色指示灯(12脚)亮,并延时2秒;
3、DO输出端与Arduino uno直接相连(指定输入到3脚),通过Arduino uno来检测高低电平,由此来检测环境是否有震动,起到报警作用。

接好 VCC 和 GND,模块电源指示灯会亮,将模块轻放桌面上,调节板上蓝色电位器,直到板上开关指示灯亮,然后稍微回调电位器,让开关指示灯灭,再用手敲打桌面,使震动传感器有震感,此时,开关指示灯再会到亮状态。震动停止,开关指示灯也会灭。这个现象就是说明,震动可以触发模块,从而使开关指示灯点亮。
【雕爷学编程】Arduino动手做(4)---振动传感器模块_第11张图片

【雕爷学编程】Arduino动手做(4)---振动传感器模块_第12张图片
振动传感器模块实验逻辑流程图
【雕爷学编程】Arduino动手做(4)---振动传感器模块_第13张图片

/*
  【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
    ---振动传感器模块
*/
 
void setup()
{
    pinMode(3,INPUT); 
    pinMode(12,OUTPUT); 
}
 
void loop() {
  if (digitalRead(3)) {
    digitalWrite(12,LOW);
  }
  else {
    digitalWrite(12,HIGH);
    delay(2000);
  }
}

可视化的仿真编程
【雕爷学编程】Arduino动手做(4)---振动传感器模块_第14张图片

图形编程

【雕爷学编程】Arduino动手做(4)---振动传感器模块_第15张图片
其实大家不是灵敏度调节不好,而是程序如此,模块在快速的震荡,在0/1之间变化,而LED只是显示了开关的状态。
其实这里只要检测到了就翻转一下输出,延时再检测就好了程序要修改下:

void setup()
{
pinMode(3,INPUT);
pinMode(12,OUTPUT);
}

void loop() {
int state =0 ;
if (digitalRead(3)) {
state=~state;
digitalWrite(12,state);
}
else {
;
}
delay(2000);
}

你可能感兴趣的:(Arduino,开源硬件,震动传感器)