
Видео
Схема

Исходный код
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Работа с зуммером
4// ─────────────────────────────────────────
5// Зуммер пищит на 400 Hz 0,3 с, молчит 0,3 с и так по кругу. Показывает,
6// как использовать tone() и noTone().
7//
8// Пины:
9// D7 -> Зуммер + (другая ножка к GND)
10
11int frequency = 400; // Частота тона (Hz)
12int buzzerPin = 7; // Выходной пин зуммера
13
14void setup() {
15 // tone() сама настраивает пин как выход
16}
17
18void loop() {
19 tone(buzzerPin, frequency); // Запустить тон 400 Hz
20 delay(300);
21 noTone(buzzerPin); // Остановить звук
22 delay(300);
23}
24
Частые вопросы
Чем активный зуммер отличается от пассивного?
В активном зуммере есть генератор; он издаёт постоянный тон, как только на него подают напряжение. Пассивному зуммеру нужен внешний источник частоты; с помощью функции `tone()` он может играть разные ноты. Для проектов с мелодиями нужны пассивные зуммеры.
Как пользоваться функцией tone()?
tone(pin, частота) играет звук заданной частоты; noTone(pin) его выключает. Длительность можно задать в форме tone(pin, частота, длительность). Например, 440 Hz — это нота ля.
Звук очень тихий. Как сделать громче?
Пин Arduino питает зуммер ограниченным током. Для более громкого звука можно управлять зуммером через NPN-транзистор (например, BC547) или выбрать установку, при которой отверстие зуммера ничем не закрыто.
Не помешает ли `tone()` другим пинам?
На Uno функция `tone()` использует Timer2; поэтому, пока она играет, PWM (analogWrite) на пинах 3 и 11 работает неправильно. Если одновременно нужен PWM, выбери другие пины.
