目录
前言
震动传感器
1.震动传感器配图
2.震动传感器原理图
3.震动传感器使用
1-震动传感器的意义
2-震动传感器的应用场景
3- SW-18010P震动传感器使用方法
震动传感器控制灯
操作
增加延时
使用SPC-ISP生成演示函数
总结
前言
我们上节已经简单了解了LED的使用(不懂的直接去看:LED解析),本节来了解一下震动传感器的原理及使用。
震动传感器
1.震动传感器配图
2.震动传感器原理图
本教程使用的是 SW-18010P 型号的震动传感器:
3.震动传感器使用
1-震动传感器的意义
振动传感器是一种目前广泛应用的报警检测传感器,它通过内部的压电陶瓷片加弹簧重锤结构感受机械运动振动的参量(如振动速度、频率、加速度等)并转换成可用输出信号,然后经过LM358等运放放大并输出控制信号。
2-震动传感器的应用场景
振动传感器可用于机械中的振动和位移、转子与机壳的热膨胀量的长期监测;生产线的在线自动检测和自动控制;科学研究中的多种微小距离和微小运动的测量等。
振动传感器在测试技术中是关键部件之一,它具有成本低、灵敏度高、工作稳定可靠,振动检测可调节范围大的优点,广泛应用于能源、化工、医学、汽车、冶金,机器制造,军工,科研教学等诸多领域
3- SW-18010P震动传感器使用方法
单片机供电VCC GND接单片机产品不震动,输出高电平,传感器检测到震动,DO口输出低电平,绿色指示灯亮,AO口不需要连接。
通过杜邦线进行连接,将vcc接线到开发板5v的位置,GND接线到GND的位置,DO接线到随便的一个IO口上(本节示例接线到P3.3);
震动传感器控制灯
通过我们已经掌握的LED来了解下振动传感器是怎么回事
- 如何知道是否发生振动?
- 振动后的信号表现又是什么?
- 振动传感器控制灯
操作
我们的震动传感器检测到震动的时候,Do会输出一个低电平,并且Do引脚连接在开发板的P3.3,所以我们只需要不断地检测“P3^3”的电平高低就可以,如果是低电平表示发生了震动,给P3^7一个低电平导通二极管,二极管发光:
#include <reg52.h>
sbit led1 = P3^7;
sbit virbrate = P3^3;//因为Do接到了P3.3口
void main()
{
while(1)
{
if(virbrate == 0)
{
led1 = 0;
}else{
led1 = 1;
}
}
}
增加延时
我们只需要让灯亮状态延长两秒。
使用SPC-ISP生成演示函数
生成延时函数比较简单,在这里就不再过多赘述了(生成延时函数)
我们上述代码中现象很短暂,所以我们增加一个延时函数来来使现象更加明显。
#include <reg52.h>
#include <intrins.h>
sbit led1 = P3^7;
sbit virbrate = P3^3;//因为Do接到了P3.3口
void Delay2000ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 15;
j = 2;
k = 235;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
if(virbrate == 0)
{
led1 = 0;
Delay2000ms();
}else{
led1 = 1;
}
}
}
因为在延时函数中有“_nop_()” ,所以我们要包含头文件“#include <intrins.h>即可。”
总结
我们本节主要了解了震动传感器的原理以及工作方式——检测到震动时Do针脚会输出低电平,没检测到震动Do针脚输出高电平,并且简单的实现出震动亮灯的操作。