Generates a square wave of the specified frequency (and 50% duty cycle) on a pin. A duration can be specified, otherwise the wave continues until a call to noTone(). The pin can be connected to a piezo buzzer or other speaker to play tones.
Only one tone can be generated at a time. If a tone is already playing on a different pin, the call to
tone() will have no effect. If the tone is playing on the same pin, the call will set its frequency.
NOTE: if you want to play different pitches on multiple pins, you need to call
noTone() on one pin before calling
tone() on the next pin.
tone(pin, frequency) tone(pin, frequency, duration)
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 (optional) – unsigned long
tone() employs the PWM timer of pin 32; so to avoid conflicts,
analogWrite(32) cannot be called at the same time. In addition, tone() should also not be used with the MsTimer2 and IRremote libraries at the same time.
- [Language] noTone()
- [Example] Tutorial: Tone
- [Example] Tutorial: Pitch follower
- [Example] Tutorial: Simple Keyboard
- [Example] Tutorial: multiple tones
The text of the 86Duino reference is a modification of the Arduino reference and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.