Функция tone() используется для генерации на заданном аргументом порту ШИМ-сигнала с 50% заполнением (меандр) и с заданной аргументом частотой. Время воспроизведения сигнала также может быть задано параметром, в противном случае генерация остановится только при перезапуске микроконтроллера или по вызову функции noTone().
Для воспроизведения аудиосигнала к заданному пину должен быть подключен либо динамик (через транзистор!), либо пьезопищалка (достаточно токоограничительного резистора).
В течение одного временного отрезка может выводиться только одна частота сигнала и только на одном пине. Если функция будет вызвана ещё раз с другим аргументом пина, то изменения не последуют, а если с тем же номером пина, но с другой заданной частотой, то сигнал поменяет свою частоту.
Функция tone() использует аппаратный таймер, поэтому при её использовании станет невозможным использование analogWrite() (ШИМ) на пинах 3 и 11 (на всех UNO-подобных платах с ATMega328).