“蜂鸣器报警”的版本间的差异
第83行: | 第83行: | ||
</source> | </source> | ||
“for(int i=200;i<=800;i++)”说明:i的值开始为200,然后for函数执行一次i的值加1,直到i大于800时才退出for循环。用户可以更改相关参数观察蜂鸣器有啥变化。 | “for(int i=200;i<=800;i++)”说明:i的值开始为200,然后for函数执行一次i的值加1,直到i大于800时才退出for循环。用户可以更改相关参数观察蜂鸣器有啥变化。 | ||
− | 实验采用用for循环的方式来更改频率,从而持续发出不同的声音,达到了报警的效果。 | + | <br>实验采用用for循环的方式来更改频率,从而持续发出不同的声音,达到了报警的效果。 |
==实验三:播放歌曲== | ==实验三:播放歌曲== | ||
第125行: | 第125行: | ||
}</source> | }</source> | ||
“song_play()”为播放音乐函数,“song[]”里面存放音调(频率),“noteDurations[]”为节拍。 | “song_play()”为播放音乐函数,“song[]”里面存放音调(频率),“noteDurations[]”为节拍。 | ||
− | 音乐由tone()函数控制,改动该函数即可改变音乐旋律,代码有两种形式分别为:tone(pin, frequency, duration)或tone(pin, frequency) | + | <br>音乐由tone()函数控制,改动该函数即可改变音乐旋律,代码有两种形式分别为:tone(pin, frequency, duration)或tone(pin, frequency) |
− | 第一个函数中,pin代表连接扬声器的管脚,frequency代表发声频率,duration代表持续的时间,单位是毫秒。 | + | <br>第一个函数中,pin代表连接扬声器的管脚,frequency代表发声频率,duration代表持续的时间,单位是毫秒。 |
− | 如果用第二个函数,则还需另外的noTone()函数来控制音乐的停止noTone(pin)。 | + | <br>如果用第二个函数,则还需另外的noTone()函数来控制音乐的停止noTone(pin)。 |
− | 将激活后的电池盒与BM模块相连,将所有模块堆叠在一起,顺序随意,搭建完成。 | + | *将激活后的电池盒与BM模块相连,将所有模块堆叠在一起,顺序随意,搭建完成。 |
[[File:MicroduinoBuzzer-Equipment-ok.jpg|600px|center]] | [[File:MicroduinoBuzzer-Equipment-ok.jpg|600px|center]] | ||
|} | |} |
2015年9月6日 (日) 14:34的版本
Language | English |
---|
目的本教程将通过三个案例介绍如何使用Microduino蜂鸣器。 设备
简介一般蜂鸣器分为有源蜂鸣器和无源蜂鸣器。
实验一:让蜂鸣器响起来搭建模块电路
调试
#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模块中了。 成功之后可以听到蜂鸣器发出响声了。
实验二:蜂鸣器报警
#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循环。用户可以更改相关参数观察蜂鸣器有啥变化。
实验三:播放歌曲
#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[]”为节拍。
|