Андрей Смирнов
Время чтения: ~14 мин.
Просмотров: 112

Воспроизведение аудиофайлов с помощью Ардуино без сторонних плееров и SD-карт

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

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

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

active_buzzer_2-550x550-e1566961989134.jpg
Пьезоэлемент “пищалка”

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

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

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

1-e1566961887910.jpg
Модуль пищалки для Ардуино

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

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

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

Наш традиционный обзор предложений на 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 Гц. 

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

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

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

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

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

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

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

Скетч

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

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

Заключение

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

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

Модули Ардуино позволяют создать множество различных электронных устройств, которые будут работать по несложным программам. Одним из таких устройств является компактный плеер. Ардуино плеер, проигрывающий WAV и МР3 файлы, может быть реализован на базе любого контроллера (Uno, Nano, Mega и т.п.) с помощью адаптера micro-SD, который позволяет записывать и считывать музыкальные файлы.

Формирование звука на Arduino

Несмотря на то, что платформа Arduino, в основном, предназначена для работы с цифровыми устройствами, в архитектуру микроконтроллеров входят аналого-цифровой и цифро-аналоговый преобразователи и несколько каналов широтно-импульсной модуляции. Это позволяет осуществлять захват звуковых сигналов и их воспроизведение. Платформа Ардуино включает в себя как 8-битные AVR контроллеры, так и мощные 32 битные ARM процессоры. Принцип воспроизведения файлов Arduino MP3 не позволяет обеспечить высокое качество звука, поскольку с выхода контроллера снимаются импульсы прямоугольной формы (меандр), отличающиеся от идеального синусоидального сигнала.

Самым бюджетным модулем платформы Ардуино, является Arduino UNO с микроконтроллером ATmega 328, в котором интегрированы два 8-битных и один 16-битный счётчик, каждый из которых может быть использован для генерации ШИМ. Контроллеры получают сигналы от внешних источников и выдают свои собственные сигналы через порты ввода/вывода (GPIO). Теоретически порты микроконтроллера предназначены для работы с уровнями логического нуля и логической единицы, тем не менее, выводы GPIO позволяют оцифровывать аналоговые сигналы с ограничением по уровню и генерировать сигналы различной формы с помощью ШИМ и фильтра низких частот. Внешние данные могут поступать разными способами, но основным методом оцифровки звукового сигнала является использование АЦП.

Так же данные могут поступать на микроконтроллер через первый разряд порта ввода/вывода. Аналого-цифровой преобразователь позволяет точно оцифровывать входной сигнал с разрешением до 10 бит. Оцифровка может выполняться на более высокой скорости преобразования, но при этом уменьшается точность, так как два младших бита игнорируются. После того как входной сигнал был оцифрован и прошёл необходимые преобразования он может быть конвертирован в аналоговую форму через блок ШИМ. Амплитуда сигнала кодируется через соотношение длительностей логического нуля и логической единицы. Важным этапом обработки выходного сигнала является фильтрация, удаляющая высокочастотные компоненты модуляции. Так же фильтры ограничивают частотный диапазон звукового сигнала.

Для воспроизведения отдельных частот звукового диапазон можно использовать внутренний генератор Arduino. Для этого достаточно подключить к плате пьезоэлектрический динамик и задать простую функцию. Динамик подключается между контактами GND и «2» разъема Digital. Динамик нужно подключать через резистор 100 Ом. Далее задаётся конкретная функция. Выбирается контакт const byte dinPin = 2; Контакт настраивается как выходной pinMode (dinPin, output); //. Затем командой tone можно включить генератор с заданной частотой. Команда выглядит следующим образом: tone ( dinPin, 440 ) ; // Получился электронный камертон генерирующий ноту Ля первой октавы. Нота будет звучать до тех пор, пока генерация не прекратится командой noTone (  dinPin  ); //

Плеер для Ардуино

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

  • Адаптер для карт памяти.
  • Соединительные провода.
  • Динамик 8 Ом.
  • Транзистор BC 546 B.

На транзисторе собран усилитель низкой частоты. Без него можно обойтись, подключив к  плате Ардуино высокоомный пьезоэлектрический динамик, но он имеет ограниченный частотный диапазон и не обеспечит нормального качества звучания. Arduino wav-файлы воспроизводит нормально, а вот для чтения файлов в формате МР3 он не предназначен, поэтому все звуковые файлы нужно конвертировать в формат wav, используя программу Online-convert.com.  Файлы записываются в формате wav pcm Mono 8 kHz 8 bit. SD-карту памяти нужно отформатировать и затем перенести на неё wav файлы с простыми идентификаторами типа “001.wav.  Адаптер для чтения SD-карт имеет встроенный стабилизатор напряжения, поэтому обе платы можно питать от одного источника +5 В. Адаптер подключается к плате Ардуино следующим образом:

  • CS – 10 контакт.
  • MOSI –11 – “ – “.
  • MISO –12 – “ – “.
  • CLK – 13 – “ – “.
  • GND – земля.
  • 5 V – питание + 5 В.

Для работы устройства следует загрузить библиотеку TMRpcm-Arduino, которая предназначена для чтения файлов в формате wav непосредственно с  карты памяти. Библиотека поддерживает все модули, выполненные на микроконтроллере ATmega328.

Модуль МР3 для ардуино

