Подключение пищалки к arduino. Динамик. Схема подключения пьезоизлучателя к Arduino

Windows

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

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

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

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

2 с помощью функции analogWrite()

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

/* Объявляем переменную с номером вывода, к которому подключён пьезоэлемент: */ int soundPin = 3; void setup() { // ставим пин "3" в режим работы "Выход": pinMode(soundPin, OUTPUT); } void loop() { analogWrite(soundPin, 50); // включаем пьезоизлучатель delay(1000); // на 1000 мс (1 сек), analogWrite(soundPin, 0); // выключаем звук delay(1000); // на 1 сек. }

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

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

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

Но частоту звучания можно менять по-другому. Для этого извлечём звук из пьезоизлучателя посредством встроенной функции tone() . Пример простейшего скетча приведён на врезке.

Int soundPin = 3; /* объявляем переменную с номером пина, на который мы подключили пьезоэлемент */ void setup() { pinMode(soundPin, OUTPUT); //объявляем пин 3 как выход. Serial.begin(9600); // будем выводить в порт текущую частоту } void loop() { for (int i=20; i

Функция tone() принимает в качестве аргументов номер вывода Arduino и звуковую частоту. Нижний предел частоты - 31 Гц, верхний предел ограничен параметрами пьезоизлучателя и человеческого слуха. Чтобы выключить звук, посылаем в порт команду noTone() .

А вот так будет выглядеть временная диаграмма сигнала, который генерирует функция tone() . Видно, что каждые 100 мс частота увеличивается, что мы и слышим:

Временная диаграмма сигнала функции tone()

Как видите, с помощью пьезоизлучателя из Ардуино можно извлекать звуки. Можно даже написать несложную музыкальную композицию, задав ноты соответствующими частотами, а также определив длительность звучания каждой ноты посредством функции delay() .

Обратите внимание, что если к Ардуино подключены несколько пьезоизлучателей, то единовременно будет работать только один. Чтобы включить излучатель на другом выводе, нужно прервать звук на текущем, вызвав функцию noTone() .

Важный момент: функция tone() накладывается на ШИМ сигнал на "3" и "11" выводах Arduino. Т.е., вызванная, например, для пина "5", функция tone() может мешать работе выводов "3" и "11". Имейте это в виду, когда будете проектировать свои устройства.

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

Обычно в электронике используются два типа источников звука:

  • громкоговоритель (динамик);
  • звукоизлучатель (зуммер).

В этом уроке мы поговорим о динамике. Разберем подробно его устройство и попробуем проиграть мелодию на Ардуино!

Громкоговоритель, он же динамик

Все громкоговорители можно разделить на два подтипа: электродинамический и пьезоэлектрический. Именно от названия первого подтипа пошло хорошо известное нам название динамик .

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

Кроме магнита в динамике еще есть небольшая электромагнитная (или звуковая) катушка, намотанная тонким лакированным проводом. Катушка приклеена к гофрированному подвесу и к диффузору. Все эти части изображены на схеме разреза динамика.

Человеку, знакомому со школьным курсом физики не составит труда догадаться как работает это устройство. Мы знаем, что если подать на звуковую катушку напряжение, то в её витках возникнет электрический ток (ну это уж совсем очевидно). Согласно закону Ампера, на проводник с током, находящийся в магнитном поле будет действовать сила Ампера.

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

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

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



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


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



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


Создадим с помощью пьезодатчика и Arduino простой проект, в котором датчик будет выдавать напряжение, когда он будет подвергаться любому физическому напряжению. Этот датчик может использоваться для создания схемы, которая реагирует на стук и включает или выключает нагрузку. Для этой схемы помимо пьезоэлектрического датчика мы подключим светодиод к микроконтроллеру Arduino. Когда датчик будет реагировать на физическое воздействие, плата Arduino будет включать светодиод на определенное время и затем выключать его. Пьезочувствительный датчик представляет собой поляризованный компонент с положительными и отрицательными выводами. Красный провод – положительный вывод, а черный провод – отрицательный вывод. Положительный вывод подключен к аналоговому выводу A0 платы Arduino, в то время как отрицательная клемма заземлена на клемме GND Arduino. Анод светодиода подключен к цифровому контакту 13, а его катоду к GND платы Arduino. Схема подключения Arduino и пьезоэлектрического датчика приведена ниже.




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


const int sensorPin=0; const int ledPin= 13; const int threshold= 100; void setup() { pinMode(ledPin, OUTPUT); } void loop() { int val= analogRead(sensorPin); if (val >= threshold) { digitalWrite(ledPin, HIGH); delay(5000); digitalWrite(ledPin, LOW); } else digitalWrite(ledPin, LOW); }

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

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

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

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


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


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

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

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

Где купить пищалку Ардуино

Наш традиционный обзор предложений на Aliexpress

Громкий пьезодинамик – пищалка 3-24 Вольт, подходит для Ардуино Простейшие пассивные пьезоизлучатели 12MM*8.5MM 3-12В, набор 5 штук
Модуль пьезодинамика с необходимой обвязкой для работы с Ардуино Пищалки с разъемами для подключения к материнской плате компьютера Набор из 10 активных спикеров – пьезопищалок

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

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

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

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

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

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


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

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

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

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


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

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


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

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

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

Для “оживления” подключенного к плате ардуино зуммера потребуется программное обеспечение 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 Гц.

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

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

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


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

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

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


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

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

Заключение

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

  1. Arduino uno: http://ali.ski/F2M5FU
  2. Контактные провода: http://ali.ski/xUGe19
  3. Пьезоизлучатель: http://ali.ski/-jD9q_

В данном уроке мы подключим пьезоизлучатель к ардуино. С помощью пьезоизлучателя, можно генерировать разные тоны и простые 8 битные мелодии.

Пьезоэлектри́ческий излуча́тель , пьезоизлуча́тель - электроакустическое устройство, способное воспроизводить звук , либо излучать ультразвук , благодаря обратному пьезоэлектрическому эффекту .

Конструкция:

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

Пьезоизлучатели бывают 2 видов: Активный и пасивный. Активный пьезоизлучатель имеет 3 пина. Пин +, -, и пин i/o при подаче на который логической 1 будет воспроизводиться звук.

Пассивный пьезоизлучатель имеет 2 ножки +,- он воспроизводит звук сразу же кактолько на него подается напряжение.

В данном примере, мы будем использовать именно активный зумер с тремя контактами.

Применение:

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

Пьезоизлучатель также может использоваться в качестве пьезоэлектрического микрофона или датчика.

Подключение: по схеме видно что +,- зумера мы подключаем к +,- ардуино, а пин i/o зумера мы подключаем к 13 пину ардуино.

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

Int SoundPin = 13; //Объявляем переменную, к которой подключен пин пьезоизлучателя int DelaySound = 1000; //Пауза 1 секунда void setup() { } void loop() { tone(SoundPin, 1915); // Воспроизводим сигнал с частотой 1915 Гц delay(DelaySound); //Пауза 1 секунда (1000 милисекунд - значение переменной DelaySound) - длительность воспроизведения сигнала tone(SoundPin, 1700); delay(DelaySound); tone(SoundPin, 1519); delay(DelaySound); tone(SoundPin, 1432); delay(DelaySound); tone(SoundPin, 1275); delay(DelaySound); tone(SoundPin, 1136); delay(DelaySound); tone(SoundPin, 1014); delay(DelaySound); noTone(7); //Выключаем звук }

Прослушать и увидеть данную реализацию можно ниже в видео.

Видео: