6219浏览
查看: 6219|回复: 0

简易车锁(陈潇湘)

[复制链接]
本帖最后由 linkdfrobot 于 2015-4-12 10:23 编辑

很多人(包括本人)的爱车(两轮)惨遭小偷毒手(万恶),因此萌发了利用Arduino制作一个防盗器的想法。
所需元件
1*简易车锁(陈潇湘)图2
2*简易车锁(陈潇湘)图3
若干简易车锁(陈潇湘)图4
1*简易车锁(陈潇湘)图5
1*简易车锁(陈潇湘)图6
1*简易车锁(陈潇湘)图7
硬件连接
有源[1]蜂鸣器与无源蜂鸣器的区别:
注意:这里的“源”不是指电源,而是指震荡源。
也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫
而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K-5K的方波去驱动它
有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路
无源蜂鸣器的优点是:
1. 便宜
2. 声音频率可控,可以做出“多来米发索拉西”的效果
3. 在一些特例中,可以和LED复用一个控制口
有源蜂鸣器的优点是:程序控制方便。
简易车锁(陈潇湘)图1
连接图如上。
输入代码
  1. //项目bicycle lock
  2. int ledPin=10;
  3. int buttonPin = 12;                          // button连接到数字12
  4. int relayPin = 13;                           // 继电器连接到数字13
  5. int relayState = LOW;                       // 继电器初始状态为LOW
  6. int buttonState;                            // 记录button当前状态值
  7. int lastButtonState = LOW;                  // 记录button前一个状态值
  8. long lastDebounceTime = 0;                  
  9. long debounceDelay = 50;                    //去除抖动时间
  10. float sinVal;
  11. int toneVal;
  12. void setup() {
  13.   pinMode(buttonPin, INPUT);
  14.   pinMode(relayPin, OUTPUT);
  15.   pinMode(ledPin,OUTPUT);
  16.   digitalWrite(relayPin, relayState);       // 设置继电器的初始状态
  17. }
  18. void loop() {
  19.   int reading = digitalRead(buttonPin);   //reading用来存储buttonPin的数据
  20.   
  21.   // 一旦检测到数据发生变化,记录当前时间
  22.   if (reading != lastButtonState) {   
  23.     lastDebounceTime = millis();
  24.   }
  25.   
  26.   // 等待50ms,再进行一次判断,是否和当前button状态相同
  27.   // 如果和当前状态不相同,改变button状态
  28.   // 同时,如果button状态为高(也就是被按下),那么就改变继电器的状态
  29.   if ((millis() - lastDebounceTime) > debounceDelay) {
  30.     if (reading != buttonState) {
  31.       buttonState = reading;
  32.       
  33.       if (buttonState == HIGH) {
  34.         relayState = !relayState;
  35.         digitalWrite(ledPin, HIGH);
  36.         delay(1000);
  37.         for(int x=0; x<180; x++){
  38.             sinVal = (sin(x*(3.1412/180)));
  39.             toneVal = 2000+(int(sinVal*1000));
  40.             tone(13, toneVal);
  41.             delay(2);
  42.          }   ;
  43.        }
  44.     }
  45.   }
  46.   // 改变button前一个状态值
  47.   lastButtonState = reading;
  48. }
复制代码

上锁后,按下按钮,指示灯亮,给继电器high,当车锁被断路时,蜂鸣器工作,指示灯灭,警灯亮。
本篇由陈潇湘制作,罗亮指导

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail