Звуковий датчик до роботи схема. Акустичні датчики для освітлення – диво техніки, яке заощаджує ваші гроші. Тригер для керування освітленням

Схема акустичного датчика в радіоаматорських конструкціях

У першій розглянутій схемі датчик акустичного типу зібраний на основі п'єзоелектричного звукового випромінювача, реагує на різні вібрації на поверхні, до якої він притулений. Основа інших конструкції – типовий мікрофон.


Цей датчик буде ефективний у тому випадку, якщо контрольована поверхня є хорошим провідником акустичних хвиль (метал, кераміка, скло тощо). Акустичним перетворювачем у цій радіоаматорській конструкції є типовий п'єзоелектричний звуковий випромінювач від китайського мультиметра типу М830. Він є округлим пластмасовим корпусом, в якому розміщується латунна пластина. На її поверхні, протилежній корпусу, є п'єзоелектричний елемент, зовнішня сторона якого посріблена. Провіди виходять від срібної поверхні та від латунної пластини. Датчик на контрольовану поверхню необхідно встановити так, щоб його пластмасовий корпус добре контактував з контрольованою поверхнею. При установці акустичного перетворювача на скло для збільшення чутливості можна витягнути випромінювач з корпусу та прикріпити так, щоб до скла була притиснута його гладка латунна поверхня.


При вплив на поверхню, з якою контактує перетворювач В1 в ньому генеруються електричні коливання, які посилюються попереднім підсилювачем і перетворюються на логічні імпульси компаратором на ОУ А1. Чутливість пристрою регулюють підстроювальним опором R3. Якщо напруга, що генерується, з'являється в перетворювачі перевищує поріг чутливості ОУ. На його виході утворюються логічні імпульси, що носять хаотичний характер.

Логічне пристрій побудовано на мікроскладанні К561ЛА9. Схемотехнічна реалізація є типовим одновібратором за схемою RS-тригера, з блокуванням входу. При подачі напруги від джерела живлення тригер перемикається в одиничний стан і залишається несприйнятливим до вхідних імпульсів протягом часу, поки йде зарядка конденсатора С2 через резистор R6. Після завершення заряджання цієї ємності тригер розблокується.

З надходженням першого імпульсу від акустичного датчика тригер переключається на нульовий стан. Транзисторний ключ VT1-VT2 відмикається та приєднує навантаження реле або сирену із системи охоронної сигналізації. (Навантаження приєднують паралельно діоду VD2). У цьому починається зарядка ємності С3 через резистор R13. Поки ця зарядка йде тригер утримується у нульовому стані. Потім він скидається в одиничне і навантаження відключається.

Для виключення зациклювання схеми через власні акустичні коливання, створені сиреною існує ланцюжок C4-R11, який блокуватиме вхід логічного пристрою, і відкриє його тільки через невеликий часовий інтервал після відключення навантаження. Заблокувати логічну схему можна натисканням тумблера S1. Конструкція повернеться до робочого режиму через 10 секунд після відпускання тумблера S1. Напруга живлення U п повинна лежати в інтервалі 5-15 Вольт.

Акустичний датчик на основі мікрофону

Попереднє посилення сигналу відбувається у лівій частині схеми. VT1 типу КТ361 або його сучасніший аналог, на базу якого через ємність С2 слідує сигнал з мікрофона M1, який разом з опором R4 утворює однокаскадний мікрофонний підсилювач. Транзистор VT2 типу КТ315 є типовим емітерним повторювачем та здійснює функцію динамічного навантаження першого каскаду. Струм, що їм споживається, не повинен перевищувати 0,4-0,5 мА.

Подальше посилення сигналу здійснюється мікросхемою DA1 типу КР1407УД2 з малим струмом споживання. Він включений за схемою диференціального підсилювача. Тому синфазні перешкоди, що наводяться в сполучних проводах, відмінно пригнічуються. Коефіцієнт ослаблення синфазної вхідної напруги становить 100 дБ. Сигнал, що знімається з навантажувальних опорів R6 і R7, слід через конденсатори С3 і С4 на інвертуючий і неінвертуючий входи ОУ DA1. Коефіцієнт посилення сигналу можна регулювати шляхом зміни номіналів опорів R8 та R9. Опір R10, R11 і ємність С5 створюють штучну середню точку, в якій напруга дорівнює половині напруги блоку живлення. Опором R13 задаємо необхідний струм споживання мікросхеми.

Акустичний датчик на транзисторах

На малюнку нижче показано схему простого високочутливого звукового датчика, який керує навантаженням за допомогою реле. У розробці застосовано електретний мікрофон, при використанні ECM необхідний резистор R1 опір від 2,2 кОм до 10 кОм. Перші два біполярні транзистори являють собою попередній мікрофонний підсилювач, R4 С7 в даній схемі усувають нестабільність підсилювача.


Після підсилювача на BC182B акустичний сигнал надходить на випрямляч на діодах 1N4148 і конденсаторі С5, отримана постійна напруга після випрямляча керує транзистором BC212B, який у свою чергу керує реле.

Варіант 2

Схема проста і налагодження не потребує, до недоліків можна віднести наступне: реле реагує на будь-які гучні звуки, особливо на низьких частотах. Крім того, спостерігалася нестабільна робота конструкції при мінусовій температурі.

CMA-4544PF-W або аналогічні;

  • 3 світлодіоди (зелений, жовтий і червоний, ось з такого набору, наприклад);
  • 3 резистори по 220 Ом (ось відмінний набір резисторів найпоширеніших номіналів);
  • сполучні дроти (рекомендую ось такий набір);
  • макетна плата (breadboard);
  • персональний комп'ютер із середовищем розробки Arduino IDE.
  • 1 Електретний капсульниймікрофон CMA-4544PF-W

    Ми скористаємося готовим модулем, в якому є мікрофон, а також мінімально необхідна обв'язка. Придбати такий модуль можна.

    2 Схема підключеннямікрофону до Arduino

    Модуль містить у собі електретний мікрофон, якому необхідне живлення від 3 до 10 вольт. Полярність при підключенні є важливою. Підключимо модуль за простою схемою:

    • висновок "V" модуля - до живлення +5 вольт,
    • висновок "G" - до GND,
    • висновок "S" - до аналогового порту "A0" Arduino.

    3 Скетч для зчитування показаньелектретного мікрофона

    Напишемо програму для Arduino, яка зчитуватиме показання з мікрофона і виводитиме їх у послідовний порт у мілівольтах.

    Const int micPin = A0; // задаємо пін, куди підключений мікрофон void setup() ( Serial.begin(9600); // ініціалізація послід. порту } void loop() ( int mv = analogRead(micPin) * 5.0 / 1024.0 * 1000.0; // значення в мілівольтах Serial.println(mv); // Виводимо в порт }

    Навіщо може знадобитися підключати мікрофон до Arduino? Наприклад, для вимірювання рівня шуму; для керування роботом: поїхати по бавовні або зупинитися. Деякі навіть примудряються «навчити» Arduino визначати різні звуки і таким чином створюють інтелектуальне управління: робот розумітиме команди «Стоп» та «Іди» (як, наприклад, у статті «Розпізнавання голосу за допомогою Arduino»).

    4 «Еквалайзер»на Arduino

    Давайте зберемо своєрідний найпростіший еквалайзер за прикладеною схемою.


    5 Скетч«еквалайзера»

    Дещо модифікуємо скетч. Додамо світлодіоди та пороги їх спрацьовування.

    Const int micPin = A0; const int gPin = 12; const int yPin = 11; const int rPin = 10; void setup() ( Serial.begin(9600); pinMode(gPin, OUTPUT); pinMode(yPin, OUTPUT); pinMode(rPin, OUTPUT); } void loop() ( int mv = analogRead(micPin) * 5.0 / 1024.0 * 1000.0; // значення в мілівольтах Serial.println(mv); // виводимо в порт /* Пороги спрацьовування світлодіодів налаштовуються вами експериментальним методом: */ if (mv)

    Еквалайзер готовий!Спробуйте поговорити в мікрофон, і побачите, як спалахують світлодіоди, коли ви змінюєте гучність мови.

    Значення порогів, після яких спалахують відповідні світлодіоди, залежать від чутливості мікрофона. На деяких модулях чутливість задається підстроювальним резистором, на моєму модулі його немає. Пороги вийшли 2100, 2125 та 2150 мВ. Вам для свого мікрофона доведеться визначити їх самим.

    Саморобні датчики

    На рис. 1 представлено пристрій підсилювача слабких сигналів. Пристрій реалізовано двох однотипних кремнієвих транзисторах п-р-п провідності, які мають високим коефіцієнтом посилення (80- 100 по струму). При звуковому впливі мікрофон ВМ1 змінний сигнал надходить у основу транзистора VT1 і посилюється ним. З колектора транзистора VT2 знімається вихідний сигнал, який керує периферійними або виконавчими пристроями негативним фронтом.

    Електрична схема чутливого акустичного датчика на біполярних транзисторах

    Оксидний конденсатор С1 згладжує пульсацію напруги джерела живлення. Резистор зворотного зв'язку R4 захищає підсилювач слабких сигналів самозбудження.

    Вихідний струм транзистора VT2 дозволяє керувати малопотужним електромагнітним реле з робочою напругою 5 і струмом спрацьовування 15...20 мА. Розширена схема акустичного датчика показано на рис. 3.9. На відміну від попередньої схеми, вона відрізняється додатковими можливостями регулювання посилення та інверсії вихідного сигналу.

    Розширена схема акустичного датчика

    Регулювання посилення слабких сигналів із мікрофона ВМ1 здійснюється змінним резистором R6 (див. рис. 2). Чим менший опір даного резистора, тим більше посилення транзисторного каскаду на транзисторі VT1. При тривалій практиці експлуатації вузла, що рекомендується, вдалося встановити, що при опорі резистора R6 рівним нулю можливе самозбудження каскаду. Щоб його уникнути, послідовно R6 включають ще один обмежувальний резистор опором 100- 200 Ом.

    Електрична схема акустичного датчика з можливістю інверсії вихідного сигналу та регулюванням посилення

    На схемі показані два виходи, з яких знімається сигнал для наступних схем і кінцевих електронних вузлів. З точки "ВИХІД 1" знімають керуючий сигнал з негативним фронтом (який з'являється при звуковому впливі на мікрофон ВМ1). З точки "ВИХІД 2" відповідно інверсний сигнал (з позитивним фронтом).

    Завдяки застосуванню як кінцевий струмовий підсилювач польового транзистора КП501А (VT2) пристрій знижує споживання струму (щодо попередньої схеми), а також має можливість управління більш потужним навантаженням, наприклад, виконавчим реле зі струмом включення до 200 мА. Цей транзистор можна замінити на КП501 з будь-яким буквеним індексом, а також більш потужний польовий транзистор відповідної конфігурації.

    Ці прості конструкції налагодження не потребують. Всі вони випробувані при живленні від одного і того ж стабілізованого джерела з напругою 6 В. Потужність струму конструкції (без урахування струму споживання реле) не перевищує 15 мА.

    Сьогодні розберемося, як працювати з модулем датчика звуку, він же датчик бавовни KY-037. Такі датчики часто використовують у охоронних системах виявлення перевищення встановленого порога шуму (виявлення клацань замків, кроків, звуку двигуна тощо.). Модуль датчика звуку KY-037 так само часто використовують для автоматичного керування освітленням, що реагує, наприклад, на бавовни в долоні.

    На платі бачимо сам датчик як мікрофона і мікросхему компаратора, що визначає момент перевищення порога гучності. А чутливість цього моменту (порога гучності), виставляється з допомогою змінного резистора (потенціометра) встановленого поруч із компаратором. Якщо поріг звуку буде перевищено, на виході D0з'явиться сигнал високого рівня.

    Давайте для початку підключимо датчик звуку KY-037до плати Arduino. Візьмемо, наприклад, налагоджувальну плату Arduino Nano.

    Пін Gмодуля датчика звуку KY-037 підключаємо до виводу GNDплати Ардуїно. Пін + датчика звуку з'єднуємо з виводом 5Vплати Ардуїно. Висновок D0датчика, підключаємо до цифрового виводу D5плати Ардуїно.

    Настроювання датчика звуку KY-037.

    Підключаємо плату Arduino Nano до комп'ютера. На модулі датчика бавовни KY-037, повинен відразу загорітися індикатор живлення L1. Необхідно спочатку взяти викрутку і підкрутити резистор підлаштування, налаштувавши тим самим чутливість датчика. А в налаштуванні чутливості нам допоможе індикатор спрацьовування датчика L2. Якщо індикатор L2при включенні модуля теж спалахує, крутимо підстроювальний резистор проти годинникової стрілки до тих пір, поки не дійдемо до моменту згасання індикатора. Якщо ж індикатор L2знаходиться у вимкненому стані при включенні модуля, значить навпаки, крутимо підстроювальний резистор за годинниковою стрілкою, поки не дійдемо до моменту, коли індикатор почне загорятися. У результаті в цьому місці, де трохи повернувши підстроювальний резистор в один чи інший бік, індикатор прагнути погаснути або спалахнути, нам потрібно повернути зовсім трохи проти годинникової стрілки, щоб індикатор L2погас, але при бавовнах у долоні намагався спалахувати.

    Відкриваємо програму Arduino IDE, створюємо новий файл і вставляємо в нього код, який нам покаже, яким чином надходить цифровий сигнал з виводу D0у випадках перевищення порога шуму встановленого за допомогою підстроювального резистора.

    const int sensorD0 = 5; // Пін Arduino до якого підключений пін D0 датчика void setup () // Налаштування ( Serial.begin (9600); // Ініціалізація SerialPort ) void loop () // Основний цикл програми (int sensorValue = digitalRead(sensorD0); // отримуємо сигнал від датчика if (sensorValue == true) // Якщо надійшов сигнал високого рівня Serial.println(sensorValue); // Виводимо цифрове значення на термінал )

    Заливаємо цей скетч і переходимо в меню "Інструменти" - "Монітор порту". Вікно моніторингу порту буде порожнім, але як тільки ми плескатимемо в долоні, у вікні з'являться одиниці, які говорять про наявність сигналу високого рівня на виводі D0 модуля датчика звуку.

    Все добре. Ми налаштували датчик і переконалися, що наша Ардуїнка чудово приймає сигнал від нього.

    Включаємо світло по бавовні та вимикаємо автоматично за таймером.

    Розібралися, як підлаштувати датчик звуку KY-037і як він реагує, якщо перевищено встановлений поріг гучності. Тепер додамо в нашу схему звичайний світлодіод і напишемо простий код, який при виявленні шуму запалюватиме світлодіод і гаситиме його після закінчення якогось часу.

    Світлодіод підключаємо до піна D2плати Ардуїно. Не забуваємо поставити будь-який резистор на землю ( GND) світлодіода. І завантажуємо наступний скетч.

    const int sensorD0 = 5; // Пін Arduino якого підключений вихід D0 датчика const int diod = 2; // Пін Arduino до якого підключений світлодіод void setup () (pinMode (diod, OUTPUT); // встановлюємо цифровий пін 2 в режим виходу) void loop () (int sensorValue = digitalRead (sensorD0); // отримуємо сигнал з датчика if (sensorValue == 1) //якщо отримано сигнал від датчика у вигляді одиниці (digitalWrite(diod, HIGH); // включаємо світлодіод delay(4000); // робимо паузу, щоб світлодіод горів 4 секунди ) if (sensorValue == 0 ) // якщо надходить сигнал від датчика у вигляді нуля digitalWrite(diod, LOW); // вимикаємо світлодіод )

    Пробуємо ляснути в долоні. Бачимо, що світлодіод спалахнув, пропрацював 4 секунди і погас. Кожен рядок докладно прокоментований і де змінити час горіння світлодіоду, думаю, зрозуміло.

    Датчик звуку KY-037 включає світло по бавовні та вимикає світло по бавовні.

    Давайте завантажимо новий скетч, який по бавовні включатиме або вимикатиме наш світлодіод. Світлодіод ми взяли для прикладу, немає жодних проблем приєднати замість нього модуль реле і тим самим вмикати чи вимикати будь-які побутові прилади.

    const int sensorD0 = 5; // Пін Arduino якого підключений вихід D0 датчика const int diod = 2; // Пін Arduino якого підключений світлодіод int diodState = LOW; // Статус світлодіода "вимкнений" void setup () (pinMode (diod, OUTPUT); // встановлюємо цифровий пін 2 в режим виходу) void loop () (int sensorValue = digitalRead (sensorD0); // отримуємо сигнал з датчика if ( sensorValue == 1 && diodState == LOW) //якщо поріг гучності досягнутий і світлодіод був ВИКЛЮЧЕНИЙ (digitalWrite(diod, HIGH); // включаємо світлодіод diodState = HIGH; // встановлюємо статус світлодіода "включений" delay(100); / / невелика затримка для фільтрації перешкод ) else // інакше ( if (sensorValue == 1 && diodState == HIGH) // якщо поріг гучності досягнутий і світлодіод був увімкнений ( digitalWrite(diod, LOW); // вимикаємо світлодіод diodState = LOW; // встановлюємо статус світлодіода "вимкнений" delay (100); // невелика затримка для фільтрації перешкод))))

    Плескаємо тепер один раз у долоні, світло запалюється. Плескаємо повторно в долоні, світлодіод гасне.

    Включаємо світло по подвійній бавовні.

    Давайте ускладнимо завдання і напишемо код для роботи датчика звуку KY-037 по подвійній бавовні. Тим самим скоротимо можливі випадкові спрацьовування від побічних звуків, які можуть виникати в режимі на одну бавовну.

    const int sensorD0 = 5; // Пін Arduino якого підключений вихід D0 датчика const int diod = 2; // Пін Arduino якого підключений світлодіод int diodState = LOW; // Статус світлодіода "вимкнено" long soundTime=0; // час першого бавовни void setup () (pinMode (diod, OUTPUT); // встановлюємо цифровий пін 2 в режим виходу) void loop () (int sensorValue = digitalRead (sensorD0); // отримуємо сигнал з датчика if (sensorValue = = 1 && diodState == LOW) //якщо поріг гучності досягнутий і світлодіод був ВИКЛЮЧЕНИЙ ( long diodTime=millis(); // записуємо поточний час //якщо поточний час бавовни більше часу останньої бавовни на 100 мілісекунд //і бавовна сталася не пізніше ніж через 1000 мілісекунд після попереднього //вважаємо таку бавовну другою УСПІШНИМ if((millis()>soundTime) && ((diodTime-soundTime)>100) && ((diodTime-soundTime)<1000)) { digitalWrite(diod, HIGH); // включаем светодиод diodState = HIGH; // устанавливаем статус светодиода "включен" delay(100); // небольшая задержка для фильтрации помех } soundTime=millis(); //записываем время последнего хлопка } else // иначе { if (sensorValue == 1 && diodState == HIGH) // если порог громкости достигнут и светодиод был ВКЛЮЧЕН { digitalWrite(diod, LOW); // выключаем светодиод diodState = LOW; // устанавливаем статус светодиода "выключен" delay(100); // небольшая задержка для фильтрации помех } } }

    Пробуємо двічі ляснути у долоні, світлодіод запалюється. Вимикаємо світлодіод одинарною бавовною. Все добре спрацьовує без жодних глюків. Код максимально прокоментований, читайте, має бути більш ніж зрозумілим. Зробити, щоб світло вимикалося теж у дві бавовни, думаю труднощів не скласти. Тепер можете перекидати дроти з лінії D2, наприклад, на релейний модуль і керувати освітленням у кімнаті або іншими побутовими приладами.

    В принципі основні питання з датчиком звуку KY-037 ми розібрали. Залишається тільки нагадати, що на платі є аналоговий висновок. A0, який приєднується до будь-якого аналогового висновку плати Ардуїно, наприклад, висновку A1. Приймається аналоговий сигнал рядком sensorValue = analogRead(A1);. Напруга на аналоговому виході датчика змінюється залежно від змін навколишніх шумів. Такий сигнал дає нам можливість застосовувати програмну обробку цих шумів, аналізуючи характер коливань. Це може дозволити реагувати не просто на шум у момент часу, а створювати навіть свою базу різних шумів, спираючись на якісь ключові моменти в характерних змінах показань сигналу на виході. A0. У результаті звіряння з такою базою шумів можна реалізувати різну реакцію на різні шуми. Але це для тих, хто хоче більше зануритися в програмування і тема, швидше за все, іншої статті.