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

来自Microduino Wikipedia
跳转至: 导航搜索
结果
设备
 
(未显示2个用户的5个中间版本)
第7行: 第7行:
  
 
==原理==
 
==原理==
 +
震动传感器检测是否发生震动,检测到有震动时控制蜂鸣器发出报警音。
  
 
==设备==
 
==设备==
第13行: 第14行:
 
|模块||数量||功能
 
|模块||数量||功能
 
|-
 
|-
|[[Microduino-CoreUSB/zh]]||1||核心板
+
|[[mCookie-CoreUSB/zh]]||1||核心板
 
|-
 
|-
|[[Microduino-Sensorhub/zh]]||1||传感器转接板
+
|[[mCookie-Hub/zh]]||1||传感器转接板
|-
 
| [[Microduino-BM/zh]]||1||电池管理
 
 
|-
 
|-
 
| [[Microduino-BUZZER/zh]]||1||蜂鸣器
 
| [[Microduino-BUZZER/zh]]||1||蜂鸣器
 
|-
 
|-
| [[Microduino-Shock/zh]]||1||震动传感器  
+
| [[Sensor-Shake/zh]]||1||震动传感器  
 
|}
 
|}
  
 
*其他设备:
 
*其他设备:
**电池1个
+
**USB数据线*1
 +
**传感器连接线*1
 +
 
 +
[[File: shock_alarm.jpg|600px|center]]
 +
 
 +
===准备===
 +
*Setup 1:将震动传感器接到接到Hub的D4引脚上,蜂鸣器接到D6引脚上。用户可以改。
 +
[[file:shock_alarm_setup_1.jpg|600px|center]]
 +
*Setup 2:将CoreUSB,Hub连接在一起。通过USB数据线将接入电脑。
 +
[[file:mCookie-shock_alarm_-pc.JPG|600px|center]]
 +
 
 +
==调试==
 +
*打开Arduino IDE,把原来IDE里的代码都删除,将下列代码复制到IDE中。
 +
<source lang="cpp">
 +
#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;
  
[[File: shock_alarm.jpg|600px|center|thumb]]
+
  if (millis() - time > 2000)
 +
  {
 +
    if (!digitalRead(pushButton))
 +
      shock = false;
 +
    time = millis();
 +
  }
  
==搭建硬件==
+
  //  Serial.println(shock);
*Setup 1:将CoreUSB接到电脑。打开示例程序,选择好板卡和串口下载程序。
+
  if (shock)
 +
  {
 +
    for (int j = 0; j < 2; j++)
 +
      buzzer();
 +
  }
 +
  else
 +
    noTone(speakPin);
 +
}
  
*Setup 2:将所有CoreUSB与Sensorhub叠加。
+
void buzzer()
[[File: shock_alarm_setup_1.jpg|600px|center|thumb]]
+
{
*Setup3:将震动传感器接到接到Sensorhub的D4引脚上,蜂鸣器接到D6引脚上。
+
  for (int i = 200; i <= 800; i++)
[[file:Microduino-sensorhub_rule.JPG|thumb|800px|center]]
+
  {
[[file: shock_alarm_setup_2.jpg |thumb|800px|center]]
+
    tone(speakPin, i);
*Setup4:将电池接到BM上
+
    delay(5);
[[file: shock_alarm_bm.JPG|thumb|800px|center]]
+
  }
 +
  delay(1000);
 +
  for (int i = 800; i >= 200; i--)
 +
  {
 +
    tone(speakPin, i);
 +
    delay(10);
 +
  }
 +
}
 +
</source>
 +
*选择正确的板卡和COM端口
 +
[[file:upload.JPG|600px|center]]
 +
*编译
 +
**编译时会提示保存项目,用户可以自己命名保存到你的文件夹即可。
 +
*下载
 +
**编译成功后可以直接下载,提示下载成功表示程序下载完毕。
 +
[[file:upload-shock.JPG|600px|center]]
 +
*当有震动时,蜂鸣器循环发出两次报警音频。
  
 
==软件调试==
 
==软件调试==

2017年5月31日 (三) 08:43的最新版本

Language English

目的

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

原理

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

设备

模块 数量 功能
mCookie-CoreUSB/zh 1 核心板
mCookie-Hub/zh 1 传感器转接板
Microduino-BUZZER/zh 1 蜂鸣器
Sensor-Shake/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);

结果

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

视频