《Arduino实战》——3.3 制作一架五声音阶电子琴

简介:

本节书摘来异步社区《Arduino实战》一书中的第3章,第3.3节,作者:【美】Martin Evans ,Joshua Noble ,Jordan Hochenbaum,更多章节内容可以访问云栖社区“异步社区”公众号查看

3.3 制作一架五声音阶电子琴

Arduino实战
五声音阶,英文pentatonic,它由penta(意思是“五”)和tonic(意思是“音阶”)组成。五声音阶每个八度由5个音符组成,与之相比,七声音阶每个八度则由7个音符组成。五声音阶在世界范围内广为流传并在不同类型和风格的音乐中得以应用,其中包括布鲁斯音乐、凯尔特音乐、爵士乐和古希腊音乐1。五声音阶是儿童音乐入门的理想选择。它的简单性和易用性,使其很容易快速创作出可辨认的曲调,因此许多儿歌都是基于五声音阶的。

下面就要来搭建本章的最后一个项目了,你要向电路中再添加另外4个压电换能器,这总共5个压电换能器将用做5个琴键。敲不同的键时,扬声器就会产生不同的音阶,也就是不同的音符——这就是一架五声音阶电子琴。

3.3.1 电路图

每个新加的压电换能器都需要并联一个1 MΩ电阻和一个稳压二极管,正如你使用的第一个压电换能器一样。完整的电路图如图3-15所示。添加这些元件后它显得有点复杂,但只是把图3-9中的电路重复了几次而已。

电路图中有5个压电换能器,每个都与一个电阻和一个二极管并联。使用模拟输入引脚A0~A4作为Arduino的输入。

现在就可以把硬件连接到一起了。

d4ad5e31caf1bffecdd23ea7df5b3f77016426d1

3.3.2 连接硬件

将额外的压电换能器、电阻和二极管添加到面包板上。要特别注意压电换能器和稳压二极管的方向。如图3-16所示,可以使用面包板上的一个横条作为公共的地线。

acc0bdc576187bd7aaebf927574d34fa7d2db12a

在面包板上完成所有元件的组装之后,最好再检查一下每个压电换能器是否已经正确连接。可以将代码清单3-3中的程序写入到Arduino,然后敲击连接到模拟输入端A0的换能器,看扬声器是否能发出声音。如果没有发出声音,请再次确认所有的连接都正确,在面包板上很容易将元件插入错误的孔中,因为现在面包板拥挤了许多。还要检查一下稳压二极管的方向和压电换能器的极性。

当一切都工作正常后,你可以每次对程序做一点小修改,来测试下一个换能器。修改程序最顶部的传感器引脚的值,将sensorPin = 0改成sensorPin = 1。

将修改过的程序写入到Arduino,即可测试连接到模拟输入端A1的压电换能器。当这个压电换能器受到敲击时,扬声器应会发声。

重复这个过程,通过每次修改sensorPin的值来测试另外3个换能器。一旦所有的压电换能器都通过了测试,你就可以开始编写五声音阶电子琴的程序了。

3.3.3 制作一架五声音阶电子琴的程序

下列代码清单给出了五声音阶电子琴的程序。你可以在原有代码的基础上修改,也可以创建一个新的程序然后输入以下代码。

代码清单3-4 五声音阶电子琴程序

2a152d8a5e7573c4f3fb349ef3a1a2f97b468948

这个程序将音符的频率装入了音阶数组,这些音阶基于五声音阶的中央C大调。

C=262 Hz
D=294 Hz
E=330 Hz
G=392 Hz
A=440 Hz
主循环轮流测试每个模拟输入端的值。当检测到一个压电换能器受到敲击,并且强度超过了阈值时,相应的音阶就会通过扬声器播放10 ms。

注意 在这个程序中,阈值被设定为50。之前使用的值是200,但我们发现在实际测试中,有一个压电换能器需要比其他的敲得更用力些才行,所以我们将阈值降到了50,让这些琴键变得更灵敏一些。
所有的代码都输入完成后,用一个好记的名字将它保存。接下来就要烧写程序并测试五声音阶电子琴了。你甚至可能会想用它弹奏几个曲子。

3.3.4 烧写和测试

校验这个程序使其通过编译。完成后,将Arduino连接到你的计算机为其写入程序。现在,可以通过敲击每个换能器来测试是否一切正常,要确保每个琴键都能发出一个不同的声音。尝试弹奏几个简单的曲子。它的声音可能会有点走调,因为只使用了一个小型的扬声器,但你确实制作了自己的电子琴。

还可通过修改装载到音阶数组中的频率值来改变这些音符。你可以尝试用下列数值来演奏五声音阶的C小调。

C=262 Hz
E=311 Hz
F=349 Hz
G=392 Hz
B=466 Hz
通过为音阶数组装载不同的频率值,可以创作出各种不同的声音和曲调。

现在最重要的事情是玩得开心和炫耀你的新创造了。使用五声音阶的大调,尝试演奏下列旋律。

看看你能否辨别出这些曲调,如果能让别人也辨别出来,那就更好了。

1.GGAGCB GGAGDC——提示:每个人每年都会听到。

2.CDECCDEC EFG EFG——歌曲French brother2。

3.CCGGAAG FFEEDC——歌曲Heavenly3。

现在可以尝试自己创作一些旋律。使用五声音阶的好处之一就是相对容易创作出一些悦耳的旋律。

相关文章
|
4月前
|
Java 应用服务中间件 定位技术
雷电飞机大战游戏|基于Java开发实现雷电飞机大战游戏
雷电飞机大战游戏|基于Java开发实现雷电飞机大战游戏