Опубликовано

Датчик звука KY-037

Датчик звука, как следует из названия, предназначен для обнаружения звука (фиксирует появление громкого звука). На рис. S8.1 показаны наиболее широко применяемые в проектах Arduino датчики звука.

Внешний вид, назначение контактов

8_01-звук

Рис. S8.1. Применяемые в проектах Arduino датчики звука

Схема подключения

Работая с датчиком звука, можно использовать как цифровой, так и аналоговый его выходы (рис. S8.2). Аналоговый выход выдает значение сигнала микрофона, а цифровой выход передает 1, если сигнал превысит пороговое значение, и 0 в противном случае. Пороговое значение можно настроить с помощью потенциометра, расположенного на плате датчика. Можно подключить одновременно и два выхода (например, для настройки порогового значения).

2-08-2-звук

Рис. S8.2. Схема подключения датчика звука

Программный код

Листинг S1.8. Измерение громкости с помощью датчика звука

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#define soundAnalogPin A0 // пин, к которому аналоговый выход
 
#define soundDigitalPin 4 // пин, к которому цифровой выход
 
int analogVal=0; // Объявляем переменные для хранения значений
 
int digitalVal=0; //с датчика и задаем ее начальное значение 0
 
void setup()
 
{
 
Serial.begin(9600); // Открываем монитор порта
 
pinMode(soundAnalogPin, INPUT);//Настройка аналогового пина на вход
 
pinMode(soundDigitalPin, INPUT);// Настройка цифрового пина на вход
 
}
 
void loop()
 
{
 
//присваиваем переменной аналоговое значение
 
analogVal =analogRead(soundAnalogPin);
 
//присваиваем переменной цифровое значение
 
digitalVal=digitalRead(soundDigitalPin);
 
//Выводим полученныес датчика значения
 
Serial.print("Sound value A0: "); //
 
Serial.print(analogVal,DEC);
 
Serial.print(" D0: ");
 
Serial.println(digitalVal,DEC);
 
 
 
delay(100); //задаем паузу
 
}

Результат

2-08-3-звук

Рис. S8.3. Фиксация хлопка в ладоши на мониторе последовательного порта