震动传感器控制灯
震动传感器原理图:
由产品介绍知道,震动传感器感受震动时输出低电平,那要实现震动时灯亮则可以用如下代码:
#include "reg52.h"
sbit led1 = P3^7;
sbit vibrate = P3^3;//Do接到了P3.4口
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(vibrate==0){//模块说明,震动的话,Do输出低电平
led1 =0;//亮灯
Delay2000ms();
led1 =1;
}else{
led1 =1;//灭灯
}
}
}
结果图:
没震动时:
震动后:
这里震动传感器的震动指示灯拍不下来,所以看不到,感兴趣的自己去试试
震动传感器控制继电器
继电器原理图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/
83bfc65fd8ae404ea05f803a154b39d5.png)
由原理图知道继电器是默认低电平触发
代码如下:
#include “reg52.h”
#include “Intrins.h”
sbit vibrate = P3^3;
sbit switcher = P1^1;
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(vibrate==0){//模块说明,发生震动,Do口输出低电平
switcher=0;//发生震动,继电器被导通,给IN口一个低电平
Delay2000ms();
switcher=1;//高电平,继电器NO和COM不通
}else{
switcher=1;//继电器默认关闭
}
}
}
结果图:
这里控制继电器是看不见效果图的,口头说明一下,当震动器的感受到震动时,单片机就会将继电器的的开关接通,即将下图中
的NO和COM接通,此时可以听见一声“咔”的声音,表示继电器已经被接通了