友情提示:380元/半年,儿童学编程,就上码丁实验室。
对于那些没有电子知识背景的人来说,Arduino开发板是一个轻松制作小产品的福音。它是一个强大的原型制作工具,并且尝试一些很酷的东西,在本篇文章中我们将使用Arduino开发板构建一个小而有趣的钢琴。这款钢琴只有8个按钮和一个蜂鸣器。它使用Arduino的tone()函数在扬声器上创建各种类型的钢琴音符。为了使它更有趣,我们在项目中添加了录制功能,这使我们能够播放曲目并在需要时重复播放。听起来很有趣!!所以让我们一起开始制作……
所需材料:
● Arduino Uno开发板
● LCD显示屏1602
● 蜂鸣器
● 电位器10k
● SPDT开关
● 按钮(8个)
● 电阻
● 面包板
● 连接导线
电路原理图:
完整的Arduino钢琴项目可以在面包板上使用一些连接线来构建。使用fritzing制作的电路图显示了项目的面包板视图如下所示:

只需按照电路图并相应地连接导线,按钮和蜂鸣器与PCB模块一起使用,但在实际硬件中我们只使用了开关和蜂鸣器,因为它们具有相同类型的引脚,所以不应该太多混淆。您还可以参考下面的硬件图像来建立连接。

左侧电阻的值按以下顺序排列,10k,560R,1.5k,2.6k,3.9,5.6k,6.8k,8.2k和10k。如果您没有相同的DPST开关,您可以使用正常的拨动开关,如上面电路图所示。现在让我们看看项目的原理图,以了解我们为什么建立了以下连接。
原理图和说明:
下面给出了上面显示的电路图的原理图,它也是使用Fritzing制作的。

我们必须了解的一个主要连接是我们如何通过模拟A0引脚将8个按钮连接到Arduino。基本上我们需要8个输入引脚,它们可以连接到8个输入按钮,但对于这样的项目,我们不能仅仅将微控制器的8个引脚用于按钮,因为我们可能需要它们供以后使用。在我们的例子中,我们将LCD显示器连接起来。
因此,我们使用Arduino的模拟引脚,并形成具有不同电阻值的分压器,以完成电路。这样,当按下每个按钮时,将向模拟引脚提供不同的模拟电压。下面显示了一个只有两个电阻和两个按钮的采样电路。

在这种情况下,当没有按下按钮时,ADC引脚将接收+ 5V,如果按下第一个按钮,则通过560R电阻完成分压器,如果按下第二个按钮,则使用1.5竞争分压器。 k电阻。这样,ADC引脚接收的电压将根据分压器的公式而变化。如果您想了解更多有关分压器工作原理以及如何计算ADC引脚接收电压值的信息,那么您可以使用此分压器计算器页面。
除此之外,所有连接都是直接连接,LCD连接到引脚8,9,10,11和12.蜂鸣器连接到引脚7,SPDT开关连接到Arduino的引脚6。整个项目通过笔记本电脑的USB端口供电。您也可以通过DC插孔将Arduino连接到9V或12V电源,项目仍然可以正常工作。
理解Arduino的Tone()函数:
Arduino有一个方便的tone()函数,可用于产生变化的频率信号,可用于使用蜂鸣器产生不同的声音。因此,让我们了解该函数的工作原理以及它如何与Arduino一起使用。
在此之前,我们应该知道Piezo蜂鸣器的工作原理。我们可能已经在我们学校了解了压电晶体,它只不过是一种将机械振动转化为电能的晶体,反之亦然。在这里,我们应用可变电流(频率),晶体振动,从而产生声音。因此,为了使Piezo蜂鸣器产生一些噪音,我们必须使Piezo电子晶体振动,噪声的音调和音调取决于晶体振动的速度。因此,可以通过改变电流的频率来控制音调和音调。
好的,那么我们如何从Arduino获得可变频率?这就是tone()函数的用武之地。tone()可以在特定的引脚上产生特定的频率。如果需要,也可以提及持续时间。 tone()的语法是
Syntax tone(pin, frequency) tone(pin, frequency, duration) Parameters pin: the pin on which to generate the tone frequency: the frequency of the tone in hertz – unsigned int duration: the duration of the tone in milliseconds (optional1) – unsigned long
引脚的值可以是您的任何数字引脚。我在这里使用了8号针。可以生成的频率取决于Arduino板中定时器的大小。对于UNO和大多数其他公共电路板,可产生的最小频率为31Hz,可产生的最大频率为65535Hz。然而,我们人类只能听到2000Hz到5000Hz之间的频率。
在Arduino上演奏钢琴音调:
好吧,在我开始讨论这个主题之前,让我明确表示我是一个有音符或钢琴的新手,所以如果本标题下提到的任何内容都是胡言乱语,请原谅我。
我们现在知道我们可以使用Arduino中的音调功能来产生一些声音,但是我们如何使用相同的音调播放特定音符的音调。幸运的是,我们有一个名为“pitches.h”的图书馆,由Brett Hagman编写。该库包含有关哪个频率等效于钢琴上的哪个音符的所有信息。我很惊讶这个图书馆实际上能够如何运作并且几乎可以播放钢琴上的每一个音符,我使用同样的方式演奏加勒比海盗,疯狂青蛙,马里奥甚至泰坦尼克号的钢琴音符,它们听起来很棒。哎呀!我们在这里有点偏离主题,所以如果你对使用Arduino项目播放旋律的感兴趣。您还可以在该项目中找到有关pitches.h库的更多说明。
我们的项目只有8个按钮,因此每个按钮只能播放一个特定的音符,因此我们只能播放8个音符。我在钢琴上选择了最常用的音符,但是你可以选择任何8或甚至用更多按钮扩展项目并添加更多音符。
在此项目中选择的音符是音符C4,D4,E4,F4,G4,A4,B4和C5,它们分别可以使用按钮1至8播放。