鼓掌热度仪

来自Microduino Wikipedia
跳转至: 导航搜索
Language English

目的

检测鼓掌声音,声音持续时间越长,灯光亮度越强。当灯到最亮时,蜂鸣器报警提醒。

原理

通过MIC声音检测传感器来检测鼓掌声音大小,当超过预设的声音大小时,开始计数,时间越长数据越大,与此同时灯光的颜色也越来越亮了。当达到一定值的时候,灯光亮度达到最大值,蜂鸣器开始报警。同时系统隔3S检测声音,当无声音是,关闭灯光和蜂鸣器报警。

设备

模块 数量 功能
mCookie-CoreUSB/zh 1 核心板
mCookie-Hub/zh 1 传感器转接板
Microduino-Sound/zh 1 声音检测传感器
Microduino-Color led/zh 1 led彩灯传感器
Microduino-BUZZER/zh 1 蜂鸣器传感器
Microduino-BM/zh 1 电池管理

准备

  • Setup 1:用USB线将CoreUSB模块与PC/Mac相连,并打开Arduino IDE。
  • Setup 2:下载程序,将程序用IDE打开,或者直接拷贝到:Applause_heat
  • Setup 3:加载代码,程序编译通过后选择好板卡和COM端口下载程序。

程序说明

  • 控制引脚定义,彩灯接到D4,MIC声音传感器接到A0,蜂鸣器接到6。用户可以自己改。
#define PIN 4

Adafruit_NeoPixel strip = Adafruit_NeoPixel(6, PIN, NEO_GRB + NEO_KHZ800);

#define mic_pin A0
#define buzzer_pin 6
  • 声音大小的预设值,大于这个值系统认为为噪音,用户可以自己更改。
  #define voice 400
  • 如果声音大小大于预设值,颜色亮度一直增加,当颜色值达到最大值,蜂鸣器响。可以改变“255”的值观察会发生什么现象。
  if (voice_data > voice)
  {
    num++;
    if (num > 255)
    {
      num = 255;
      buzzer();
    }
    colorWipe(strip.Color(num, 0, 0));
    //delay(10);
    Serial.println(num);
    time = millis();
  }
  • 定时3S检测声音是否为噪音,若无则关闭灯光和蜂鸣器。
  if (millis() - time > 3000 )
  {
    voice_data = analogRead(mic_pin);
    if (voice_data < voice)
    {
      colorWipe(strip.Color(0, 0, 0));
      num = 10;
      noTone(buzzer_pin);
    }
    time = millis();
  }

搭建硬件

  • Setup 1:将BUZZER蜂鸣器接到Sensorhub的D6引脚上,将Colorled led彩灯接到D4,将MIC声音传感器接到A0引脚。
  • Setup 2:将激活后的电池盒与BM模块相连.
CoreUSB Ble steup2.jpg
  • Setup 3:将所有模块堆叠在一起,顺序随意,电路部分搭建完成。
  • Setup 4:制作你的乐高鼓掌热度仪。

如果模块不能正常工作,请尝试断开并重新连接电源。

结果

鼓掌声音越大,灯光亮度越强,当灯到最亮时,蜂鸣器报警提醒。当声音低于预设值,延时3S关闭灯光和蜂鸣器。你也可以通过乐高搭建一个漂亮的外观。

视频