Подключение микрофона

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем kipill, 14 янв 2014.

  1. kipill

    kipill Нерд

    Добрый день уважаемые форумчане.

    Не давно стал обладателем датчика звуков, а именно: http://amperka.ru/collection/sensors/product/microphone. Попробовал его подключить без дополнительных плат расширения и узнал что он работает только с аналоговыми портами, что в принципе не то что бы удивительно. Но возникает вопрос, как можно сделать так чтобы программа сразу реагировала на произошедший звук? Как помнится Arduino Uno не поддерживает прерывания на аналоговых портах, а если считывать показания датчика раз в какое-то время то можно и упустить событие.......
    И еще может кто знает в каком диапазоне датчик может возвращать значения? Мне не удалось добиться того что бы он вернул больше 179.

    Заранее спасибо за помощь.
     
  2. Unixon

    Unixon Оракул Модератор

    Подключите его к цифровому входу и настройте на максимальное усиление, если сигнал хоть где-то будет превышать пороговое значение, прерыванием это событие поймаете. Вполне возможно, что при опросе АЦП с выдачей в тпрминал пиковые значения пропускаются.
     
  3. kipill

    kipill Нерд

    А как включить максимальное усиление?
    Когда я подключал его к 3 порту и пытался по любому входящиму сигналу зажечь диод то у меня ничего не получилось.......
     
  4. Unixon

    Unixon Оракул Модератор

    Там на плате сенсора есть потенциометр (синий такой кубик), сверху серый кружок регулятора с крестовым пазом. Поверните его отверткой в крайнее положение: на плате есть подписи min и max, по ним ориентируйтесь, на фото max в направлении против часовой стрелки.
     
  5. kipill

    kipill Нерд

    Проверил этот вариант, так он действительно стал срабатывать. Но работает почему-то через раз. При чем если издавать звук где-то с 1.5 мета может сработать, а с 0.2 может проигнорировать, даже если микрофон направлен в нужную сторону.

    Может кто подскажет как можно улучшить его работу или посоветует какой-нибудь другой девайс.

    И еще появился вопрос, если я подключаю микрофон к порту 3 который поддерживает ШМИ могу ли я узнать какие значения на него были переданы? Или там будет только 1?
     
  6. acos

    acos Официальный гик Администратор

  7. kipill

    kipill Нерд

    За статью огромное спасибо)))

    Я просто еще думаю может у меня датчик бракованный, т.к. вчера весь вечер с ним провозился и эффекта удалось достичь только когда я в него дул, на звуки он реагировать отказывался.
     
  8. acos

    acos Официальный гик Администратор

    Ну что ж у всех то всё сразу бракованное?)
    Подрубите к ацп, загрузите скетч какой, типа AnalogIOutSerial и смотрите в терминале, как реагирует микрофон. Ну и настройку усиления покрутите - посмотрите, как чего меняется. Еще можно график начертить изменения звука - вот через такую прогу, например https://sites.google.com/site/terminalbpp/ - наглядно видно будет, как модуль на звуки реагирует
     
    Последнее редактирование: 16 янв 2014
  9. kipill

    kipill Нерд

    Спасибо, попробую))

    У меня еще вопрос напрашивается, смотрю подключение везде происходит через платы расширения, а я просто к контактам подключаю, может быть в этом проблема?
     
  10. Unixon

    Unixon Оракул Модератор

    Смотрите не просто на значения, а на пиковые значения. Снимите подряд много-много отсчетов и посчитайте по ним Vrms, Vmin, Vmax, Vpp, Vavg, прикиньте с какой частотой нужно снимать отсчеты для надежного детектирования сигнала. Сделаете буфер в несколько килобайт, пишите в него побайтово Vadc/4 или min(Vadc,255), потом считайте по буферу L1 или L2 норму.