“蜂鸣器报警”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(Created page with " {| style="width: 800px;" |- | ==目的== 本教程将教大家如何使用Microduino的蜂鸣器播放生日歌曲。 ==设备== *'''Microduino-CoreUSB/zh''' *'''Micr...")
 
第1行: 第1行:
 
+
{{Language| 蜂鸣器}}
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-
第5行: 第5行:
 
==目的==
 
==目的==
  
本教程将教大家如何使用Microduino的蜂鸣器播放生日歌曲。
+
本教程将通过三个案例介绍如何使用Microduino蜂鸣器。
 +
[[File:MicroduinoBuzzer.jpg|600px|center]]
  
 
==设备==
 
==设备==
第11行: 第12行:
 
*'''[[Microduino-BUZZER/zh]]'''
 
*'''[[Microduino-BUZZER/zh]]'''
 
*'''[[Microduino-Sensorhub/zh]]'''
 
*'''[[Microduino-Sensorhub/zh]]'''
 
 
*其他硬件设备
 
*其他硬件设备
 
**USB数据连接线  一根
 
**USB数据连接线  一根
 +
[[File:MicroduinoBuzzer-Equipment.jpg|600px|center]]
 +
 +
==简介==
 +
一般蜂鸣器分为有源蜂鸣器和无源蜂鸣器。
 +
*有源蜂鸣器
 +
**内部有振荡、驱动电路。加电压信号(高电平)就可以响。
 +
***优点:是用起来方便。
 +
***缺点:频率固定了,就只一个单音。
 +
*无源蜂鸣器
 +
**无源内部不带震荡源,用直流信号无法令其鸣叫。必须用变化的电源信号才能驱动它。
 +
***优点:声音频率可控,可以做出“多来米发索拉西”的效果。
 +
***缺点:控制稍微复杂。
 +
 +
==实验一:让蜂鸣器响起来==
 +
===搭建模块电路===
 +
*Setup 1:用连接线将传感器安装到Hub模块的相应接口(6)上。
 +
[[File:MicroduinoBuzzer-D6.jpg|600px|center]]
 +
*Setup 2:将Hub模块与CoreUSB模块无上下顺序叠加起来。
 +
[[File:MicroduinoBuzzer-hub-coreusb.jpg|600px|center]]
  
==蜂鸣器介绍==
+
===调试===
一般蜂鸣器分为有源蜂鸣器和无源蜂鸣器,有源蜂鸣器是有极性的,类似LED发光二极管,长引脚接VCC,短引脚接GND,连接好就可以连续发出声音;而无源蜂鸣器没有极性,有三个引脚,两个电源引脚和一个音频输入引脚,因此需要接在音频输出电路中才能发声。而本次实验,使用的Microduino的蜂鸣器是无源蜂鸣器。
+
*Setup 1:用USB线将CoreUSB模块与PC/Mac相连,并打开Arduino IDE。
 +
[[File:CoreUSB_Ble_pc.jpg|600px|center]]
 +
* Setup 2:加载代码,将程序代买拷贝到IDE中。
 +
<source lang="cpp">
 +
#define buzzer_pin 6 //定义蜂鸣器驱动引脚
 +
#define buzzer_fre 600 //定义蜂鸣器输出频率
  
==程序==
+
void setup()
*程序代码
+
{
 +
  pinMode(buzzer_pin,OUTPUT);
 +
}
 +
 +
void loop()
 +
{
 +
    tone(buzzer_pin,buzzer_fre);    //驱动蜂鸣器
 +
}
 +
</source>
 +
在工具的板卡中选择Microduino-Core USB,端口中选择好对应的端口号(COMXX)。点击向右的箭头(—>)下载程序,出现上传完成提示,程序就已经写进CoreUSB模块中了。
 +
成功之后可以听到蜂鸣器发出响声了。
 +
*“tone(pin,fre)”函数
 +
**指定引脚(pin)输出频率(fre)的信号。
 +
**用户可以更改buzzer_fre的值观察蜂鸣器有啥变化。
 +
==实验二:蜂鸣器报警==
 +
*将程序代重新拷贝到IDE中。并下载到Core板卡。
 
<source lang="cpp">
 
<source lang="cpp">
int song[] ={
+
#define buzzer_pin 6 //定义蜂鸣器驱动引脚
    262,262,294,262,349,330,
 
    262,262,294,262,392,349,
 
    262,262,523,440,349,330,294,
 
    494,494,440,349,392,349
 
};
 
 
 
