🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **曲调2** > tone()函数通过控制**Atmega**处理器的内部定时器来工作。它会根据你设定的频率在输出引脚上输出脉冲信号。由于tone()只使用了一个定时器,因此你只能同时在一个扬声器上播放。不过,你可以按照一定顺序的在不同引脚之间快速切换来实现多个扬声器“同时”播放。为了做到这一点,你需要将在一个引脚发声后,快速的“转向”下一个引脚。 ### **所需硬件** * Arduino板或Genuino板 * 3个8Ω扬声器 * 3个100Ω电阻 * 跳线 * 面包板 ### **电路** ![图片来自官网](http://img.blog.csdn.net/20160503090241872) ### **原理图** ![图片来自官网](http://img.blog.csdn.net/20160503090255404) ### **代码** 下列工程按照顺序在不同扬声器上播放声音(在后一个播放之前将前一个关闭)。注意,每次播放音符的时间应和之后delay的时间一样。 ~~~ /* 曲调2 按照顺序在不同扬声器上播放音符。 电路连接: * 3个8Ω扬声器分别连接到数字引脚6、7和8 代码是公开的 */ void setup() { } void loop() { // 关闭8号引脚上的tone: noTone(8); // 在6号引脚上播放200毫秒: tone(6, 440, 200); delay(200); // 关闭6号引脚上的tone: noTone(6); //在7号引脚上播放500毫秒: tone(7, 494, 500); delay(500); // 关闭7号引脚上的tone: noTone(7); //在8号引脚上播放500毫秒: tone(8, 523, 300); delay(300); } ~~~ [tone()](http://www.arduino.cc/en/Reference/Tone)