Как подключить пьезоизлучатель (пьезопищалку) к Arduino

Описание и схема работы зуммера

Зуммер, пьезопищалка – все это названия одного устройства.  Данные модули используются для звукового оповещения в тех устройствах и системах, для функционирования которых в обязательном порядке нужен звуковой сигнал. Широко распространены зуммеры в различной бытовой технике и игрушках, использующих электронные платы. Пьезопищалки преобразуют команды, основанные на двухбитной системе счисления 1 и 0, в звуковые сигналы.

Пьезоэлемент “пищалка”

Пьезопищалка конструктивно представлена металлической пластиной с нанесенным на нее напылением из токопроводящей керамики. Пластина и напыление выступают в роли контактов. Устройство полярно, имеет свои «+» и «-». Принцип действия зуммера основан на открытом братьями Кюри в конце девятнадцатого века пьезоэлектрическом эффекте. Согласно ему, при подаче электричества на зуммер он начинает деформироваться. При этом происходят удары о металлическую пластинку, которая и производит “шум” нужной частоты.

Устройство пьезодинамика пищалки

Нужно также помнить, что зуммер бывает двух видов: активный и пассивный. Принцип действия у них одинаков, но в активном нет возможности менять частоту звучания, хотя сам звук громче и подключение проще. Подробнее об этом чуть ниже.

Модуль пищалки для Ардуино

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

Если сравнивать с обыкновенными электромагнитными преобразователями звука, то пьезопищалка имеет более простую конструкцию, что делает ее использование экономически обоснованным. Частота получаемого звука задается пользователем в программном обеспечении (пример скетча представим ниже).

1Схема подключения пьезоизлучателяк Arduino

Пьезоизлучатель, или пьезоэлектрический излучатель, или «пьезопищалка» – это электроакустическое устройство воспроизведения звука, использующие обратный пьезоэлектрический эффект. Принцип действия его основан на том, что под действием электрического поля возникает механическое движение мембраны, которое и вызывает слышимые нами звуковые волны. Обычно такие излучатели звука устанавливают в бытовую электронную аппаратуру в качестве звуковых сигнализаторов, в корпуса настольных персональных компьютеров, в телефоны, в игрушки, в громкоговорители и много куда ещё.

Пьезоизлучатель имеет 2 вывода, причём полярность имеет значение. Поэтому чёрный вывод подключаем к земле (GND), а красный – к любому цифровому пину с функцией ШИМ (PWM). В данном примере положительный вывод излучателя подключён к выводу “D3”.

Схема подключения пьезоизлучателя к Arduino и схема, собранная на макетной плате

Отличия активного и пассивного зуммера

Главное отличие активного зуммера от пассивного заключается в том, что активный зуммер генерирует звук самостоятельно. Для этого пользователь должен просто включить или выключить его, другими словами, подав напряжение на контакты или обесточив. Пассивный зуммер же требует источника сигнала, который задаст параметры звукового сигнала. В качестве такого источника может выступать плата Ардуино. Активный зуммер будет выдавать более громкий звуковой сигнал в сравнении с его конкурентом. Частота излучаемого звука активного зуммера составляет значения 2,5 кГц +/- 300Гц. Напряжение питания для пищалки варьируется от 3,5 до 5 В.

Активный пьезоизлучатель предпочтительней еще из-за того, что в скетче не потребуется создавать дополнительный фрагмент кода с задержкой, влияющий на рабочий процесс. Также для определения того, что за элемент находится перед пользователем, можно измерить сопротивление между двумя проводами. Более высокие значения будут указывать на активный зуммер ардуино.

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

Подробнее о модулях:

Trema-модуль зуммер пассивный основан на электромагнитном излучателе, который состоит из кольцевого магнита, сердечника с электромагнитной катушкой и гибкой металлической мембраны. Электромагнитная катушка преобразует электрические колебания в магнитные, а мембрана преобразует магнитные колебания в механические. Полученные механические колебания распространяются по воздуху в виде звуковых волн. Пластиковый корпус, с отверстием, усиливает акустический эффект.

Trema-модуль зуммер пассивный не имеет встроенного генератора, а преобразует электрический сигнал со входа (S) в механические колебания воздуха. Таким образом частота излучаемого звука соответствует частоте сигнала подаваемого на вход модуля. Чем выше частота, тем «тоньше» звук. Чем ближе частота к резонансной, тем звук сильнее.

Самый простой способ получения звука заключается в применении функции tone(). Данная функция генерирует меандр (сигнал прямоугольной формы с равной длительностью импульсов и пауз), с заданной частотой и длительностью.

Trema-модуль зуммер активный состоит из 5В генератора прямоугольных импульсов (меандра) с частотой 2,3 кГц, и электромагнитного излучателя в одном корпусе. Сигнал с генератора подается на электромагнитный излучатель и преобразуется в звуковые волны той же частоты.

Trema-модуль зуммер активный  уже имеет встроенный генератор и для генерации звука ему не требуется использование функции beep() и ей аналогичных (как для простого Trema-зуммера). Достаточно установить состояние логической «1» на выводе «S» и Вы услышите сигнал с частотой 2,3 кГц и уровнем звукового давления не ниже 85дБ/10см.

Подключения зуммера к Arduino

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

Подключение пищалки к Ардуино (порт 12)

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

Схема подключения зуммера

На некоторых вариантах корпусов зуммера можно найти отверстие для фиксации платы при помощи винта.

Зуммер arduino имеет два выхода. Следует обратить внимание на их полярность. Темный провод должен быть подключен к «земле», красный – к цифровому пину с PWM. Один вывод настраивается в программе как «вход». Arduino отслеживает колебания напряжения на выводе, на который подаётся напряжение с кнопки, резистора и датчиков.

Пищалка Арудино с названиями контактов

Напряжение на «вход» подается различное по значениям, система четко фиксирует только два состояния – вышеупомянутые 1 и 0 (логические ноль и единица). К логической единице будет относиться напряжение 2,3-5 В. Режим «выход» – это когда Arduino подает на вывод логический ноль/единицу. Если брать режим логического нуля, тут величина напряжения настолько мала, что ее не хватает для зажигания светодиода.

Схема подключения пищалки к Ардуино

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

Подключение Зуммера.

Подключение к схеме проводиться как у батарейки или диода. На устройстве есть обозначения «+» и «-». Подключаем их к питающему напряжению от 3 до 20 вольт, и радуемся получаемому звуку. У зуммера есть небольшая инерционность, и после отключения питания он ещё некоторое время будет звучать. Поэтому на нём моделировать звук не получиться, а вот как тревожная сигнализация получиться что надо.

Управляют ими обычно при помощи усилителя на биполярных транзисторах с общим эмиттером. Это позволяет от вашего МК(ARDUINO/SMT32/MSP430) делать даже полифоничный звук. Но при этом надо учитывать то, что есть зумеры с встроенным генератором. Они пищат прерывисто, с определённой частотой. Это позволяет используя разные зумеры, которые говорят о разных событиях. Стоят они дороже, но если вы собираете что-то без микроконтроллера, то это отличный финт ушами.

Пример скетча для пьезодимнамика

Для “оживления” подключенного к плате ардуино зуммера потребуется программное обеспечение Arduino IDE, которое можно скачать на нашем сайте.

Одним из простейших способов заставить заговорить пищалку является использование функции «analogwrite». Но лучше воспользоваться встроенными функциями. За запуск звукового оповещения отвечает функция «tone()», в скобках пользователю следует указывать параметры частоты звука и номера входа, а также времени. Для отключения звука используется функция «noTone()».

Пример скетча с функцией tone() и noTone()

//Пин, к которому подключен пьезодинамик.  int piezoPin = 3;     void setup() {     }    void loop() {       /*Функция принимает три аргумента      1) Номер пина      2) Частоту в герцах, определяющую высоту звука      3) Длительность в миллисекундах.     */    tone(piezoPin, 1000, 500); // Звук прекратится через 500 мс, о программа останавливаться не будет!      /* Вариант без установленной длительности   */    tone(piezoPin, 2000); // Запустили звучание    delay(500);    noTone(); // Остановили звучание      }

Схема подключения для примера выглядит следующим образом:

Подключение пищалки к 3 пину Ардуино

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

Невозможно одновременно использовать ШИМ на пинах 3 и 11 (они используют одинаковый внутренний таймер), а также нельзя запустить одновременно две мелодии двумя командами tone() – в каждый момент времени будет исполняться только одна.Еще одно ограничение: нельзя извлечь звук частотой ниже 31 Гц. 

Вариант скетча для активного зуммера чрезвычайно прост. С помощью digitalWrite() мы выставляем значение 1 в порт, к которому подключена пищалка.

Вариант скетча для зуммера без tone()

Пример скетча для варианта без функции tone() представлен на изображении внизу. Этот код задает частоту включения звука один раз в две секунды.

Пример скетча

Для корректной работы устройства необходимо задать номер PIN, определить его как «выход». Функция analogWrite использует в качестве аргументов номер вывода и уровень, который изменяет свое значение от 0 до 255. Это все по причине того, что шим-выводы Arduino имеют ЦАП (цифроаналоговый преобразователь) 8-бит. Изменяя этот параметр, пользователь меняет громкость зуммера на небольшую величину. Для полного выключения следует пропитать в порте значение «0». Следует сказать, что используя функцию «analogwrite», пользователь не сможет изменять тональность звука. Для пьезоизлучателя будет определена частота 980 Гц. Это значение совпадает с частотой работы выводов с шим на платах Ардуино и аналогов.

Связанные материалы

Изготовление и установка LED-ламп на штатные места в автомобиле Porsche 924… Статья посвящена модернизации освещения машины через рукодельное, то есть очень кустарное… Повышающий преобразователь напряжения +12V для облегчения зимнего запуска двигателя автомобиля… При запуске двигателя внутреннего сгорания в холодное время года возникают известные всем… Простой контроллер ДХО без микроконтроллеров. Проверено в суровых условиях Якутской зимы… Приветствую сограждан Датагории! Я хочу рассказать вам историю создания мной контроллеров ДХО… Мой путь к электронике… Моё детство было довольно интересным, чем я и горжусь. На дворе начался новый век с инфляцией и… Схемка в блокнот. Низковольтный стабилизатор напряжения (от 0,7V; пригоден для зарядки и питания мобильного телефона)… При изготовлении разного рода устройств с использованием мобильного телефона (МТ), например GSM… Бездроссельный автомобильный блок питания на IRS2153 для ноутбука и IPhone… Возникла необходимость запитать свой ноутбук от бортовой сети автомобиля. Не люблю возиться с… Блок управления на PIC12F629 для дневных ходовых огней (ДХО) автомобиля… Делал я как-то раз одну систему для автомашины, не своей правда. Так вот, эта система определяла… Простое зарядное устройство-автомат на LM317 с фиксированным током зарядки и ограничением напряжения… Зарядное устройство для щелочных и свинцовых аккумуляторов ёмкостью до 10-15 Ампер-час, для… Автомобиль Škoda Felicia — LED освещение салона… Здравствуйте, датагорчане! Сегодня освещаем Škoda Felicia. Имел в своем пользовании поочередно 3… ДХО, дневные ходовые огни: ШИМ-регулятор яркости дальнего света на NE555… В статье изложен вариант автоматических дневных ходовых огней (ДХО) для автомобиля на базе ШИМ… Балластный регулятор для ветрогенератора (ветряка)… После того, как ветряк построен и работает, рано или поздно встает вопрос об утилизации лишней… Инвертор 12V > 220V для автомобиля… Попалась интересная и простая схемка преобразователя 12 В в 220 В на забугорных ресурсах. Обещают…

Примеры мелодий для зуммера

Для того, чтобы разнообразить работу с новым проектом, добавить в него «развлекательный» элемент, пользователи придумали задавать определённый набор частот звука, делая его созвучным некоторым знаменитым композициям из песен и кинофильмов. Разнообразные скетчи для таких мелодий можно найти в интернете. Приведем пример мелодии для пьезопищалки для одного из самых узнаваемых треков «nokia tune»из ставших легендарными мобильников Nokia. Файл pitches.h можно сделать самим, скопировав его содержимое так, как указано в этой статье на официальном сайте.

Скетч

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

Частота нот для пищалки Ардуино

Примеры для зуммера пассивного :

Вывод двух коротких звуковых сигнала функцией tone(), сигнализирующих о включении Arduino:

Обратите внимание на то, что в примере между двумя вызовами функции tone() устанавливается задержка на 0,2 секунды, а в комментарии написано «не выводим звук в течении 0,1 сек». Дело в том, что функция tone() выводит сигнал используя прерывания аппаратного таймера и не приостанавливает выполнение скетча на время вывода сигнала. Значит, сразу после начала вывода первого звукового сигнала, стартует функция delay(), приостанавливая выполнение скетча на 0,2 сек. но звук продолжает выводиться. Значит первые 0,1 сек – выводится сигнал, следующие 0,1 сек – тишина и последние 0,1 – опять выводится сигнал.

Может возникнуть ситуация, когда использование функции tone() невозможно, например, если аппаратный таймер используется для других целей. Тогда сигнал придётся генерировать самим, используя функцию digitalWrite():

Тот же пример, но без использования функции tone():

Обратите внимание на то, что теперь задержка между первым и вторым вызовом функции myTone() соответствует паузе между сигналами в 0,1 сек, так как функция myTone() приостанавливает выполнение скетча на время вывода звукового сигнала.

Сама функция myTone() не сложна в понимании:

  • Сначала значение переменной j получившей частоту в Гц преобразуем в длительность одного полупериода в мкс.Период T = 1 / F (сек), значит полупериод L = 0,5 T (сек) = 0,5 / F (сек) = 500'000 / F (мкс).
  • Далее к переменной k получившей длительность импульса, добавляется время с начала старта скетча millis()
  • Конфигурируем вывод номер которого получила переменная i как выход
  • Чередуем на выводе i логические уровни, устанавливая их на длительность Jпока время прошедшее с момента старта скетча millis() не сравняется со значением переменной k.

2Извлекаем звук из пьезоизлучателяс помощью функции analogWrite()

Пьезопищалку можно задействовать разными способами. Самый простой из них – это использовать функцию analogWrite(). Пример скетча – во врезке. Данный скетч попеременно включает и выключает звук с частотой 1 раз в 2 секунды.

Задаём номер пина, определяем его как выход. Функция analogWrite() принимает в качестве аргументов номер вывода и уровень, который может быть от 0 до 255, т.к. ШИМ-выводы Ардуино имеют 8-битный ЦАП. Это значение будет изменять громкость пьезопищалки в небольших пределах. Чтобы выключить пьезопищалку, нужно послать в порт значение “0”.

Используя функцию analogWrite(), нельзя изменять тональность звука, к сожалению. Пьезоизлучатель всегда будет звучать на частоте примерно 980 Гц, что соответствует частоте работы выводов с широтно-импульсной модуляцией сигнала (ШИМ) на платах Arduino UNO и подобных.

Используемые источники:

  • https://arduinomaster.ru/uroki-arduino/pishhalka-pezodinamik-arduino/
  • https://soltau.ru/index.php/arduino/item/357-how-connect-buzzer
  • https://wiki.iarduino.ru/page/zummer-trema-modul/
  • https://meanders.ru/buzzer.shtml
  • https://datagor.ru/practice/car-electronics/2065-zummer-gabaritov-avtomobilya.html

Добавить комментарий

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