Пищалка на Ардуино, которую часто еще называют зуммером, пьезодинамиком или даже баззером – частый гость в DIY проектах.
Этот простой электронный компонент достаточно легко подключается к платам Arduino, поэтому вы можете быстро заставить вашу схему издавать нужные звуки – сигнализировать, пищать или вполне сносно проигрывать мелодию.
В данной статье расскажем про отличие активных и пассивных зуммеров, разберем схему подключения пьезоэлемента к плате Ардуино и покажем пример скетча для управления пищалкой. А еще вы найдете пример мелодии, которыми cможете снабдить свой проект.
Описание и схема работы зуммера
Зуммер, пьезопищалка – все это названия одного устройства.
Данные модули используются для звукового оповещения в тех устройствах и системах, для функционирования которых в обязательном порядке нужен звуковой сигнал.
Широко распространены зуммеры в различной бытовой технике и игрушках, использующих электронные платы. Пьезопищалки преобразуют команды, основанные на двухбитной системе счисления 1 и 0, в звуковые сигналы.
Пьезоэлемент “пищалка”
Пьезопищалка конструктивно представлена металлической пластиной с нанесенным на нее напылением из токопроводящей керамики. Пластина и напыление выступают в роли контактов. Устройство полярно, имеет свои «+» и «-».
Принцип действия зуммера основан на открытом братьями Кюри в конце девятнадцатого века пьезоэлектрическом эффекте. Согласно ему, при подаче электричества на зуммер он начинает деформироваться.
При этом происходят удары о металлическую пластинку, которая и производит “шум” нужной частоты.
Устройство пьезодинамика пищалки
Нужно также помнить, что зуммер бывает двух видов: активный и пассивный. Принцип действия у них одинаков, но в активном нет возможности менять частоту звучания, хотя сам звук громче и подключение проще. Подробнее об этом чуть ниже.
Модуль пищалки для Ардуино
Конструктивно модуль исполняется в самых разных вариантах. Самый рекомендуемый для подключения к ардуино – готовый модуль со встроенной обвязкой. Такие модули можно без особого труда купить в интернет-магазинах.
Если сравнивать с обыкновенными электромагнитными преобразователями звука, то пьезопищалка имеет более простую конструкцию, что делает ее использование экономически обоснованным. Частота получаемого звука задается пользователем в программном обеспечении (пример скетча представим ниже).
Где купить пищалку Ардуино
Наш традиционный обзор предложений на Aliexpress
Отличия активного и пассивного зуммера
Главное отличие активного зуммера от пассивного заключается в том, что активный зуммер генерирует звук самостоятельно. Для этого пользователь должен просто включить или выключить его, другими словами, подав напряжение на контакты или обесточив.
Пассивный зуммер же требует источника сигнала, который задаст параметры звукового сигнала. В качестве такого источника может выступать плата Ардуино. Активный зуммер будет выдавать более громкий звуковой сигнал в сравнении с его конкурентом.
Частота излучаемого звука активного зуммера составляет значения 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 аудио и музыку в ардуино.
Датчики касания и звуковые
Это заключительная, шестая часть обзора про различные цифровые датчики для Ардуино платформ. Ранее были выложены обзоры на механические, оптические, магнитные и температурные. Здесь будут рассмотрены датчики звука и касания, чаще всего использующиеся в составе сигнализаций.
Модуль датчика касания KY-036
Модуль, по сути, представляет собой сенсорную кнопку. Как понимает автор, принцип действия устройства основан на том, что, прикасаясь к контакту датчика человек, становится антенной для приема наводок на частоте бытовой сети переменного тока [1-2]. Эти сигналы поступают на компаратор LM393YD
Габариты модуля 42 х 15 х 13 мм, масса 2,8 г., в плате модуля имеется крепежное отверстие диаметром 3 мм. Индикация питания осуществляется светодиодом L1.
При срабатывании датчика загорается (мигает) светодиод L2. Потребляемый ток 3,9 мА в ждущем режиме и 4,9 мА при срабатывании.
Не совсем ясно, какой порог чувствительности датчика должен регулироваться переменным резистором. Данные модули с компаратором LM393YD являются стандартными и к ним припаивают различные датчики, получая, таким образом, модули различного назначения. Выводы питания «G» — общий провод, «+» – питание +5В.
На цифровом входе «D0» присутствует низкий логический уровень, при срабатывании датчика на выходе появляется импульсы с частотой 50 Гц. На контакте «A0» присутствует инвертированный относительно «D0» сигнал [2].
В целом модуль срабатывает дискретно, как кнопка, в чем можно убедиться с помощью программы LED_with_button [3].
Датчик касания позволяет использовать в качестве кнопки управления любую металлическую поверхность, отсутствие движущихся частей должно положительно сказаться на долговечности и надежности.
Модуль датчика звука KY-037
Модуль должен срабатывать от звуков, громкость которых превышает заданный предел. Чувствительным элементом модуля является микрофон, работающий вместе с компаратором на микросхеме LM393YD [4-5].
Габариты модуля 42 х 15 х 13 мм, масса 3,4 г., аналогично предыдущему случаю в плате модуля имеется крепежное отверстие диаметром 3 мм. Индикация питания осуществляется светодиодом L1. Выводы питания «G» — общий провод, «+»– питание +5В.
Потребляемый ток 4,1 мА в ждущем режиме и 5 мА при срабатывании.
На выводе «A0» напряжение изменяется в соответствии уровнем громкости сигналов, принимаемых микрофоном, с повышением громкости показания уменьшаются, в этом можно убедиться с помощью программы AnalogInput2.
Полезное: Вакуумный пинцет для микросхем и SMD элементов
На цифровом входе «D0» присутствует низкий логический уровень, при превышении заданного порога низкий уровень меняется на высокий. Порог срабатывания можно регулировать переменным резистором. При этом загорается светодиод L2. При резком громком звуке наблюдается задержка в 1-2 с при обратном переключении.
В целом полезный датчик для организации системы умного дома или сигнализации.
Модуль датчика звука KY-038
С первого взгляда модуль кажется аналогичным предыдущему. Чувствительным элементом модуля является микрофон, следует отметить, что по данному модулю в сети не так уж много информации [6-7].
Габариты модуля 40 х 15 х 13 мм, масса 2,8 г., аналогично предыдущему случаю в плате модуля имеется крепежное отверстие диаметром 3 мм. Индикация питания осуществляется светодиодом L1. Выводы питания «G» — общий провод, «+»– питание +5В.
При срабатывании геркона загорается светодиод L2. Потребляемый ток 4,2 мА в ждущем режиме и до 6 мА при срабатывании.
- На выводе «A0» при повышении уровня громкости происходит увеличение показаний (использована программа AnalogInput2).
На контакте «D0» присутствует низкий логический уровень, при срабатывании датчика он меняется на высокий. Порог срабатывания настраивается подстроечным резистором (использована программа LED_with_button).
Этот датчик действительно практически не отличается от предыдущего, но взаимозаменяемость их возможна не всегда, т.к. при изменении уровня громкости характер изменения уровня напряжение на аналоговом выходе различается.
Выводы
На этом автор заканчивает обзор большого набора из различных датчиков для аппаратной платформы Arduino. В целом данный набор произвел на автора смешанное впечатление. В набор входят как достаточно сложные датчики, так и совсем простые конструкции. И если в случае наличия на плате модуля токоограничительных резисторов, светодиодных индикаторов и т.п.
автор готов признать полезность подобных модулей, то небольшая часть модулей представляет собой одиночный радиоэлемент на плате. Зачем нужны такие модули, остается непонятным (видимо крепление на стандартных платах служит целям унификации).
В целом набор является неплохим способом познакомиться с большинством широко распространенных датчиков, применяемых в Arduino проектах.
Полезные ссылки
- https://arduino-kit.ru/catalog/id/modul-datchika-kasaniya
- https://www.zi-zi.ru/module/module-ky036
- https://robocraft.ru/blog/arduino/57.html
- https://arduino-kit.ru/catalog/id/modul-datchika-zvuka
- https://www.zi-zi.ru/module/module-ky037
- https://arduino-kit.ru/catalog/id/modul-datchika-zvuka_
- https://smart-boards.ml/module-audiovideo-4.php
Все файлы и даташиты в архиве (скачать). Автор обзора: Denev.
НАЖМИТЕ ТУТ И ОТКРОЙТЕ КОММЕНТАРИИ
YourDuino.ru
Модули KY-038 и KY-037 представляют собой датчики звука. Отличие версии 037 от 038 лишь в размере микрофона. Эти модули находят свое применение в различных системах управления.
Например, такие модули часто устанавливают в подъездах для включения освещения при звуке шагов, что позволяет значительно сэкономить электроэнергию.
Также с помощью этих модулей можно управлять роботом посредством хлопков или других звуков.
Модуль состоит из микрофона и потенциометра, позволяющего регулировать чувствительность датчика. Также в модуле имеется компаратор – устройство, посылающее цифровой сигнал при достижении аналоговым сигналом на входе определенных значений.
Характеристики:
- Питание: 3,3-5 В постоянного тока
- Потребляемый ток: 10 мА
- Выходной сигнал: цифровой и аналоговый
Модуль имеет 4 вывода:
- ”+” – питание
- “G” – “земля”
- “A0” – аналоговый выход, передающий выходное напряжения на микрофоне
- “D0” – цифровой выход, посылающий логическую единицу при достижении порогового уровня громкости
- Подключение к Arduino:
- Для подключения датчика нам необходимы:
- Любая Arduino-совместимая плата
- Компьютер с установленной средой Arduino IDE.
- USB кабель для подключения Arduino к персональному компьютеру
- В примере мы будем рассматривать подключение при помощи проводов типа папа-папа и макетной платы для соединения без пайки.
- 1) Для начала просто подключим датчик к плате, для анализа выходных сигналов.
- Принципиальная схема подключения компонентов:
Скетч:
const int digital = 2; // Цифровой вход пин 2 const int analog = A0; // Аналоговый вход пин A0 void setup() { pinMode(digital, INPUT); Serial.begin(9600); } void loop() { Serial.print(«Digital: «); Serial.print(digitalRead(digital)); // Цифровой сигнал с датчика Serial.print(«, Analog: «); Serial.println(analogRead(analog)); // Аналоговый сигнал с датчика delay(50);
- После того как этот скетч загрузится в плату, откройте монитор порта и наблюдайте за получаемыми значениями в тишине и при возникновении шума.
- Попробуйте изменить чувствительность датчика, вращая винт потенциометра и повторите наблюдение.
- 2) Теперь добавим в нашу схему светодиод и попробуем управлять им с помощью хлопков.
- Для подключения светодиода необходим резистор номиналом около 220 Ом.
- Принципиальная схема подключения компонентов:
Скетч:
const int digital = 2; // Цифровой вход пин 2 const int analog = A0; // Аналоговый вход пин A0 const int led = 9; // Светодиод void setup() { pinMode(led, OUTPUT); Serial.begin(9600); } void loop() { Serial.print(«Digital: «); Serial.print(digitalRead(digital)); // Цифровой сигнал с датчика Serial.print(«, Analog: «); Serial.println(analogRead(analog)); // Аналоговый сигнал с датчика delay(50); if (analogRead(analog) 637){ //Диапозон значений устанавливайте самостоятельно из рассчёта +-4 от показаний в тишине digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); }
Подключение микрофона к Arduino
Микрофонный датчик звука, как следует из названия, фиксирует наличие звука и измеряет его громкость.
Существует большое разнообразие таких датчиков. На рисунке справа представлены лишь несколько простых аналоговых модулей, наиболее часто используемых с платформой Arduino.
Слева на фотографии — модуль микрофона KY-038, справа — модуль микрофона с компаратором LM393.
В модули обоих датчиков встроен потенциометр для регулировки чувствительности цифрового вывода.
Подключение датчика к плате Arduino довольно простое:
Разъём | Подключение к Arduino |
A0 | Аналоговые разъёмы |
D0 | Цифровые разъёмы |
GND | GND |
VCC | 5 V |
Arduino_3.3 | NRF24_Vcc |
Arduino_GND | NRF24_GND |
Если вы используете модуль LM393, то необходимо подключить его вывод OUT (ВЫХОД) к цифровому выводу платы Arduino.
Соедините элементы, как показано на нижеследующей схеме, созданной с помощью программы Fritzing (полный обзор программы по ссылке).
Далее нужно загрузить следующий код в плату Arduino.
/*
* Rui Santos
* Complete Project Details https://randomnerdtutorials.com
*/
int ledPin=13;
int sensorPin=7;
boolean val =0;
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(sensorPin, INPUT);
Serial.begin (9600);
}
void loop (){
val =digitalRead(sensorPin);
Serial.println (val);
// when the sensor detects a signal above the threshold value, LED flashes
if (val==HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}
* Complete Project Details https://randomnerdtutorials.com pinMode(sensorPin, INPUT); val =digitalRead(sensorPin); // when the sensor detects a signal above the threshold value, LED flashes digitalWrite(ledPin, HIGH); digitalWrite(ledPin, LOW); |
После загрузки кода вы можете пощёлкать пальцами рядом с датчиком. Если светодиод не загорается, необходимо изменить чувствительность датчика повернув переключатель потенциометра.
Вы можете настроить чувствительность так, чтобы светодиод следовал ритму определённой музыкальной композиции.
И добавить ещё светодиодов для большего эффекта!
Датчик звука
Скетчи с хлопками
Датчик позволяет через микрофон определить звук (шум), который превысит заданный уровень. Например, определить момент включения мотора, плача ребёнка и другие источники звука. Уровень шума определяется подстройкой потенциометра на модуле.
Кроме того, на модуле есть светодиод, который начинает светиться при обнаружении звука. Также есть второй светодиод, показывающий питание. Иногда встречается название — датчик хлопков, такое определение точнее отражает характер работы.
Подстройка производится экспериментальным путём. Крутите отвёрткой в нужную сторону, пока не добьётесь желаемого результата.
Подключение очень простое — у модуля три вывода: питание 5В, земля и цифровой вывод.
Скетч для модуля.
int soundPin = 10;
int soundVal = HIGH;
boolean alarm = false;
unsigned long lastSoundDetectTime;
int soundAlarmTime = 500; // промежуток времени в миллисекундах
void setup ()
{
Serial.begin(9600);
pinMode(soundPin, INPUT);
}
void loop ()
{
soundVal = digitalRead(soundPin) ; // считываем показания с вывода 10
if (soundVal == LOW) // если появился звук
{
lastSoundDetectTime = millis(); // запоминаем время появления звука
if (!alarm) {
Serial.println(«Alarm! Alarm!»);
alarm = true;
}
}
else
{
if ((millis() — lastSoundDetectTime) > soundAlarmTime && alarm) {
Serial.println(«Quiet»);
alarm = false;
}
}
}
Запустите скетч, откройте Serial Monitor и начинайте говорить. При обнаружении звука на экране появится надпись «Alarm! Alarm!». Данный скетч можно применять для определения ночного тыгыдыка кота в квартире. В реальной жизни чувствительность датчика желает лучшего, на хлопок реагирует, а на голос практически нет.
Модули с цифровым и аналоговым выводами
Также можно встретить модули, у которых четыре вывода: питание, земля, цифровой и аналоговый выводы. К ним относятся модели KY-030 (устар.), KY-037 (микрофон с высокой чувствительностью), KY-038 (конденсаторный микрофон).
Подключение у модулей одинаковое.
KY-037 | Arduino
—————-
AO | A
GND | GND
+ | 5V
DO | D
На модуле датчика должен загореться индикатор питания L1. Необходимо сначала подкрутить подстроечный резистор, настроив чувствительность датчика. В настройке чувствительности поможет индикатор L2.
Если индикатор L2 при включении модуля тоже загорается, крутим подстроечный резистор против часовой стрелки до тех пор, пока не дойдём до момента затухания индикатора.
Если же индикатор L2 находится в выключенном состоянии при включении модуля, значит крутим подстроечный резистор по часовой стрелке, пока не дойдём до момента, когда индикатор начнёт загораться.
В итоге, нужно поймать момент, где чуть повернув подстроечный резистор в одну или другую сторону, индикатор стремиться потухнуть или загореться, и затем нужно повернуть совсем немного против часовой стрелки, чтобы индикатор L2 потух, но при хлопках в ладоши пытался загораться.
Скетч для цифрового вывода смотри выше. Для аналогового вывода напишите самостоятельно.
Включить по хлопку и выключить через несколько секунд
Напишем скетч, в котором будем включать свет по хлопку и выключать через определённое время.
const int sensorD0 = 4; // пин для выхода D0 датчика
const int led = 13; // пин светодиода
void setup ()
{
pinMode(led, OUTPUT); // устанавливаем цифровой пин 2 в режим выхода
}
void loop ()
{
int sensorValue = digitalRead(sensorD0); // получаем сигнал с датчика
if (sensorValue == 1) //если получен сигнал от датчика в виде единицы
{
digitalWrite(led, HIGH); // включаем светодиод
delay(5000); // делаем паузу, чтобы светодиод горел 5 секунд
}
if (sensorValue == 0) // если приходит сигнал от датчика в виде нуля
digitalWrite(led, LOW); // выключаем светодиод
}
Включить и выключать поочерёдно по хлопку
Напишем новый скетч с другой логикой — по первому хлопку включить светодиод, по повторному хлопку светодиод выключим.
const int sensorD0 = 4; // пин для выхода D0 датчика
const int led = 13; // пин светодиода
int ledState = LOW; // статус светодиода «выключен»
void setup ()
{
pinMode(led, OUTPUT);
}
void loop ()
{
int sensorValue = digitalRead(sensorD0); // получаем сигнал с датчика
if (sensorValue == 1 && ledState == LOW) //если порог громкости достигнут и светодиод был выключен
{
digitalWrite(led, HIGH); // включаем светодиод
ledState = HIGH; // устанавливаем статус светодиода «включен»
delay(100); // небольшая задержка для фильтрации помех
}
else {
if (sensorValue == 1 && ledState == HIGH) // если порог громкости достигнут и светодиод был включен
{
digitalWrite(led, LOW); // выключаем светодиод
ledState = LOW; // устанавливаем статус светодиода «выключен»
delay(100); // небольшая задержка для фильтрации помех
}
}
}
Включаем светодиод по двойному хлопку
Следующий скетч поможет избежать случайных срабатываний, будем отслеживать парные хлопки — аналог двойного щелчка мыши.
const int sensorD0 = 4; // пин для выхода D0 датчика
const int led = 13; // пин светодиода
int ledState = LOW; // статус светодиода «выключен»
long soundTime = 0; // время первого хлопка
void setup ()
{
pinMode(led, OUTPUT);
}
void loop ()
{
int sensorValue = digitalRead(sensorD0); // получаем сигнал с датчика
if (sensorValue == 1 && ledState == LOW) //если порог громкости достигнут и светодиод был выключен
{
long curTime = millis(); // запоминаем текущее время
// если текущее время хлопка больше времени последнего хлопка на 100 миллисекунд
// и хлопок произошел не позже чем через 1000 миллисекунд после предыдущего
// считаем такой хлопок повторным и реагируем на него
if ((millis() > soundTime) && ((curTime — soundTime) > 100) && ((curTime — soundTime) < 1000))
{
digitalWrite(led, HIGH); // включаем светодиод
ledState = HIGH; // устанавливаем статус светодиода "включен"
delay(100); // небольшая задержка для фильтрации помех
}
soundTime = millis(); //записываем время последнего хлопка
}
else // иначе
{
if (sensorValue == 1 && ledState == HIGH) // если порог громкости достигнут и светодиод был включен
{
digitalWrite(led, LOW); // выключаем светодиод
ledState = LOW; // устанавливаем статус светодиода "выключен"
delay(100); // небольшая задержка для фильтрации помех
}
}
}
Реклама
Датчик звука KY-037. Ардуино проект
Сегодня в обзоре Датчик звука KY-037. Это продолжение серии про бесконтактные выключатели которые можно посмотреть на моём канале https://www.youtube.com/Ардуинодляначинающих .
Собранное устройство позволяет обнаружить звук и подать сигнал на Ардуино.
Звук должен быть довольно громким, и не верьте тем кто говорит, что можно на этом датчике построить сигнализацию или поставить в коридор и она услышит что кто-то идёт и включит свет. Враньё. В своём видео я показал два примера использования датчика KY-037.
Первый это включение светодиода, а во втором я подключил реле и включаю лампу на 220 вольт.
Ещё я пробовал использовать этот датчик как просто микрофонный усилитель, но не достиг хороших результатов. Единственное что у меня получилось это подключить Аналоговый вход и землю от датчика. Так я смог делать записи в довольно средненьком качестве. А так как Аналоговый вход на датчике – это простое подключение к микрофону, то получилось, что я просто подключил микрофон на вход.
В видео также даны схемы подключения датчика к Ардуино, Показана распиновка модуля, и описание скетчей.
Так что если интересно, то обязательно посмотрите это видео.
Датчик звука KY-037. Ардуино проект.
Сегодня я сделаю обзор, про так называемый Датчик звука для Ардуино. А конкретно про датчик KY-037, который реагирует на звук. Это второе видео из серии «Бесконтактная кнопка или бесконтактный выключатель».
Собранное устройство позволяет обнаружить звук и подать команду на Ардуино.
Правда — это должен быть довольно громкий звук, и находиться он должен на близком расстоянии от микрофона. Я пересмотрел много видео про этот датчик. Не верьте тем, кто говорит, что его можно использовать в качестве охранного устройства или реагировании на шум в комнате. Шум должен быть, ну очень, громкий.
Вот посмотрите простой пример включения лампы от щёлканья пальцами. Позже мы разберём этот пример.
Я пробовал использовать датчик вместо обычного микрофона, и качество записи с него получилось средненькое. Если заинтересовались, то давайте посмотрим примеры работы.
Датчик звука. Подключение к Ардуино.
Давайте рассмотрим две схемы подключения датчика звука KY-037.
Первая для включения светодиода, а вторая чуть посложнее. Она будет включать реле, которое будет включать лампу на 220 вольт.
Светодиод я подключил к 13 пину Ардуино, так как не хотел искать резистор. И написал скетч включения и выключения светодиода от хлопка в ладоши или щёлкнув пальцами. Я даже не написал, а просто взял готовый скетч из урока про Кнопки. Кто не смотрел, советую посмотреть. Ведь уметь работать с кнопками – это почти основное в Ардуино.
На этой схеме я подключил реле, и теперь можно управлять мощными нагрузками. Как это работает вы уже видели в примере.
Если вы хотите управлять устройствами постоянного тока на 12 — 40 вольт, то вместо реле можно использовать транзистор. Он меньше в размере и потребляет значительно меньше. Если надо то я сниму видео как это сделать.
Ky-037 схема
Схема устройства.
микрофон датчика звука — электретный, большой чувствительности. Подключен к компаратору LM393.
Скачать даташит по датчику можно по ссылке в описании или на моём сайте.
Светильник с датчиком звука KY-037
Здесь показан скетч работы датчика звука для включения лампы. Так как мы будем подключать лампу на 220 вольт, то используем для этого модуль реле.
Для того чтобы свет зажегся надо хлопнуть в ладоши или щёлкнуть пальцами. Для выключения надо сделать тоже самое.
Как видите всё очень просто и собирается за несколько минут, а эффект очень большой. Вы сможете всех удивить таким необычным включением света.
Ну вот мы изучили ещё один датчик для Ардуино. Как оказалось – это совсем не сложно.
Если вам понравилось это видео, то поставьте, пожалуйста лайк. Это очень сильно помогает в продвижении канала на ютуб. А я буду видеть, что мои видео нравятся, и буду стараться выпускать их почаще и искать интересные модули и их применение.
How to Use KY-037 Sound Detection Sensor with Arduino
You can read this and other amazing tutorials onElectroPeak's official website
Overview
In this tutorial, you’ll learn how to use the KY-037 sound detection sensor with Arduino. You can measure changes in the intensity of sound in the environment using this module.
What You Will Learn
- Introduction to KY-037 sound detection sensor
- How to use KY-037 sound detection module with Arduino
What is KY-037 Sound Detection Sensor?
This module consists of a sensitive capacitance microphone for detecting sound and an amplifier circuit. The output of this module is both analog and digital. The digital output acts as a key, and it
activates when sound intensity has reached a certain threshold. The sensitivity threshold can be adjusted via the potentiometer on the sensor.
The analog output voltage changes with the intensity of sound received by the microphone. You can connect this output to Arduino analog pins and process the output voltage.
Interfacing KY-037 Sound Detection Module with Arduino
To use this module with Arduino simply connect the supply voltage of the module and, according to your need, connect its analog or digital pins to Arduino.
Here we used analog output.
Circuit
Connect the sensor to Arduino as the following picture
Code
After connecting the circuit, do the following steps:
Step 1: Upload the following code on your Arduino board:
void setup() {
Serial.begin(9600); // setup serial
}
void loop() {
Serial.println(analogRead(A0));
delay(100);
}
Step 2: Open the Serial Monitor window. Now turn the potentiometer to turn off the LED on digital output. Write down the number displayed in the Serial Monitor immediately after the LED turns off.
Displaying the analog output of the sensor on the chart
Connect the analog output of the sensor to Arduino A0 pin and upload the following code on your Arduino board. Then choose the Serial plotter from Tools menu.
Step 3: Write the number you have noted before in the following code (as threshold variable) and upload the code on your board.
/*
KY-037 Sound Detection Sensor + Arduino
modified on 16 Apr 2019
by Mohammadreza Akbari @ Electropeak
*/
int sensor_value = 0;
int threshold = 540; //Enter Your threshold value here
int abs_value = 0;
int ledCount = 10; //number of Bargraph LEDs
int bargraph[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // Bargraph pins
void setup() {
Serial.begin(9600); // setup serial
for (int i = 0; i