【Arduino】用Arduino编首小曲子吧

网友投稿 2019-10-21 13:56

      本次我们需要用的材料不多,一块UNO板,一块扩展板,一个喇叭模块再加一张乐谱。主要的核心内容是我们用arduino来编写音乐的部分。

      编写音乐,首先我们一定要知道其中的乐理知识,知道音乐是怎样编排的,然后我们用代码的形式来将它表达出来。

      今天我们用了《虫儿飞》这首歌。

https://cdn.china-scratch.com/timg/191023/1356251c6-0.jpg

      一首歌里面有若干个音符组成,音符有自己的演奏时间,音符节奏分为一拍、半拍、1/4拍、1/8拍。

      在这里我们规定一拍音符的时间为1;半拍为0.5;1/4拍为0.25;1/8拍为0.125……,我们可以为每个音符赋予这样的拍子播放出来,音乐就成了!

      这里有个音符频率表供大家进行参考:

https://cdn.china-scratch.com/timg/191023/1356251508-1.jpg

      表中的三位数表示的就是音符对应的喇叭频率啦。

https://cdn.china-scratch.com/timg/191023/1356262212-2.jpg

根据前面音符表的频率的提示,我们就可以清楚的知道音符所对应的频率。

在代码部分,首先我们先定义一下,将音符和频率值对应起来。

eg:#define NOTE_D0 -1

#define NOTE_D1 294

#define NOTE_DL1 147

#define NOTE_DL2 165

#define NOTE_DH1 589

#define NOTE_DH2 661

https://cdn.china-scratch.com/timg/191023/1356262212-2.jpg

定义一个true序列,放入曲子的音符部分。

https://cdn.china-scratch.com/timg/191023/13562B4D-4.jpg

定义一个duration序列,放入曲子的拍子部分。

https://cdn.china-scratch.com/timg/191023/13562AG5-5.jpg

编写一段循环语句,依次播放序列中的每个数组。

https://cdn.china-scratch.com/timg/191023/1356263315-6.jpg

https://cdn.china-scratch.com/timg/191023/13562A2S-7.jpghttps://cdn.china-scratch.com/timg/191023/1356262212-2.jpg

     而Arduino UNO板子上我们只需要简单的连接一下即可。在代码中我们连接的是8号针脚,板子上对应连接8号,一条线连接S,一条线连接VCC就可以完成啦。

https://cdn.china-scratch.com/timg/191023/13562I419-9.jpg

      我们将电源插上,上传程序,很快它就开始播放《虫儿飞》这首歌了。

附:简谱的相关知识普及:https://zhidao.baidu.com/question/442644842.html

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com