Датчик уровня звука: различия между версиями
| Строка 30: | Строка 30: | ||
'''Программный код''' | '''Программный код''' | ||
| − | + | <code>// контакт подключения выхода OUT датчика | |
| − | + | int soundPin=2; | |
| − | + | // контакт подключения выхода реле | |
| − | + | int relayPin=8; | |
| − | // | + | // состояние лампы |
| − | + | // true - включено, false - выключено</code> | |
| − | + | boolean statuslamp; | |
| − | // | + | |
| − | + | void setup() | |
| − | + | <code>{ | |
| − | + | // настройка вывода реле в режим OUTPUT | |
| − | // | + | pinMode(relayPin,OUTPUT); |
| − | void setup( | + | // начальное состояние - лампа выключена |
| − | { | + | statuslamp=false;</code> |
| − | + | digitalWrite(relayPin,LOW); | |
| − | + | } | |
| − | } | + | |
| − | + | void loop() | |
| − | + | <code>{ | |
| − | void loop( | + | // проверяем значение на выводе OUT датчика звука |
| − | { | + | if(digitalRead(soundPin)==0) // регистрация хлопка |
| − | + | { | |
| − | + | // поменять статус лампы | |
| − | + | statuslamp=!statuslamp; | |
| − | + | // переключить лампу | |
| − | + | digitalWrite(relayPin,statuslamp); | |
| − | + | // задержка, "дребезга" хлопков | |
| − | + | delay(10);</code> | |
| − | } | + | } |
| + | } | ||
Версия 22:19, 31 мая 2021
Датчик представляет собой небольшую плату с установленным на ней микрофоном, микрофонным усилителем, регулятором чувствительности в виде переменного резистора. Микрофон преобразует звуковые колебания в колебания электрического тока. Сигнал с микрофона необходимо усилить с помощью компаратора L293. Датчик имеет выход с логическим уровнем. Сработал датчик – на выходе появился логический 0. Регулятором чувствительности можно выбирать, от какого звука будет срабатывать датчик - от слабого, громкого или очень громкого звука. Датчик имеет 3 вывода. Назначение выводов следующее:
- Vcc – питание датчика;
- GND – земля;
- OUT - цифровой выход;
Датчик имеет также светодиод, сигнализирующих о наличие низкого уровня на выходе OUT. Наличие цифрового вывода OUT и светодиода уровня позволяет использовать модуль автономно, без подключения к контроллеру.
Технические характеристики
- Напряжение питания: 4-6 В;
- Выход: цифровой;
- Максимальное расстояние обнаружения –5 м;
- Размер модуля: 32×17×15 мм;
- Общий вес: 12.5 г.
Использование датчика
Рассмотрим использование датчика звука для управления лампой с помощью хлопков. При регистрации хлопка, датчик звука выдает на микроконтроллер сигнал низкого уровня. По получении сигнала микроконтроллер через реле переключает состояние лампы (включает/выключает). Для проекта нам понадобятся следующие детали:
- плата Arduino Uno;
- датчик уровня звука;
- блок реле;
- настольная лампа;
- соединительные провода.
Программный код
// контакт подключения выхода OUT датчика int soundPin=2; // контакт подключения выхода реле int relayPin=8; // состояние лампы // true - включено, false - выключеноboolean statuslamp; void setup(){ // настройка вывода реле в режим OUTPUT pinMode(relayPin,OUTPUT); // начальное состояние - лампа выключена statuslamp=false;digitalWrite(relayPin,LOW); } void loop(){ // проверяем значение на выводе OUT датчика звука if(digitalRead(soundPin)==0) // регистрация хлопка { // поменять статус лампы statuslamp=!statuslamp; // переключить лампу digitalWrite(relayPin,statuslamp); // задержка, "дребезга" хлопков delay(10);} }