“蜂鸣器”的版本间的差异
(→程序) |
853387039@qq.com(讨论 | 贡献) |
||
第1行: | 第1行: | ||
+ | {{Language| 蜂鸣器}} | ||
{| style="width: 800px;" | {| style="width: 800px;" | ||
|- | |- | ||
第4行: | 第5行: | ||
==目的== | ==目的== | ||
− | + | 本教程将通过三个案例介绍如何使用Microduino蜂鸣器。 | |
+ | [[File:MicroduinoBuzzer.jpg|600px|center]] | ||
==设备== | ==设备== | ||
第10行: | 第12行: | ||
*'''[[Microduino-BUZZER/zh]]''' | *'''[[Microduino-BUZZER/zh]]''' | ||
*'''[[Microduino-Sensorhub/zh]]''' | *'''[[Microduino-Sensorhub/zh]]''' | ||
− | |||
− | |||
− | |||
− | |||
*其他硬件设备 | *其他硬件设备 | ||
**USB数据连接线 一根 | **USB数据连接线 一根 | ||
+ | [[File:MicroduinoBuzzer-Equipment.jpg|600px|center]] | ||
+ | ==简介== | ||
+ | 一般蜂鸣器分为有源蜂鸣器和无源蜂鸣器。Microduino蜂鸣器采用的是无源蜂鸣器。 | ||
+ | *有源蜂鸣器 | ||
+ | **内部有振荡、驱动电路。加电压信号(高电平)就可以响。 | ||
+ | ***优点:是用起来方便。 | ||
+ | ***缺点:频率固定了,就只一个单音。 | ||
+ | *无源蜂鸣器 | ||
+ | **无源内部不带震荡源,用直流信号无法令其鸣叫。必须用变化的电源信号才能驱动它。 | ||
+ | ***优点:声音频率可控,可以做出“多来米发索拉西”的效果。 | ||
+ | ***缺点:控制稍微复杂。 | ||
− | == | + | ==实验一:让蜂鸣器响起来== |
− | + | ===搭建模块电路=== | |
− | + | *Setup 1:用连接线将传感器安装到Hub模块的相应接口(6)上。 | |
− | [[ | + | [[File:MicroduinoBuzzer-D6.jpg|600px|center]] |
− | + | *Setup 2:将Hub模块与CoreUSB模块无上下顺序叠加起来。 | |
− | + | [[File:MicroduinoBuzzer-hub-coreusb.jpg|600px|center]] | |
− | |||
− | |||
− | |||
− | [[File: | ||
+ | ===调试=== | ||
+ | *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"> | ||
+ | #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毫秒 | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | “for(int i=200;i<=800;i++)”说明:i的值开始为200,然后for函数执行一次i的值加1,直到i大于800时才退出for循环。用户可以更改相关参数观察蜂鸣器有啥变化。 | ||
+ | <br>实验采用用for循环的方式来更改频率,从而持续发出不同的声音,达到了报警的效果。 | ||
− | + | ==实验三:播放歌曲== | |
− | |||
− | |||
+ | *程序代码 | ||
+ | <source lang="cpp"> | ||
+ | #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); | ||
+ | } | ||
+ | }</source> | ||
+ | “song_play()”为播放音乐函数,“song[]”里面存放音调(频率),“noteDurations[]”为节拍。 | ||
+ | <br>音乐由tone()函数控制,改动该函数即可改变音乐旋律,代码有两种形式分别为:tone(pin, frequency, duration)或tone(pin, frequency) | ||
+ | <br>第一个函数中,pin代表连接扬声器的管脚,frequency代表发声频率,duration代表持续的时间,单位是毫秒。 | ||
+ | <br>如果用第二个函数,则还需另外的noTone()函数来控制音乐的停止noTone(pin)。 | ||
+ | *将激活后的电池盒与BM模块相连,将所有模块堆叠在一起,顺序随意,搭建完成。 | ||
+ | [[File:MicroduinoBuzzer-Equipment-ok.jpg|600px|center]] | ||
|} | |} |
2015年10月20日 (二) 05:30的版本
Language | English |
---|
目的本教程将通过三个案例介绍如何使用Microduino蜂鸣器。 设备
简介一般蜂鸣器分为有源蜂鸣器和无源蜂鸣器。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[]”为节拍。
|