只需一步,快速开始
签到天数: 867 天
[LV.10]以坛为家III
UNO 实验套装(UNO R3控制板、USB数据线、面包板、跳线)
无源蜂鸣器 一个
登录/注册后可看大图 蜂鸣器.jpg (41.02 KB, 下载次数: 147) 下载附件 2013-5-20 08:35 上传 注意:这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫;而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫,必须用2K-5K的方波去驱动它;有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。 我们使用的是无源蜂鸣器,它通电之后是无法工作的,我们必须提供一定的频率才能让它发声;程序控制就会比有源蜂鸣器复杂一点。 它也有很多优点:1. 便宜 2. 声音频率可控,可以做出“多来米发索拉西”的效果 3. 在一些特例中,可以和LED复用一个控制口下面我们看下我们的电路图: 登录/注册后可看大图 蜂鸣器实验.jpg (68.38 KB, 下载次数: 154) 下载附件 2013-8-15 19:43 上传 电路很简单,而且我们也不用关心它的极性问题,以为它不分正负极,有源蜂鸣器分正负极,很多无源蜂鸣器封装上都会标有极性,是为了生产方便。 好了,电路完成我们就要将程序上传到控制板中:/* 蜂鸣器模拟发声实验 使用tone()函数产生声音,模拟防控警报的响声 */ #define BUZZER 13 //定义蜂鸣器引脚为D13 int i; //定义变量i void setup() { pinMode(BUZZER,OUTPUT); } void loop(){ for( i=200;i <= 800;i++) //将频率从200HZ 增加到800HZ { tone(BUZZER,i); //在D9口输出频率 delay(5); //该频率维持5毫秒 } delay(4000); //最高频率下维持4秒钟 for( i=800;i >= 200;i--) //将频率从800HZ 减小到200HZ { tone(BUZZER,i); //在D9口输出频率 delay(10); //该频率维持10毫秒 } }复制代码我们的程序很简单,模仿报警器的声音,试试效果吧!程序中我们还是用了tone()函数:tone(pin, frequency)tone(pin, frequency, duration)参数pin:要产生声音的引脚frequency: 产生声音的频率,单位Hz,类型unsigned intduration:声音持续的时间,单位毫秒(可选),类型unsigned long扩展阅读(DIY唱歌)下面给出的是网上的牛人们写的超级玛丽的程序:/* Play Super Mario theme song with Arduino and speaker circuit: * 8-ohm speaker on digital pin 8 reference: http://arduino.cc/en/Tutorial/Tone */ #include "pitches.h" // notes in the melody: int melody[] = { NOTE_E4, NOTE_E4, NOTE_E4, NOTE_C4, NOTE_E4, NOTE_G4, NOTE_G3, NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3, NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_C5, NOTE_C5, NOTE_C5, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_DS4, NOTE_D4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3 }; // note durations: 4 = quarter note, 8 = eighth note, etc.: int noteDurations[] = { 8,4,4,8,4,2,2, 3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,3, 3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,2, 8,8,8,4,4,8,8,4,8,8,3,8,8,8,4,4,4,8,2, 8,8,8,4,4,8,8,4,8,8,3,3,3,1, 8,4,4,8,4,8,4,8,2,8,4,4,8,4,1, 8,4,4,8,4,8,4,8,2 }; void setup() { // iterate over the notes of the melody: for (int thisNote = 0; thisNote < 98; thisNote++) { // to calculate the note duration, take one second // divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000/noteDurations[thisNote]; tone(8, melody[thisNote],noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(8); } } void loop() { // no need to repeat the melody. }复制代码 Super_Mario.zip (1.6 KB, 下载次数: 421) 2013-5-20 09:04 上传 点击文件名下载附件 超级玛丽程序 下载进去后,是不是很过瘾,想要DIY?? 如果想要DIY的转看:http://www.yfrobot.com.cn/thread-2269-1-1.html,教你如何编写自己想要的歌曲!
蜂鸣器.jpg (41.02 KB, 下载次数: 147)
下载附件
2013-5-20 08:35 上传
1. 便宜
2. 声音频率可控,可以做出“多来米发索拉西”的效果
3. 在一些特例中,可以和LED复用一个控制口
登录/注册后可看大图 蜂鸣器实验.jpg (68.38 KB, 下载次数: 154) 下载附件 2013-8-15 19:43 上传 电路很简单,而且我们也不用关心它的极性问题,以为它不分正负极,有源蜂鸣器分正负极,很多无源蜂鸣器封装上都会标有极性,是为了生产方便。 好了,电路完成我们就要将程序上传到控制板中:/* 蜂鸣器模拟发声实验 使用tone()函数产生声音,模拟防控警报的响声 */ #define BUZZER 13 //定义蜂鸣器引脚为D13 int i; //定义变量i void setup() { pinMode(BUZZER,OUTPUT); } void loop(){ for( i=200;i <= 800;i++) //将频率从200HZ 增加到800HZ { tone(BUZZER,i); //在D9口输出频率 delay(5); //该频率维持5毫秒 } delay(4000); //最高频率下维持4秒钟 for( i=800;i >= 200;i--) //将频率从800HZ 减小到200HZ { tone(BUZZER,i); //在D9口输出频率 delay(10); //该频率维持10毫秒 } }复制代码我们的程序很简单,模仿报警器的声音,试试效果吧!程序中我们还是用了tone()函数:tone(pin, frequency)tone(pin, frequency, duration)参数pin:要产生声音的引脚frequency: 产生声音的频率,单位Hz,类型unsigned intduration:声音持续的时间,单位毫秒(可选),类型unsigned long扩展阅读(DIY唱歌)下面给出的是网上的牛人们写的超级玛丽的程序:/* Play Super Mario theme song with Arduino and speaker circuit: * 8-ohm speaker on digital pin 8 reference: http://arduino.cc/en/Tutorial/Tone */ #include "pitches.h" // notes in the melody: int melody[] = { NOTE_E4, NOTE_E4, NOTE_E4, NOTE_C4, NOTE_E4, NOTE_G4, NOTE_G3, NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3, NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_C5, NOTE_C5, NOTE_C5, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_DS4, NOTE_D4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3 }; // note durations: 4 = quarter note, 8 = eighth note, etc.: int noteDurations[] = { 8,4,4,8,4,2,2, 3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,3, 3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,2, 8,8,8,4,4,8,8,4,8,8,3,8,8,8,4,4,4,8,2, 8,8,8,4,4,8,8,4,8,8,3,3,3,1, 8,4,4,8,4,8,4,8,2,8,4,4,8,4,1, 8,4,4,8,4,8,4,8,2 }; void setup() { // iterate over the notes of the melody: for (int thisNote = 0; thisNote < 98; thisNote++) { // to calculate the note duration, take one second // divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000/noteDurations[thisNote]; tone(8, melody[thisNote],noteDuration); // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(8); } } void loop() { // no need to repeat the melody. }复制代码 Super_Mario.zip (1.6 KB, 下载次数: 421) 2013-5-20 09:04 上传 点击文件名下载附件 超级玛丽程序 下载进去后,是不是很过瘾,想要DIY?? 如果想要DIY的转看:http://www.yfrobot.com.cn/thread-2269-1-1.html,教你如何编写自己想要的歌曲!
蜂鸣器实验.jpg (68.38 KB, 下载次数: 154)
2013-8-15 19:43 上传
我们的程序很简单,模仿报警器的声音,试试效果吧!
程序中我们还是用了tone()函数:
tone(pin, frequency)
tone(pin, frequency, duration)
参数pin:要产生声音的引脚
frequency: 产生声音的频率,单位Hz,类型unsigned int
duration:声音持续的时间,单位毫秒(可选),类型unsigned long
扩展阅读(DIY唱歌)
下面给出的是网上的牛人们写的超级玛丽的程序:
使用道具 举报
签到天数: 4 天
[LV.2]偶尔看看I
签到天数: 22 天
[LV.4]偶尔看看III
签到天数: 13 天
[LV.3]偶尔看看II
本版积分规则 发表回复 回帖后跳转到最后一页
|小黑屋|联系我们|YFROBOT ( 苏ICP备20009901号-2 )
GMT+8, 2024-11-13 14:40 , Processed in 0.069273 second(s), 28 queries .
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.