int noteDurations[] = {
 
  4,4,2,2,2,1,
 
  4,4,2,2,2,1,
 
  4,4,2,2,2,2,2,
 
  4,4,2,2,2,1
 
};
 
  
void setup() {
+
void setup()
   for (int thisNote = 0; thisNote<25;thisNote++)
+
{
 +
  pinMode(buzzer_pin,OUTPUT);
 +
}
 +
 +
void loop()
 +
{
 +
   for(int i=200;i<=800;i++)  //用循环的方式将频率从200HZ 增加到800HZ
 +
  {
 +
    tone(buzzer_pin,i);    //在四号端口输出频率
 +
    delay(5);      //该频率维持5毫秒 
 +
  }
 +
  delay(2000);    //最高频率下维持2秒钟
 +
  for(int i=800;i>=200;i--)
 
   {
 
   {
    int noteDuration = 1000/noteDurations[thisNote];
+
     tone(buzzer_pin,i);
     tone(8, song[thisNote],noteDuration);
+
     delay(10); //该频率维持10毫秒 
    int pauseBetweenNotes = noteDuration *1.30;
 
     delay(pauseBetweenNotes);
 
    noTone(8);
 
 
   }
 
   }
}
 
void loop() {
 
  setup();
 
 
}
 
}
 
</source>
 
</source>
 +
“for(int i=200;i<=800;i++)”说明:i的值开始为200,然后for函数执行一次i的值加1,直到i大于800时才退出for循环。用户可以更改相关参数观察蜂鸣器有啥变化。
 +
实验采用用for循环的方式来更改频率,从而持续发出不同的声音,达到了报警的效果。
  
*函数说明
+
==实验三:播放歌曲==
Arduino板上产生的音乐由tone()函数控制,改动该函数即可改变音乐旋律,代码有两种形式分别为:tone(pin, frequency, duration)或tone(pin, frequency)
 
● 第一个函数中,pin代表连接扬声器的管脚,frequency代表发声频率,duration代表持续的时间,单位是毫秒。
 
● 如果用第二个函数,则还需另外的noTone()函数来控制音乐的停止noTone(pin)。
 
  
==调试==
+
*程序代码
 +
<source lang="cpp">
 +
#define buzzer_pin 6 //定义蜂鸣器驱动引脚
  
步骤一:
+
int song[] = {
把Microduino蜂鸣器插到Microduino-SensorHub的D8引脚。
+
  262, 262, 294, 262, 349, 330,
[[File:MicroduinoBuzzerSensor.png|600px|center|thumb]]
+
  262, 262, 294, 262, 392, 349,
 +
  262, 262, 523, 440, 349, 330, 294,
 +
  494, 494, 440, 349, 392, 349
 +
};
  
步骤二:
+
int noteDurations[] = {
用USB线连接电脑,下载代码并烧录到Microduino-CoreUSB中。
+
  4, 4, 2, 2, 2, 1,
[[File:MicroduinoBuzzerSensor1.png|600px|center|thumb]]
+
  4, 4, 2, 2, 2, 1,
 +
  4, 4, 2, 2, 2, 2, 2,
 +
  4, 4, 2, 2, 2, 1
 +
};
  
步骤三:
+
void setup() {
加电就会听到歌曲。
+
  pinMode(buzzer_pin, OUTPUT);
[[File:MicroduinoBuzzerSensor2.png|600px|center|thumb]]
+
}
 +
 
 +
void loop() {
 +
  song_play();
 +
}
  
==结果==
+
void song_play()
 +
{
 +
  for (int thisNote = 0; thisNote < 25; thisNote++)
 +
  {
 +
    int noteDuration = 1000 / noteDurations[thisNote];
 +
    tone(buzzer_pin, song[thisNote], noteDuration);
 +
    int pauseBetweenNotes = noteDuration * 1.20;
 +
    delay(pauseBetweenNotes);
 +
    noTone(buzzer_pin);
 +
  }
 +
}</source>
 +
“song_play()”为播放音乐函数,“song[]”里面存放音调(频率),“noteDurations[]”为节拍。
 +
音乐由tone()函数控制,改动该函数即可改变音乐旋律,代码有两种形式分别为:tone(pin, frequency, duration)或tone(pin, frequency)
 +
第一个函数中,pin代表连接扬声器的管脚,frequency代表发声频率,duration代表持续的时间,单位是毫秒。
 +
如果用第二个函数,则还需另外的noTone()函数来控制音乐的停止noTone(pin)。
 +
将激活后的电池盒与BM模块相连,将所有模块堆叠在一起,顺序随意,搭建完成。
 +
[[File:MicroduinoBuzzer-Equipment-ok.jpg|600px|center]]
  
你可以通过蜂鸣器来播放音乐了。
+
|}

2015年9月6日 (日) 14:30的版本

Language English

目的

本教程将通过三个案例介绍如何使用Microduino蜂鸣器。

设备

简介

一般蜂鸣器分为有源蜂鸣器和无源蜂鸣器。

  • 有源蜂鸣器
    • 内部有振荡、驱动电路。加电压信号(高电平)就可以响。
      • 优点:是用起来方便。
      • 缺点:频率固定了,就只一个单音。
  • 无源蜂鸣器
    • 无源内部不带震荡源,用直流信号无法令其鸣叫。必须用变化的电源信号才能驱动它。
      • 优点:声音频率可控,可以做出“多来米发索拉西”的效果。
      • 缺点:控制稍微复杂。

实验一:让蜂鸣器响起来

搭建模块电路

  • Setup 1:用连接线将传感器安装到Hub模块的相应接口(6)上。
  • Setup 2:将Hub模块与CoreUSB模块无上下顺序叠加起来。

调试

  • Setup 1:用USB线将CoreUSB模块与PC/Mac相连,并打开Arduino IDE。
  • Setup 2:加载代码,将程序代买拷贝到IDE中。
#define buzzer_pin 6 //定义蜂鸣器驱动引脚
#define buzzer_fre 600 //定义蜂鸣器输出频率

void setup()
{
  pinMode(buzzer_pin,OUTPUT);
}
 
void loop()
{
    tone(buzzer_pin,buzzer_fre);    //驱动蜂鸣器
}

在工具的板卡中选择Microduino-Core USB,端口中选择好对应的端口号(COMXX)。点击向右的箭头(—>)下载程序,出现上传完成提示,程序就已经写进CoreUSB模块中了。 成功之后可以听到蜂鸣器发出响声了。

  • “tone(pin,fre)”函数
    • 指定引脚(pin)输出频率(fre)的信号。
    • 用户可以更改buzzer_fre的值观察蜂鸣器有啥变化。

实验二:蜂鸣器报警

  • 将程序代重新拷贝到IDE中。并下载到Core板卡。
#define buzzer_pin 6 //定义蜂鸣器驱动引脚

void setup()
{
  pinMode(buzzer_pin,OUTPUT);
}
 
void loop()
{
  for(int i=200;i<=800;i++)  //用循环的方式将频率从200HZ 增加到800HZ
  {
    tone(buzzer_pin,i);    //在四号端口输出频率
    delay(5);      //该频率维持5毫秒   
  }
  delay(2000);     //最高频率下维持2秒钟
  for(int i=800;i>=200;i--)
  {
    tone(buzzer_pin,i);
    delay(10); //该频率维持10毫秒   
  }
}

“for(int i=200;i<=800;i++)”说明:i的值开始为200,然后for函数执行一次i的值加1,直到i大于800时才退出for循环。用户可以更改相关参数观察蜂鸣器有啥变化。 实验采用用for循环的方式来更改频率,从而持续发出不同的声音,达到了报警的效果。

实验三:播放歌曲

  • 程序代码
#define buzzer_pin 6 //定义蜂鸣器驱动引脚

int song[] = {
  262, 262, 294, 262, 349, 330,
  262, 262, 294, 262, 392, 349,
  262, 262, 523, 440, 349, 330, 294,
  494, 494, 440, 349, 392, 349
};

int noteDurations[] = {
  4, 4, 2, 2, 2, 1,
  4, 4, 2, 2, 2, 1,
  4, 4, 2, 2, 2, 2, 2,
  4, 4, 2, 2, 2, 1
};

void setup() {
  pinMode(buzzer_pin, OUTPUT);
}

void loop() {
  song_play();
}

void song_play()
{
  for (int thisNote = 0; thisNote < 25; thisNote++)
  {
    int noteDuration = 1000 / noteDurations[thisNote];
    tone(buzzer_pin, song[thisNote], noteDuration);
    int pauseBetweenNotes = noteDuration * 1.20;
    delay(pauseBetweenNotes);
    noTone(buzzer_pin);
  }
}

“song_play()”为播放音乐函数,“song[]”里面存放音调(频率),“noteDurations[]”为节拍。 音乐由tone()函数控制,改动该函数即可改变音乐旋律,代码有两种形式分别为:tone(pin, frequency, duration)或tone(pin, frequency) 第一个函数中,pin代表连接扬声器的管脚,frequency代表发声频率,duration代表持续的时间,单位是毫秒。 如果用第二个函数,则还需另外的noTone()函数来控制音乐的停止noTone(pin)。 将激活后的电池盒与BM模块相连,将所有模块堆叠在一起,顺序随意,搭建完成。