众所周知,居家安全中门是第一道安全防线。随着各种安全锁的发明与进步。家用门的防盗性也逐渐趋于完美。但所谓道高一尺魔高一丈,再安全的门也会被小偷用合适的工具撬开。而在这种时候,仅增加门的厚度已是徒劳。因此,鉴由这一点,笔者开发了一种简易的震动报警器。虽然只是一个理想模型,但在实际生活中也能发挥巨大作用。 所需元件 1* 2* 若干 1*
1* 硬件连接 首先,说明一下主要组件在成品中的应用及作用。LED灯,在理想模型里模拟实际生活中的报警灯,在报警器被触发时,会发出强烈且间歇的亮光。蜂鸣器在报警器被触发后,会发出固定的报警声。其它元件在此不多做解释,实际操作时会再加以说明。 连接图如上。 输入代码
- //震动报警器
- int sensorled = 6;
- int sensorzdkg = 3; //使灯的引脚设为6,震动开关设为中断1
- unsigned char state = 0;
- float sinVal;
- int toneVal; //该两段定义蜂鸣器报警
-
- void setup () {
- pinMode(sensorled,OUTPUT); //LED为输出模式
- pinMode(sensorzdkg,INPUT); //震动开关为输入模式
- pinMode(8, OUTPUT);
-
- //低电平变高电平的过程中,触发中断1,调用blink函数
- attachInterrupt(1,blink,RISING);
- }
-
- void loop(){
- if(state!=0){ // 如果state不是0时
- digitalWrite(sensorled,HIGH);
- delay(150);
- digitalWrite(sensorled,LOW);
- delay(100);
-
- for(int x=0; x<180; x++){
- sinVal = (sin(x*(3.14/180)));
- toneVal = 2000+(int(sinVal*1000));
- tone(8, toneVal);
- delay(2);
- }
- }
- else
- digitalWrite(sensorled,LOW);
- }
- void blink(){ //中断函数blink()
- state++; //一旦中断触发,state就不断自加
- }
复制代码
在设计完成后,把报警器安装在门上,只要门一有轻微震动,报警器就会发出警报并亮灯。这样的装置在晚上家里人入睡时能起到很好的防盗作用。 实物连接 本篇由戚明杰制作,罗亮指导
|