Arduino Programming Language: Tone




The tone() function is used to generate a determined frequency for an amount of time on a pin. 
The function can express one tone at a time. If a tone is alredy playing on a different pin, a new tone function won't have effect. If the tone is playing on the same pin, the call will set its frequency.


int: the output pin number in which the tone will be generated.

  • pin
  • frequency

unsigned int: the frequency for the pulse in Hertz. 
The following pitch frequencies are predefined to use with tone: 
NOTE_B0=31, NOTE_C1=33, NOTE_CS1=35, NOTE_D1=37, NOTE_DS1=39, NOTE_E1=41, NOTE_F1=44, NOTE_FS1=46, NOTE_G1=49, NOTE_GS1=52, NOTE_A1=55, NOTE_AS1=58, NOTE_B1=62, NOTE_C2=65, NOTE_CS2=69, NOTE_D2=73, NOTE_DS2=78, NOTE_E2=82, NOTE_F2=87, NOTE_FS2=93, NOTE_G2=98, NOTE_GS2=104, NOTE_A2=110, NOTE_AS2=117, NOTE_B2=123, NOTE_C3=131, NOTE_CS3=139, NOTE_D3=147, NOTE_DS3=156, NOTE_E3=165, NOTE_F3=175, NOTE_FS3=185, NOTE_G3=196, NOTE_GS3=208, NOTE_A3=220, NOTE_AS3=233, NOTE_B3=247, NOTE_C4=262, NOTE_CS4=277, NOTE_D4=294, NOTE_DS4=311, NOTE_E4=330, NOTE_F4=349, NOTE_FS4=370, NOTE_G4=392, NOTE_GS4=415, NOTE_A4=440, NOTE_AS4=466, NOTE_B4=494, NOTE_C5=523, NOTE_CS5=554, NOTE_D5=587, NOTE_DS5=622, NOTE_E5=659, NOTE_F5=698, NOTE_FS5=740, NOTE_G5=784, NOTE_GS5=831, NOTE_A5=880, NOTE_AS5=932, NOTE_B5=988, NOTE_C6=1047, NOTE_CS6=1109, NOTE_D6=1175, NOTE_DS6=1245, NOTE_E6=1319, NOTE_F6=1397, NOTE_FS6=1480, NOTE_G6=1568, NOTE_GS6=1661, NOTE_A6=1760, NOTE_AS6=1865, NOTE_B6=1976, NOTE_C7=2093, NOTE_CS7=2217, NOTE_D7=2349, NOTE_DS7=2489, NOTE_E7=2637, NOTE_F7=2794, NOTE_FS7=2960, NOTE_G7=3136, NOTE_GS7=3322, NOTE_A7=3520, NOTE_AS7=3729, NOTE_B7=3951, NOTE_C8=4186, NOTE_CS8=4435, NOTE_D8=4699 and NOTE_DS8=4978.

  • time

unsigned long: the tone duration in milliseconds or nothing to play infinitely (until noTone() method called, or new tone() called)






Avoid to use tone on pin 4,5,10 and 12


void setup() {
// generates a 432Hz tone in output pin 12 with 3000ms of duration
tone(12, 432, 3000);

void loop() {


Related Functions

Based on the reference originally written by Arduino Community, and