arduino蜂鸣器音乐代码青花瓷_Arduino编程教程(四)

前几天周末大家闲着没少听过歌曲吧da020d3377cc96cbb2a71dcddec3e5b4.gifda020d3377cc96cbb2a71dcddec3e5b4.gifda020d3377cc96cbb2a71dcddec3e5b4.gif

歌曲对我们大家来说有莫大的吸引力,那么今天,我就来教大家自己编制一首音乐。

fe8d9d38e56447fb30e4974462444efd.giffe8d9d38e56447fb30e4974462444efd.giffe8d9d38e56447fb30e4974462444efd.gif

1069ae6dddefea3a5e46a3ce7518daef.png

首先,我们先来了解一下今天的主角“无缘蜂鸣器b590ffe1fc8c709805f94aa8d1488b06.gifb590ffe1fc8c709805f94aa8d1488b06.gifb590ffe1fc8c709805f94aa8d1488b06.gif,什么叫无缘蜂鸣器呢?就是可以通过你写的代码传送上去,播放各种各样的声音,但是并不能像我们歌曲那样可以听到人在唱歌,无缘蜂鸣器只能播放出歌曲的旋律。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Arduino中,使用蜂鸣器播放音乐需要设置音调和音长。对于周杰伦的《青花瓷》,可以根据乐谱将每个音符的音调和音长转化为对应的数字。 例如:C4代表中央C音,1代表1个四分之一拍,2代表2个四分之一拍,以此类推。 下面是一份可以播放《青花瓷》的Arduino代码: int melody[] = {659,587,659,698,659,587,494,523,440,494,523,587,494,523,659,587,659,698,659,587,494,523,440,494,523,587,659,880,784,523,659,587,494,523}; int noteDurations[] = {4,4,2,2,2,1,3,1,4,4,2,2,2,1,4,4,2,2,2,1,3,1,4,4,2,2,4,4,4,3,1,4,4,2,2}; void playTone(int tone, int duration) { for (long i = 0; i < duration * 1000L; i += tone * 2) { digitalWrite(8, HIGH); delayMicroseconds(tone); digitalWrite(8, LOW); delayMicroseconds(tone); } } void playNote(int note, int duration) { int tone = 0; switch(note) { case 440: tone = 2273; break; case 494: tone = 2024; break; case 523: tone = 1911; break; case 587: tone = 1702; break; case 659: tone = 1517; break; case 698: tone = 1432; break; case 784: tone = 1275; break; case 880: tone = 1136; break; } playTone(tone, duration); } void setup() { pinMode(8, OUTPUT); } void loop() { for (int i = 0; i < 34; i++) { playNote(melody[i], noteDurations[i]); delay(noteDurations[i] * 10); } } 可以将代码复制到Arduino开发环境中,将音乐用线连接到数字引脚8,然后上传代码即可播放《青花瓷》。 ### 回答2: 在Arduino编程中,使用蜂鸣器播放音乐是一个有趣而受欢迎的项目。本文将介绍如何使用Arduino Uno和蜂鸣器播放青花瓷音乐。 要播放音乐,我们需要使用频率和时长。在这个代码中,我们定义了每个音符的频率和节奏。青花瓷的音符乐谱可以在网上找到。 我们将使用tone()函数来控制蜂鸣器的频率和时长。下面是完整的代码: int melody[] = { 494, 587, 659, 587, 494, 440, 494, 294, 392, 440, 494, 294, 330, 494, 587, 659, 587, 494, 440, 494, 294, 392, 440, 494, 294, 330, 440, 392, 494, 440, 392, 349 }; int noteDurations[] = { 4, 4, 4, 4, 4, 2, 2, 4, 4, 4, 4, 2, 2, 4, 4, 4, 4, 4, 2, 2, 4, 4, 4, 4, 2, 2, 4, 4, 4, 4, 2, 2 }; void setup() { pinMode(8, OUTPUT); } void loop() { for (int i = 0; i < sizeof(melody) / sizeof(melody[0]); i++) { int duration = 1000 / noteDurations[i]; tone(8, melody[i], duration); int pauseBetweenNotes = duration * 1.30; delay(pauseBetweenNotes); noTone(8); } } 代码中的melody[]数组定义了青花瓷的音符。 noteDurations[]数组定义了每个音符的持续时间。在setup()函数中,我们将8号引脚设置为输出。在循环中,使用for循环遍历每个音符,并使用tone()函数以该音符的频率和持续时间播放蜂鸣器。 为了避免音符之间的太快速的转换,我们使用pauseBetweenNotes变量来在每个音符之间添加短暂的停顿。最后,我们使用noTone()函数停止蜂鸣器的运行。 这是一个简单的例子来使用Arduino蜂鸣器深入探索音乐的疯狂世界。 ### 回答3: 以下是Arduino蜂鸣器音乐代码青花瓷: 首先,需要在Arduino程序中导入tone库。此后,定义频率和时值。对于这首歌,我们可以使用以下频率和时值: int frequencies[] = {262, 294, 330, 349, 392, 440, 494, 523}; int durations[] = {4, 8, 4, 4, 8, 4, 4, 4, 4, 4, 4, 8, 4, 8, 4, 4, 1, 4, 8, 4, 4, 8, 4, 4, 4, 4, 4, 4, 8, 4, 8, 4, 4, 1, 8, 8, 8, 2, 4, 8, 8, 8, 8, 4, 4, 8, 4, 8, 4, 4, 1, 4, 8, 4, 4, 8, 4, 4, 4, 4, 4, 4, 8, 4, 8, 4, 4, 1, 8, 8, 8, 2, 4, 8, 8, 8, 8, 4, 4, 8, 4, 8, 4, 4}; 接下来,在Arduino程序中,我们需要定义一个函数,将频率和时值转化为对应的蜂鸣器输出。 void playTone(int tone, int duration) { for (long i = 0; i < duration * 1000L; i += tone * 2) { digitalWrite(8, HIGH); delayMicroseconds(tone); digitalWrite(8, LOW); delayMicroseconds(tone); } } 最后,在主循环中,我们可以使用for循环和playTone函数来播放青花瓷的旋律。 for (int i = 0; i < 71; i++) { playTone(frequencies[i % 8], durations[i]); delay(durations[i] * 1.30); } 这个程序可以在Arduino上编译并上传,然后连接蜂鸣器,即可播放出青花瓷的旋律。注意调整tone和delay的值以达到最佳效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值