Подключение динамика

В этой статье рассмотрим разные подходы к работе с динамиком.

Нам подойдет любой динамик, пьезо, buzzer.

buzzer dynamic piezo

Подключается динамик к Arduino очень просто — один контакт к земле, а другой к пину Arduino.

arduino_buzzer

Теперь перейдем к программированию. Извлечь звуки из динамика мы можем различными способами (хотя все они сводятся к одному).

1. С помощью команды analogWrite. В этом случае динамик должен подключаться к ШИМ-портам (3, 5, 6, 9, 10, 11).

В примере в течение секунды издается звук, после чего следует секунда тишины.

Частота звука будет зависеть от значения, заданного в analogWrite (от 0 до 255).

2. С помощью функции tone (pin, frequency), где pin — номер порта, к которому подключен динамик, а frequency — частота в Герцах. Как и в предыдущем примере продолжительность звука будем задавать с помощью delay. Чтобы выключить звук используется функция noTone (pin).

Подробнее о функции tone() можно прочитать здесь.

3. На сайте Arduino приведен пример, позволяющий проигрывать определенные мелодии, записывая их нотами.

Таблица нот

Код:

Разберем эту программу. Последовательность нот записывается в массиве notes[] в кавычках (пробел — пауза). beats[] и tempo определяют продолжительность нот (в beats[] должен быть указан коэффициент для каждой ноты). Основная функция — playNote, которая проигрывает заданную ноту заданное время. Вспомогательная — playTone — проигрывает заданный тон заданное время. Таким образом, при желании, вы можете создать свои «ноты» с произвольной тональностью, указав данные в массивах names[] и tones[].

Напоследок бонус — порадуйте себя и своих детей Имперским маршем.

Здесь сначала описаны все ноты, далее создана функция beep, которая, используя уже знакомую команду tone() проигрывает заданную ноту заданное время.
Работая с динамиком можете выбрать наиболее удобный способ из описанных выше.

1 Комментарий

  1. anatoliy

    Во всех примерах используется пауза, для проигрывания мелодий, и все это время мк будет стоять, но ведь в большинстве случаев он должен помимо этого выполнять другую работу. Так что эти примеры бесполезны для реального применения.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *