Tone arduino описание и возможности

0
8

Tone arduino описание

Модуль поддерживает частоты от 31 Гц до 65 кГц, но человеческое ухо различает только диапазон 20 Гц – 20 кГц. Для точной настройки используйте таблицы соответствия нот: ля первой октавы – 440 Гц, до второй – 523 Гц. Если не указать длительность, звук будет воспроизводиться до вызова noTone().

Одновременная работа с несколькими звуковыми каналами требует дополнительных аппаратных таймеров. На платах с чипом ATmega328P доступен только один канал, но ATmega2560 позволяет управлять тремя независимыми сигналами. Для сложных композиций записывайте последовательности нот в массивы с указанием частот и пауз.

Генерация звуковых сигналов с помощью библиотеки Tone

Основные функции

tone(pin, freq, duration) – воспроизводит сигнал заданной частоты на указанное время (в миллисекундах). Пример:

tone(8, 440, 1000); // Нота "Ля" первой октавы на 1 секунду

noTone(pin) – останавливает генерацию. Обязательно вызывайте эту функцию перед изменением параметров.

Практическое применение

Создайте мелодию, используя массив частот и длительностей:

int melody[] = {262, 294, 330, 349, 392, 440, 494, 523};
int durations[] = {200, 200, 200, 400, 200, 200, 200, 400};
void playTune() {
for (int i = 0; i < 8; i++) {
tone(8, melody[i], durations[i]);
delay(durations[i] * 1.3);
noTone(8);
}
}

Для сложных проектов комбинируйте с таймерами или прерываниями, чтобы избежать блокировки основного цикла.

Настройка генерации звука с помощью функции tone()

Для воспроизведения сигнала подключите динамик или пьезоизлучатель к цифровому выходу. Минимальное сопротивление – 8 Ом.

Синтаксис и параметры

Функция принимает три аргумента: tone(pin, frequency, duration). pin – номер выхода, frequency – частота в герцах (от 31 до 65535), duration – длительность в миллисекундах (необязательный параметр).

Пример кода

Следующий скетч генерирует сигнал 1 кГц на 9-м пине в течение 500 мс:

void setup() {
tone(9, 1000, 500);
}
void loop() {
}

Для непрерывного звука исключите третий аргумент. Остановка – через noTone(pin).

Используйте массив частот для создания мелодий. Задержки между нотами регулируйте delay().

Примеры использования Tone Arduino в реальных проектах

Мелодии для сигнализации

Генератор звука подходит для создания простых предупредительных сигналов. Пример кода для сирены:

  • Частота: от 500 Гц до 2 кГц
  • Длительность импульсов: 100–300 мс
  • Подключение: пьезоизлучатель через резистор 220 Ом

Игровые звуковые эффекты

В 8-битных играх можно имитировать выстрелы, взрывы или сбор монет. Готовый вариант для платформера:

  1. Короткий импульс 1 кГц при прыжке
  2. Нисходящий тон от 800 Гц до 200 Гц для падения
  3. Три быстрых сигнала 1500 Гц при получении бонуса

Для музыкальных автоматов подойдут аккорды из трёх нот. Пример последовательности (C4, E4, G4) с задержкой 200 мс между нотами.

Как генерировать звуковые сигналы с помощью функции tone()

tone(8, 1000);

Контроль длительности сигнала

Третий параметр задает время звучания в миллисекундах. После tone(8, 1000, 2000) сигнал автоматически отключится через 2 секунды. Без этого параметра звук будет непрерывным.

Остановка воспроизведения

noTone(8);

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь