Помогите подобрать микрофон

KVinS
Offline
Зарегистрирован: 15.01.2014

Здравствуйте!

Посмотрел такие видео:

http://www.youtube.com/watch?v=___XwMbhV4k

и такие скетчи:

http://www.danielandrade.net/2011/04/09/arduino-sound-sensor/

Купил такой сенсор:

http://ru.aliexpress.com/item/Sound-detection-sensor-module-sound-sensor...

Но он не указыает громкость. Только показывает есть звук выше нормы (настроенной на датчике) или нет

Как найти сенсор, который бы указывал громкость звука?

http://ru.aliexpress.com/item/Microphone-Sound-Sensor-Module-For-Arduino...

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

просто надо подать на аналоговый вход сигнал, только ограничить или усилить надо будет и все, дальше подключаете библиотеку fft быстрого преобразования фурье, и в зависимости от уровня сигнала на определенной частоте задаете сколько светодиодов в стобце должно гореть

вы хотите через микрофон снимать или напрямую подавать сигнал?

KVinS
Offline
Зарегистрирован: 15.01.2014

Я хочу мониторить громкость.

А мой сенсор просто подаёт LOW на порт, если звук громче определённого.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

вы с железом работали?

Клапауций
Offline
Зарегистрирован: 10.02.2013

jeka_tm пишет:

вы с железом работали?

я с железом работал, в прошлом году железнодорожный кран в утиль сдал.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

)))

а вообще ТС кажется меня не понимает

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Сенсор, который "указывает громкость звука" называется микрофон.
Например, такой http://amperka.ru/collection/sensors/product/microphone но не обязательно такой, главное, чтобы он назывался микрофоном, а не датчиком звука. Потому что датчики всего лишь выдают сигнал при превышении определенного уровня сигнала, а микрофон выдает данные постоянно, пока есть звук.

PS Постарался на языке ТС ответить.

 

KVinS
Offline
Зарегистрирован: 15.01.2014

Ну я использую dht11 и BT модуль
Реле рулю
Это железо?
Спасибо за ответ на моём языке но то, что вы показали делает две вещи:
Ток если тишина
Нет тока, если звук выше порога чувствительности (регулируется винтиком на голубой штуковине)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну да железо

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

точнее подходит если у вас будет их штук 60))) но там еще фильтры нужно будет паять

для измерения громкости нужно другое. просто микрофон с усилителем

и уже определитесь вы только громкость хотите показывать суммарную или все таки громкость по частотам как на видео которое вы привели?

KVinS
Offline
Зарегистрирован: 15.01.2014

Видимо, я не вник в суть видео
Мне просто нужна суммарная громкость

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

1. Открываем последнюю ссылку в первом сообщении: http://ru.aliexpress.com/item/Microphone-Sound-Sensor-Module-For-Arduino-Starters-Compatible-KY-038/1263640068.html

2. Читаем описание:

Microphone Sound Sensor Module For Arduino Starters Compatible KY-038
1. AO: sensor analog output;
2. The GND
3. The VCC: power input, range: 3v and 24v.
4. DO: digital output (comparator output)

Это значит, что с ног 1 и 2 (подав питание на ноги 3 и 1) можно снять аналоговый сигнал, который соответствует окружаещему шуму.

Внимание, вопрос: Вас не устраивает его чувствительность или что?

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну тогда отлично. использовать можно

130 рублей за микрофон с операционным усилителем, совсем обнаглели

KVinS
Offline
Зарегистрирован: 15.01.2014

Ну там обрезался вопрос можно ли такой купить.
А такой пойдёт?http://m.aliexpress.com/item/1428116890.html

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

так у вас же есть уже. зачем еще один?

KVinS
Offline
Зарегистрирован: 15.01.2014

Вы же сами написали, что у меня пороговый
Или по ссылке тоже пороговый?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

так вам же, и мне заодно, написал kisoft в 10 посте, что там так же есть аналоговый выход кроме цифрового

ваш датчик подойдет. радуйтесь))

KVinS
Offline
Зарегистрирован: 15.01.2014

Так я аналоговый и "слушал"
Но он передавал LOW и HIGH

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а куда вы его подключали если не секрет? желательно чтобы вы привели свой код

KVinS
Offline
Зарегистрирован: 15.01.2014

А последняя ссылка это который я хотел купить. Как и ссылка "ещё один"

KVinS
Offline
Зарегистрирован: 15.01.2014

А последняя ссылка это который я хотел купить. Как и ссылка "ещё один"

KVinS
Offline
Зарегистрирован: 15.01.2014

К A0 подключался.
Просто выводил
Если кричал ~0
Если тихо большое число

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Москва, Жуковский далеко от Вас? Могу подарить http://amperka.ru/collection/sensors/product/microphone или обменять на Ваш. У меня всё равно валяется, а пороговый мне больше подойдет, я как раз наоборот хотел пороговый датчик.

 

KVinS
Offline
Зарегистрирован: 15.01.2014

Спасибо за предложение, но скажем так, на метро не доехать
У вас тоже пороговость присутствует
Вот ту штуку крутите и настраиваете минимум

Заказал себе эти:
http://m.aliexpress.com/item/1428116890.html
Там нет крутилок, чтобы регулировать порог, значит, выводит громкость. Так посчитал я.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Спасибо, я теперь понял, везде, где есть крутилка - это есть регулировка порога. Спасибо, давно так не смеялся, всё, не буду больше отвлекать Вас от Ваших изысканий.

KVinS
Offline
Зарегистрирован: 15.01.2014

Я рад буду услышать вашу версию
Затем я тут

KVinS
Offline
Зарегистрирован: 15.01.2014

Заказал вот такие сенсоры: http://ru.aliexpress.com/item/5pcs-lot-Microphone-Sensor-Noise-Decibel-Sound-Module-3p-4p-Interface-for-Arduino-FZ0166-Free-Shipping/1428116890.html?productId=1428116890

analogRead(A0) выдаёт 399-406

При звуках значение уменьшается ~ 390

А потом увеличивается ~ 410

Что я делаю не так? 

В итоге использую такой код:

    delay(200);
    long val = 0;
    for (int i=0; i<20; ++i) {
      if(analogRead(A0)>=400){
      val = val + analogRead(A0);
      }else{
      i--;
      }
    }
    val = val/20-400;
    Serial.println(val);

но блин...