“振动报警器”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
设备
原理
第7行: 第7行:
  
 
==原理==
 
==原理==
 +
震动传感器检测是否发生震动,检测到有震动时控制蜂鸣器发出报警音。
  
 
==设备==
 
==设备==

2015年11月24日 (二) 02:25的版本

Language English

目的

做一个震动报警器,当有震动时,蜂鸣器循环发出两次报警音频。

原理

震动传感器检测是否发生震动,检测到有震动时控制蜂鸣器发出报警音。

设备

模块 数量 功能
mCookie-CoreUSB/zh 1 核心板
mCookie-Hub/zh 1 传感器转接板
Microduino-BUZZER/zh 1 蜂鸣器
Microduino-Shock/zh 1 震动传感器
  • 其他设备:
    • USB数据线*1
    • 传感器连接线*1

准备

  • Setup 1:将震动传感器接到接到Hub的D4引脚上,蜂鸣器接到D6引脚上。用户可以改。
  • Setup 2:将CoreUSB,Hub连接在一起。通过USB数据线将接入电脑。

调试

  • 打开Arduino IDE,把原来IDE里的代码都删除,将下列代码复制到IDE中。
#define pushButton 4
#define speakPin 6

int pushState;

long time, timer;

boolean shock;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(115200);
  // make the pushbutton's pin an input:
  pinMode(pushButton, INPUT);
  pinMode(speakPin, OUTPUT);
}

void loop() {
  if (digitalRead(pushButton))
    shock = true;

  if (millis() - time > 2000)
  {
    if (!digitalRead(pushButton))
      shock = false;
    time = millis();
  }

  //  Serial.println(shock);
  if (shock)
  {
    for (int j = 0; j < 2; j++)
      buzzer();
  }
  else
    noTone(speakPin);
}

void buzzer()
{
  for (int i = 200; i <= 800; i++)
  {
    tone(speakPin, i);
    delay(5);
  }
  delay(1000);
  for (int i = 800; i >= 200; i--)
  {
    tone(speakPin, i);
    delay(10);
  }
}
  • 选择正确的板卡和COM端口
Upload.JPG
  • 编译
    • 编译时会提示保存项目,用户可以自己命名保存到你的文件夹即可。
  • 下载
    • 编译成功后可以直接下载,提示下载成功表示程序下载完毕。
  • 当有震动时,蜂鸣器循环发出两次报警音频。

软件调试

  • 函数说明:
    • “buzzer()”控制蜂鸣器报警函数。
  • 控制引脚定义
#define pushButton 4 //震动
#define speakPin 6 //蜂鸣器
  • 在2S内判断是否还在震动
  if (millis() - time > 2000)
  {
    if (!digitalRead(pushButton))
      shock = false;
    time = millis();
  }
  • 当检测到震动,蜂鸣器循环报警两次,用户可以改循环报警次数,否则不报警。
  if (shock)
  {
    for (int j = 0; j < 2; j++)
      buzzer();
  }
  else
    noTone(speakPin);

结果

当敲击震动传感器,蜂鸣器循环两次报警,循环之后没有震动时则停止。你也可以通过乐高搭建一个漂亮的外观。

视频