Более сложной модификацией плеера является вариант с использованием отдельного устройства, где датчик МР3 позволяет воспроизводить файлы именно в этом формате.  Обычным носителем информации в мини плейерах является твердотельный накопитель информации или карата памяти micro-SD. На ней располагаются звуковые файлы определённого формата. Чаще всего используются карты с ёмкостью, не превышающей 32 Гб. Для подключения к Arduino удобно использовать DF Player Mini MP3. Он представляет собой компактную плату, на которой находятся следующие компоненты:

  • Слот для установки карты.
  • Усилитель звуковой частоты.
  • Дискретные элементы.

Питание модуля осуществляется от источника постоянного тока с напряжением 3,5-5,0 В. Плейер поддерживает форматы MP3, WAV, WMA и TF карты с системами FAT16 и FAT32. В устройстве имеется возможность управлять уровнями громкости от 0 до 30 и включать одну из 6 предустановленных настроек эквалайзера. Подключение плеера к ардуино выполняется следующим образом:

  • VCC – + 5 V
  • RX – RX
  • TX – TX
  • SPK 1 – динамик
  • SPK 2 – динамик
  • GND – GND

Линии RX и TX подключаются через резисторы 1 кОм. Для того чтобы устройство заработало нужно загрузить библиотеку Mini mp3 Arduino Library V2.0. Основной набор команд, выполняемых плеером:

  • Mp3_play (0002) – воспроизведение файла с указанным номером.
  • Mp3_stop – остановка воспроизведения.
  • Mp3_next – следующий файл.
  • Mp3_prev – предыдущий файл.
  • Mp3_set_volume – выбор уровня громкости.
  • Mp3_set_EQ (0-5) – выбор предустановки эквалайзера.

Если подключить к плееру USB порт через контакты USB «+» и «–», то можно воспроизводить звуковые файлы, записанные на флэш-карте.

СОДЕРЖАНИЕ ►

Подключить пьезо пищалку к Arduino можно несколькими способами. На этом занятии продолжим изучение микроконтроллера Arduino на простых примерах. Соберем электрическую схему с пьезодинамиком (зуммером) на макетной плате. Рассмотрим устройство пьезоизлучателей, назначение процедуры void setup () и void loop (), а также свойство функции tone () в языке программирования Arduino IDE.

Устройство пьезоизлучателя (пьезодинамика)

Благодаря низкой стоимости и малого потребления энергии, по сравнению с динамиками, пьезокерамические излучатели звука (пьезодинамики) — акустические устройства для воспроизведения звука, использующие пьезоэлектрический эффект. Пьезоизлучатели получили широкое распространение: их используют в различных устройствах — будильниках, телефонах, игрушках и в другой технике.

ustrijstvo-piezoizluchatelya.jpg
Фото. Устройство пьезоизлучателя (пьезопищалки) и динамика

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

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

Подключение пьезоизлучателя к Ардуино

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • пьезоизлучатель звука (Arduino buzzer);
  • провода «папа-папа».
podkluchenie-piezoizluchatelya-k-arduino.jpg
Подключение пищалки (буззера) к Ардуино на схеме

После того, как вы собрали схему и подключили пьезоизлучатель и Arduino, как на картинке выше, загрузите следующий скетч в микроконтроллер Arduino Uno. Воспроизведение звука на Ардуино выполняется функцией tone(), где в скобках указывается номер пина и частота звука. Чтобы отключить звук на зуммере (пьезодинамике Ардуино) необходимо использовать функцию noTone().

Скетч включения пьезодинамика функцией tone

voidsetup() {     pinMode(11, OUTPUT); // объявляем пин 11 как выход  }    voidloop() {       tone (11, 600); // включаем на пьезодинамик 600 Гцdelay(1000); // ждем 1 секундуtone(11, 900); // включаем на пьезодинамик 900 Гцdelay(1000); // ждем 1 секундуnoTone(11); // отключаем пьезодинамик на пин 11delay(1000); // ждем 1 секунду    }

Пояснения к коду:

  1. процедуры setup и loop Ардуино должны присутствовать в любой программе (скетче), даже если вам не нужно ничего выполнять в них — пусть они будут пустые, просто не пишите ничего между фигурными скобками;
  2. каждой открывающей фигурной скобке { всегда соответствует закрывающая }. Они обозначают границы некого логически завершенного фрагмента кода. Следите за вложенностью фигурных скобок в программе.

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

voidsetup() {     pinMode(11, OUTPUT); // объявляем пин 11 как выход  }    voidloop() {     // увеличиваем частоту звукаfor (int x = 0; x < 500 ; x++){       tone (11, x);       delay(1);       }     // уменьшаем частоту звукаfor (int x = 500; x > 0 ; x--){       tone (11, x);       delay(1);       }  }

Пояснения к коду:

  1. для изменения частоты активного зуммера Ардуино используется цикл for, с помощью которого мы перебираем частоту звука от 0 до 500 и обратно.

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

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

  • https://arduinomaster.ru/uroki-arduino/pishhalka-pezodinamik-arduino/
  • https://arduinomaster.ru/datchiki-arduino/arduino-mp3-wav-modul/
  • https://xn--18-6kcdusowgbt1a4b.xn--p1ai/%d0%bf%d1%8c%d0%b5%d0%b7%d0%be%d0%bf%d0%b8%d1%89%d0%b0%d0%bb%d0%ba%d0%b0-%d0%b0%d1%80%d0%b4%d1%83%d0%b8%d0%bd%d0%be/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации