一、介绍
上一个实验我们知道了倾斜开关的原理和使用方法,接下来我们一起来看看振动开关的实验吧。振动开关也称为弹簧开关或者震动传感器,是一种电子开关,它会产生震动并将结果传输给电路装置,从而触发其工作。它包含以下部分:导电振动弹簧、开关主体、触发销和包装壳。
二、材料准备
- Arduino Uno 主板*1
- USB数据线*1
- 振动开关模块*1
- 杜邦线若干
三、实验原理
在振动开关模块中,导电的振动弹簧和触发销被精确地放置在开关体中并且通过粘合剂粘和到固定位置上。通常在不震动的时候弹簧和触发销不接触,一旦震动,弹簧就会摇动并与触发器引脚接触以传导并产生触发信号。
将使用D13接口上的LED灯作为振动开关的振动显示,将振动开关连接到数字引脚8,当振动开关感应到振动信号时,脚SIG将输出低电平,模块上的LED和引脚上连接的LED将亮起,振动开关模块电路原理图8.2所示。
四、实验过程
首先我们需要搭建一个测试电路。如图8.4所示是一个模拟的电路连线图,大家可以参考一下。
这里我们根据接线的实物图来简单介绍一下(模拟接线图和实际连线图有一定的区别,我们以实际接线图为准)。
首先,将振动开关模块上的VCC和GND分别接在板子上的5V和GND上,接着将D0接在板子上的D8引脚上即可,按照上面的说明接好线后就是图8.4的样子了。
给板子接上USB连接线后,我们就可以进行程序部分的工作了。
五、代码
/************************************
* 项目名字:振动开关实验
* 接口列表:
* Vibratione_switch Arduino Uno R3
* D0 8
* GND GND
* VCC 5V
*编写:南友***********************/
const int vibswPin=8;//引脚名称定义
const int ledPin=13;
int val=0;
void setup()
{
pinMode(vibswPin,INPUT);//定义端口
pinMode(ledPin,OUTPUT);
Serial.begin(9600);
}
void loop()
{
val=digitalRead(vibswPin);//读取振动开关信号端口的值
Serial.println(val);
if(val==LOW)
{
digitalWrite(ledPin,HIGH);//信号为低电平时,输出为高电平
}
else
{
digitalWrite(ledPin,LOW);//信号为高电平时,输出为低电平
}
}
六、效果展示
将程序上传到Arduino板子上后,我们就可以看到振动开关的效果了。
通电之后,如图8.5所示,我们看到PWR-LED+和D0-LED+这两枚LED灯一直是出于常亮状态,说明这个模块处于一个通电正常工作的状态。
接下来我们就通过一个小视频一起看看这个振动开关的效果吧~
知乎视频www.zhihu.com七、总结分析
总的来说,振动开关还是较为灵敏的,这里我们可以看到板子D13引脚上的LED和模块上D0-LED+显示基本是一致的,都会随着开关的抖动进行相应的变化。相比上一个倾斜开关实验,振动开关的应用就相对会多一下,因为只要发生了振动就会有所显示。
大家如果想让抖动的时候LED灯的点亮时间长一点,现象更明显一点也可以,加一个延时就行了,但这样的话就会同时会产生一个消抖的效果,对于一些较为轻微的抖动就会忽视(我刚刚试过)。怎么样,是不是还不错呢,如果你有什么建议或者想法,欢迎在评论区留言或者私信我哦~