SPlaying tones on Multiple outputs using the tone() function with Arduino

This example shows how to use the tone() command to play different notes on multiple outputs.

The tone() command works by taking over one of the Atmega’s internal timers, setting it to the frequency you want, and using the timer to pulse an output pin. Since it’s only using one timer, you can only play one note at a time. You can, however, play notes on multiple pins sequentially. To do this, you need to turn the timer off for one pin before moving on to the next.

Thanks to Greg Borenstein for clarifying this.

Circuit

Arduino tones on Multiple outputs

image developed using Fritzing. For more circuit examples, see the Fritzing project page

Schematic

Arduino tones on Multiple outputs schematic

Code

The sketch below plays a tone on each of the speakers in sequence, turning off the previous speaker first. Note that the duration of each tone is the same as the delay that follows it.

Here’s the main sketch:

/*
Multiple tone playerPlays 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.

Major Components in Project

Hardware Required

  • (3) 8-ohm speakers
  • (3) 100 ohm resistor
  • breadboard
  • hook up wire

For more detail: SPlaying tones on Multiple outputs using the tone() function with Arduino


About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top