Функция tone() генерирует на заданном выводе меандр (прямоугольный волнообразный сигнал) заданной частоты и с 50% скважностью. Длительность сигнала задаётся аргументом функции, а если он не задан, меандр генерируется до тех пор, пока не будет вызвана функция noTone(). Для воспроизведения сигнала к  выводу Arduino подключается динамик (например, пьезодинамик).

ПРИМЕЧАНИЕ. Одновременно может воспроизводиться только один сигнал. Если сигнал уже воспроизводится на одном выводе, то вызов функции tone() на другом выводе Arduino ни к чему не приведет, если же функция будет вызвана на том же выводе, то будет установлена новая частота меандра. Использование данной функции мешает использовать ШИМ на выводах № 3 и 11 (кроме модуля Arduino Mega).

Синтаксис:

Где:

  • pin – номер вывода Arduino, на котором будет генерироваться меандр;
  • frequency  частота генерируемого меандра в Герцах;
  • duration  длительность генерируемого меандра в миллисекундах.

Пример:

В данном примере к цифровому выводы № 11 Arduino подключается пьезодинамик.  В основном цикле (функция loop()) программы реализован алгоритм воспроизведения мелодии.