admin 管理员组

文章数量: 1086019


2024年3月22日发(作者:ajax异步请求优点)

arduino 中的 tone用法

在Arduino中,tone()函数用于生成指定频率的方波音调。

函数原型为:tone(pin, frequency, duration)

参数解释:

- pin: 要输出音调的引脚。一般使用数字引脚。

- frequency: 要产生的音调的频率,单位为赫兹(Hz)。常见的音

调频率可以在音调表中找到。

- duration: 音调持续的时间,单位为毫秒(ms)。如果设置为0,

则音调将持续无限长,直到调用noTone()函数停止它。

要播放特定频率的音调,需要通过给引脚输出PWM信号来实

现。在调用tone()函数后,会自动为给定的引脚配置PWM输

出,并根据设置的频率和持续时间生成方波音调。可以通过调

用noTone()函数停止正在输出的音调。

注意事项:

- 仅有一部分引脚支持PWM输出,可以在你的Arduino板引

脚布局图上找到。

- 在某些Arduino板上,使用tone函数时会导致引脚变成输入

模式,如果要使用该引脚输出其他类型的信号,请在调用

tone()函数之前将其设置为输出模式。

以下是一个简单的示例代码,演示如何使用tone()函数播放一

个音阶:

```

int speakerPin = 9; // 定义输出音调的引脚

void setup() {

// 将音调输出引脚设置为输出模式

pinMode(speakerPin, OUTPUT);

}

void loop() {

// 定义一个音阶数组

int melody[] = {262, 294, 330, 349, 392, 440, 494, 523};

// 播放音阶

for (int i = 0; i < 8; i++) {

tone(speakerPin, melody[i], 500); // 播放当前音调500ms

delay(600); // 音调间的延迟

}

}

```

这个例子演示了如何使用tone()函数播放C大调音阶。通过循

环遍历音阶数组,调用tone()函数播放每个音调,然后延迟一

段时间来产生音阶间的停顿。循环结束后,音阶会重复播放。


本文标签: 音调 引脚 函数 输出 频率