|
播放音调(Playing tones on Multiple outputs using the tone() function)
本示例展示了如何使用tone()命令在多个输出引脚播放不同音符。
tone()工作时占用一个Atmega内部定时器,设置定时器为想要的频率,并使用该定时器在输出引脚输出脉冲。由于仅使用了一个定时器,所以只能同时播放一个音符。但是可以在不用引脚依次播放音符。要实现这一点,需要在移动之前关闭定时器计数。
所需硬件
- Arduino或者Genuino开发板
- 蜂鸣器或扬声器 - 3个100欧电阻
- 导线 - 面包板
电路连接方式
将扬声器的一端依次连接到Arduino的数字引脚,另一端连接到地。
原理图
代码
下面的程序在每个扬声器依次播放一个音符,播放音符前先关断前一个扬声器。注意每个音符的持续时间和紧跟着的延时时间一样。
以下是主要的程序: - /*
- Multiple tone player
- Plays multiple tones on multiple pins in sequence
- circuit:
- * 3 8-ohm speaker on digital pins 6, 7, and 8
- created 8 March 2010
- by Tom Igoe
- based on a snippet from Greg Borenstein
- This example code is in the public domain.
- http://www.arduino.cc/en/Tutorial/Tone4
- */
- void setup() {
- }
- void loop() {
- // turn off tone function for pin 8:
- noTone(8);
- // play a note on pin 6 for 200 ms:
- tone(6, 440, 200);
- delay(200);
- // turn off tone function for pin 6:
- noTone(6);
- // play a note on pin 7 for 500 ms:
- tone(7, 494, 500);
- delay(500);
- // turn off tone function for pin 7:
- noTone(7);
- // play a note on pin 8 for 500 ms:
- tone(8, 523, 300);
- delay(300);
- }
复制代码
|