在这个Arduino教程中,我们将学习如何执行tone()命令来产生音符。该配置将播放一个微小的音乐音调,您可能很熟悉。

项目所需的硬件
Arduino BoardLoud扬声器- 8欧姆1英寸电阻- 100欧姆的震动电线
过程:
这是相当直接的,要求其中一根扬声器线通过100欧姆电阻与引脚8集成,另一根线到地或电源的负轨,如下图所示:

图片来源:https://arduino.cc/en/Tutorial/Tone
编程代码
您将看到代码中包含一个额外的文件(pitch .h)。用一些标准音乐曲调的音高值对文件进行预编程。
更准确地说,您可以发现NOTE_C4是c的中间部分,NOTE_FS4是F尖的,以类似的方式。下面所附的附注表的纲领最初是由Brett Hagman制定的,tone()命令就是根据这个纲领制定的。
每当应用程序需要在Arduino配置中生成一个音符时,这些数据就变得很方便。其基本原理可如下所示:
/*
旋律
扮演一个旋律
电路:
* 8欧姆扬声器数字引脚8
创建于2010年1月21日
2011年8月30日修订
由汤姆Igoe
此示例代码位于公共域中。
https://arduino.cc/en/Tutorial/Tone
*/
# include“pitches.h”
//旋律中的音符:
int[] =旋律
{
Note_c4, note_g3, note_g3, note_a3, note_g3,0, note_b3,
NOTE_C4};
//音符时长:4 =四分音符,8 =八分音符,等等:
int noteduration [] = {
4,8,8,4,4,4,4,4};
无效的设置()
{
//重复旋律的音符:
for (int
thisNote = 0;
thisNote < 8;
thisNote + +) {
//计算音符持续时间,取1
第二个
//由注释类型划分。
/ /。四分音符= 1000 / 4,八分音符=
1000/8等。
int noteDuration = 1000/noteDuration [thisNote];
语调(8 [thisNote]旋律noteDuration);
//区分音符,设置最小时间
他们之间。
//纸币的持续时间+ 30%似乎很好:
int pauseBetweenNotes =
noteDuration * 1.30;
延迟(pauseBetweenNotes);
//停止播放的音调:
能(8);
}
}
无效循环()
{
//不需要重复旋律。
为了创建pitches.h文件,你需要点击
在“新标签”按钮上,可能看起来像这样:→并简单地粘贴以下代码 :/*************************************************
*公共常量
*************************************************/
#定义NOTE_B0 31
#定义NOTE_C1 33
#定义NOTE_CS1 35
#定义NOTE_D1 37
#定义NOTE_DS1 39
#定义NOTE_E1 41
#定义NOTE_F1 44
#定义NOTE_FS1 46
#定义NOTE_G1 49
#定义NOTE_GS1 52
#定义NOTE_A1 55
#定义NOTE_AS1 58
#定义NOTE_B1 62
#定义NOTE_C2 65
#定义NOTE_CS2 69
#定义NOTE_D2 73
#定义NOTE_DS2 78
#定义NOTE_E2 82
#定义NOTE_F2 87
#定义NOTE_FS2 93
#定义NOTE_G2 98
#定义NOTE_GS2 104
#定义NOTE_A2 110
#定义NOTE_AS2 117
#定义NOTE_B2 123
#定义NOTE_C3 131
#定义NOTE_CS3 139
#定义NOTE_D3 147
#定义NOTE_DS3 156
#定义NOTE_E3 165
#定义NOTE_F3 175
#定义NOTE_FS3 185
#定义NOTE_G3 196
#定义NOTE_GS3 208
#定义NOTE_A3 220
#定义NOTE_AS3 233
#定义NOTE_B3 247
#定义NOTE_C4 262
#定义NOTE_CS4 277
#定义NOTE_D4 294
#定义NOTE_DS4 311
#定义NOTE_E4 330
#定义NOTE_F4 349
#定义NOTE_FS4 370
#定义NOTE_G4 392
#定义NOTE_GS4 415
#定义NOTE_A4 440
#定义NOTE_AS4 466
#定义NOTE_B4 494
#定义NOTE_C5 523
#定义NOTE_CS5 554
#定义NOTE_D5 587
#定义NOTE_DS5 622
#定义NOTE_E5 659
#定义NOTE_F5 698
#定义NOTE_FS5 740
#定义NOTE_G5 784
#定义NOTE_GS5 831
#定义NOTE_A5 880
#定义NOTE_AS5 932
#定义NOTE_B5 988
#定义NOTE_C6 1047
#定义NOTE_CS6 1109
#定义NOTE_D6 1175
#定义NOTE_DS6 1245
#定义NOTE_E6 1319
#定义NOTE_F6 1397
#定义NOTE_FS6 1480
#定义NOTE_G6 1568
#定义NOTE_GS6 1661
#定义NOTE_A6 1760
#定义NOTE_AS6 1865
#定义NOTE_B6 1976
#定义NOTE_C7 2093
#定义NOTE_CS7 2217
#定义NOTE_D7 2349
#定义NOTE_DS7 2489
#定义NOTE_E7 2637
#定义NOTE_F7 2794
#定义NOTE_FS7 2960
#定义NOTE_G7 3136
#定义NOTE_GS7 3322
#定义NOTE_A7 3520
#定义NOTE_AS7 3729
#定义NOTE_B7 3951
#定义NOTE_C8 4186
#定义NOTE_CS8 4435
#定义NOTE_D8 4699
#定义NOTE_DS8 4978
使用8欧姆扬声器比使用通常使用的压电扬声器更好吗?谢谢。
它可以尝试,我不确定哪个会产生更好的结果