Пьезодинамики
Пьезодинамик (пьезоизлучатель, зуммер, баззер) легко подключается к платам Arduino и вы можете заставить вашу схему издавать нужные звуки – сигнализировать, пищать или проигрывать мелодию.
Рис. 1 — Условное графическое обозначение пьезодинамика
Пьезодинамик конструктивно представлена металлической пластиной с нанесенным на нее напылением из токопроводящей керамики. Пластина и напыление выступают в роли контактов. Устройство полярно, имеет свои «+» и «-». Принцип действия пьезодинамика основан на открытом братьями Кюри в конце XIX века пьезоэлектрическом эффекте: при подаче электричества на пьезодинамик он начинает деформироваться (рис. 2). При этом происходят удары о металлическую пластинку, которая и производит “шум” нужной частоты.

Рис. 2 — Устройство пьезодинамика
Пьезодинамики бывают двух видов: активный и пассивный. Принцип действия у них одинаков, но в активном нет возможности менять частоту звучания, хотя сам звук громче и подключение проще.
Главное отличие активного пьезодинамика от пассивного заключается в том, что активный пьезодинамик генерирует звук самостоятельно. Для этого пользователь должен просто включить или выключить его (подав напряжение на контакты или обесточив). Активный пьезодинамик будет выдавать более громкий звуковой сигнал в сравнении с пассивным. Частота излучаемого звука активного пьезодинамика составляет значения 2,5 кГц +/- 300Гц. Напряжение питания для составляет 3,5 . 5 В.
Пассивный пьезодинамик требует источника сигнала, который задаст параметры звукового сигнала. В качестве такого источника может выступать плата Ардуино.
Как отличить активный и пассивный пьезодинамики? Если со стороны выводов видна печатная плата зеленого цвета, это — пассивный пьезодинамик; если черного – активный (рис. 3).

Рис. 3 — Активный (слева) и пассивный (справа) пьезодинамики
Синтез звука
Детали:
- Arduino UNO.
- Пассивный пьезодинамик.
- Соединительные провода.
- Макетная плата.
Рис. 4 — Принципиальная схема подключения пьезодинамика к Arduino
Сборка
Присоедините пьезодинамик к плате Arduino (рис. 5).
Если пьезодинамик на вписывается в отверстия на плате, попробуйте его немного повернуть, так чтобы его выводы вошли в соседние отверстия, как бы по диагонали.
Рис. 5 — Подключение пьезодинамика к Arduino UNO
Скетч для звука сирены
Изменяя частоту и продолжительность звука можно получить различные звучания сирены
Скетч для мелодии с использованием библиотеки pitches.h
В первой строчке мы подключаем заголовочный файл pitches.h при помощи оператора #include. Файл pitches.h находится в папке examples\02.Digital\toneMelody папки с Arduino IDE. Далее создается массив из нот melody , а также массив из продолжительности проигрывания ноты t1 .
В процедуре setup идет цикл, где для каждой ноты вычисляется его продолжительность и вызывается функция tone() , которая и воспроизводит нужный звук.
Обратите внимание, что основной код находится в методе setup() , поэтому программа выполняется один раз. Если вы хотите послушать её ещё раз, то нажмите на кнопку Reset на плате Arduino Uno. Для многократного повторения мелодия разместите основной код в процедуру loop .
Arduino и зуммер
Зуммер, он же баззер (англ. buzzer), он же “пищалка”, он же пьезоэлектрический излучатель в корпусе – простейший источник звука. Очень часто используется в электронике для звуковой индикации: будильники, таймеры, а также практически вся бытовая техника (микроволновки, стиралки, посудомойки и т.д.) издаёт звук при помощи этого компонента. Ну и конечно же его можно найти почти на любой материнской плате компьютера.
Зуммер в таком корпусе может быть как активным, так и пассивным: активный при подключении питания начнёт пищать, т.к. имеет встроенный генератор. Пассивный же тихо щёлкнет и всё. В наборе GyverKIT может быть как активный, так и пассивный зуммер в зависимости от партии, приносим свои извинения.
Подключение
Потребляет зуммер от 10 до 30 мА, поэтому в принципе можно подключать его к цифровому пину Arduino напрямую, но к esp8266 (Wemos mini) нужно подключать через токоограничивающий резистор с сопротивлением

Примеры
Если зуммер активный – достаточно подать на него высокий сигнал для включения звука. Тут можно даже использовать в качестве примера стандартный “блинк”:
Если зуммер пассивный – всё гораздо интереснее, так как можно генерировать звук нужной частоты, то есть тона, самому! Данный код заставит зуммер пищать на частоте 1 кГц. Делать пин выходом не нужно, это встроено в функцию tone()
Для нескольких коротких сигналов модифицируем первый пример:
Более подробное описание и примеры с tone() можно найти в уроке по ссылке ниже
Как подключить пьезоизлучатель (пьезопищалку) к Arduino
Генерировать звуки с помощью Ардуино можно разными способами. Самый простой из них – подключить к плате пьезоизлучатель (или, как его ещё называют, «пьезопищалку»). Но как всегда, есть тут свои нюансы. В общем, давайте подключим к Arduino пьезопищалку и будем разбираться.
- Arduino (или совместимая плата);
- компьютер с Arduino IDE;
- пьезоизлучатель (пьезопищалка), приобрести можно здесь или здесь; ; .
Инструкция по подключению пьезоизлучателя к Arduino
1 Схема подключения пьезоизлучателяк Arduino
Пьезоизлучатель, или пьезоэлектрический излучатель, или «пьезопищалка» – это электроакустическое устройство воспроизведения звука, использующие обратный пьезоэлектрический эффект. Принцип действия его основан на том, что под действием электрического поля возникает механическое движение мембраны, которое и вызывает слышимые нами звуковые волны. Обычно такие излучатели звука устанавливают в бытовую электронную аппаратуру в качестве звуковых сигнализаторов, в корпуса настольных персональных компьютеров, в телефоны, в игрушки, в громкоговорители и много куда ещё.
Пьезоизлучатель имеет 2 вывода, причём полярность имеет значение. Поэтому чёрный вывод подключаем к земле (GND), а красный – к любому цифровому пину с функцией ШИМ (PWM ). В данном примере положительный вывод излучателя подключён к выводу «D3».
Схема подключения пьезоизлучателя к Arduino и схема, собранная на макетной плате
2 Извлекаем звук из пьезоизлучателяс помощью функции analogWrite()
Пьезопищалку можно задействовать разными способами. Самый простой из них – это использовать функцию analogWrite(). Пример скетча – во врезке. Данный скетч попеременно включает и выключает звук с частотой 1 раз в 2 секунды.
Задаём номер пина, определяем его как выход. Функция analogWrite() принимает в качестве аргументов номер вывода и уровень, который может быть от 0 до 255, т.к. ШИМ -выводы Ардуино имеют 8-битный ЦАП . Это значение будет изменять громкость пьезопищалки в небольших пределах. Чтобы выключить пьезопищалку, нужно послать в порт значение «0».
Используя функцию analogWrite(), нельзя изменять тональность звука, к сожалению. Пьезоизлучатель всегда будет звучать на частоте примерно 980 Гц, что соответствует частоте работы выводов с широтно-импульсной модуляцией сигнала (ШИМ ) на платах Arduino UNO и подобных.
3 Извлекаем звук из пьезоизлучателяс помощью функции tone()
Но частоту звучания можно менять по-другому. Для этого извлечём звук из пьезоизлучателя посредством встроенной функции tone(). Пример простейшего скетча приведён на врезке.
Функция tone() принимает в качестве аргументов номер вывода Arduino и звуковую частоту. Нижний предел частоты – 31 Гц, верхний предел ограничен параметрами пьезоизлучателя и человеческого слуха. Чтобы выключить звук, посылаем в порт команду noTone().
А вот так будет выглядеть временная диаграмма сигнала, который генерирует функция tone(). Видно, что каждые 100 мс частота увеличивается, что мы и слышим:
Временная диаграмма сигнала функции tone()
Как видите, с помощью пьезоизлучателя из Ардуино можно извлекать звуки. Можно даже написать несложную музыкальную композицию, задав ноты соответствующими частотами, а также определив длительность звучания каждой ноты посредством функции delay().
Обратите внимание, что если к Ардуино подключены несколько пьезоизлучателей, то единовременно будет работать только один. Чтобы включить излучатель на другом выводе, нужно прервать звук на текущем, вызвав функцию noTone().
Важный момент: функция tone() накладывается на ШИМ сигнал на «3» и «11» выводах Arduino. Т.е., вызванная, например, для пина «5», функция tone() может мешать работе выводов «3» и «11». Имейте это в виду, когда будете проектировать свои устройства.
Пьезодинамик Ардуино (пищалка) подключение
Зуммер Arduino это пьезоэлемент, который преобразует электрическую энергию в вибрацию (звук) с частотой около 400 Гц. Рассмотрим, как подключить buzzer к Ардуино для генерации звуков. Зуммер изготовлен из пьезоэлектрической мембраны, принимает большой диапазон напряжения: от 3 до 20 Вольт. Пьезо пищалка может быть оснащена внутренним генератором с фиксированной частотой (активный зуммер).
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- buzzer Arduino
- фоторезистор и резистор
- макетная плата
- коннекторы
По сравнению с дорогими электромагнитными преобразователями звука (динамиками), пьезокерамические преобразователи имеют простую конструкцию. Пьезоэлемент Ардуино состоит из металлической пластины с нанесенной на нее пьезоэлектрической керамикой с проводящим напылением. Пластина и напыление являются контактами активного или пассивного зуммера, устройство спикера имеет полярность — плюс и минус.
Пьезодинамик Arduino характеристики, распиновка

Пассивный зуммер характеристики
- Напряжение питания: 4В — 6В
- Максимальное потребление тока: 60мА
- Максимальная сила шума: 85dB
- Сопротивление катушки: 40 Ом
- Частота звукового сигнала: 2731Гц
Принцип действия пьезоэлемента основан на эффекте, открытом братьями Кюри в 1880 году. В пьезокристаллах электрические заряды образуются под действием механических сил изгиба или скручивания. Помимо «прямого» эффекта у пищалок, существует обратный эффект: если к кристаллу приложить электричество, он начинает деформироваться. Колебания пьезокристалла создают звуковую волну определенной частоты.
Разница между пассивным и активным зуммером Arduino
Многих интересует разница между активным зуммером и пассивным зуммером Arduino? Активный пьезодинамик генерирует звук самостоятельно с помощью встроенного генератора частоты и требует постоянного напряжения. Пассивный пьезодинамик требует ШИМ-сигнала для генерации звука. Чтобы определить активную пищалку Ардуино, подайте на элемент постоянное напряжение, если зуммер пищит, значит он активен.
Как подключить к Ардуино пьезоэлемент (buzzer)

Схема подключения Ардуино с зуммером очень проста, подключите длинную ножку пищалки к цифровому контакту (в нашем примере контакт 11) и короткую ножку к GND. Некоторые активные модули buzzer для платы Arduino могут иметь неисправность в проводке. Если звук на пищалке отсутствует, попробуйте поменять местами провода +5В и GND. Иногда контакты питания пьезоэлемента подключены неправильно.
Скетч для пьезоэлемента (пищалки) Ардуино
Звука сирены на Ардуино, имитация с зуммером

Пьезопищалка может использоваться в различных проектах для звуковой индикации работы каких-либо устройств, а также для воспроизведения сигнала сирены и тревоги. В следующем примере программы реализована возможность создания сирены на Ардуино с помощью пищалки. Для плавного изменения частоты звука пищалки (вы можете подставить свои значения в программе) использован цикл for в следующем скетче.
Скетч плавного включения и выключения пищалки
Ардуино терменвокс с фоторезистором и зуммером

Для регулировки частоты звука используется фоторезистор, но можно также использовать потенциометр или любой другой аналоговый датчик. В следующей программе переменную ton, которая соответствует показаниям аналогового входа A1, мы преобразуем с помощью функции map в диапазон значений частоты звука от 1000 до 5000 Гц. Соберите схему, как на картинке и загрузите в микроконтроллер следующую программу для спикера.
Скетч терменвокса на Ардуино с фоторезистором
Заключение. Мы рассмотрели, как включить пьезодинамик (buzzer) к Arduino. Эта информация будет полезна при создании проектов, требующих звукового сигнала при включении устройства на плате Ардуино или в других случаях. Чтобы уменьшить громкость сигнала динамика активного пьезоэлемента, можно использовать резистор различного номинала, подключив его последовательно в электрическую цепь с динамиком.
