За последние пару дней я задал пару вопросов, касающихся этого проекта, но, похоже, не могу все это собрать.
Я подключил электретный микрофон к операционному усилителю и дал вывод на мой Arduino микроконтроллер. АЦП на микроконтроллере преобразует диапазон от 0 до 5 В в 10-разрядное число (от 0 до 1023).
Я попробовал 3 разных чипа усилителя:
- LM386 - Я получил отзыв, что этот чип не подходит для этой цели, так как он не операционный усилитель, и он не работал правильно, как ожидалось.
- LM358 - работает
- UA741 - работает, усиливает больше, чем LM358
Я точно следовал этой схеме (за исключением того, что я искал значения резистора, чтобы получить хороший коэффициент усиления): я использовал 50 кОм для R5 и 10 Ом для R2.
Проблема в том, что выход из последних двух чипов не "чистый". AnalogRead () на Arduino всегда читает ненулевое значение, даже когда я не делаю шум в микрофоне. Чтение реагирует правильно, когда я шуметь, но значение «ноль» ненулевое. Иногда «нулевое» значение даже мерцает, сбрасывая показания все время. Надеюсь, это имело смысл.
Можете ли вы помочь мне разобраться с этим?
Не менее важна дополнительная информация: в конце концов я пытаюсь сделать что-то подобное .
Ответы:
Избавьтесь от выходного конденсатора. Эта схема, вероятно, должна была генерировать сигнал около нуля, поэтому конденсатор должен блокировать смещение 1/2 Vdd. Тем не менее, микроконтроллер хочет видеть сигнал с центром около 1/2 Vdd, поэтому просто избавьтесь от конденсатора.
Микрофоны нуждаются в большом усилении. Электреты могут быть чувствительными, но вам все равно может понадобиться коэффициент усиления по напряжению 1000. Коэффициент усиления в вашей цепи - это отношение R5 к R2, но это работает только в пределах возможностей операционного усилителя.
Значения, которые вы упомянули выше, дали бы вам выигрыш в 5000. Это намного больше, чем вы должны пытаться получить на одной стадии операционного усилителя. Мало того, что напряжение смещения будет умножено на это усиление, но операционный усилитель не сможет обеспечить это во всем диапазоне частот. При полосе усиления 1 МГц вы получите только усиление чуть ниже 200 Гц. Даже смещение на входе 1 мВ становится 5 В после усиления на 5000.
R2 также является сопротивлением, видимым микрофоном после входного конденсатора. Вам нужно, чтобы это было несколько больше, чем полное сопротивление микрофона с его подтягиванием и входным конденсатором на самой низкой интересующей частоте. 10 Ом слишком мало для этого. 10 кОм было бы лучшим значением.
Попробуйте два этапа с прибылью 30 или около того для начала и посмотрите, к чему это приведет. Это преимущество, которое он может обрабатывать на разумных частотах с достаточным запасом для обратной связи. Вам также необходимо емкостно соединить две ступени, чтобы напряжение смещения на входе не накапливалось на всех ступенях.
Редактировать: добавлена схема
У меня не было времени нарисовать схему прошлой ночью, когда я написал ответ выше. Вот схема, которая должна это сделать:
Усиление напряжения примерно 1000, что должно быть достаточно для разумного электретного микрофона. Я могу быть немного слишком много, но легко добавить некоторое ослабление.
Топология довольно отличается от вашей схемы. Самая важная вещь, которую стоит отметить, это то, что она не пытается получить весь выигрыш за один этап. Каждый каскад имеет усиление около 31. Это оставляет достаточный запас усиления на максимальной звуковой частоте 20 кГц для обратной связи, поэтому усиление будет хорошо предсказуемым и равномерным во всем диапазоне звуковых частот, поскольку MCP6022 имеет типичную полосу усиления. произведение 10 МГц. Ограничивающим фактором, скорее всего, будет микрофон.
В отличие от того, что я сказал ранее, две ступени не должны быть емкостно связаны, чтобы предотвратить накопление напряжения смещения вместе с усилением. Это связано с тем, что в этой схеме каждый каскад имеет только коэффициент усиления постоянного тока, равный 1, поэтому окончательное смещение составляет только двойное смещение операционного усилителя. Эти операционные усилители имеют смещение только 500 мкВ, поэтому окончательное смещение составляет только 1 мВ из-за операционных усилителей. Будет больше из-за несоответствия R3 и R4. В любом случае, выходной постоянный ток будет достаточно близок к 1/2 источника, чтобы не выходить за пределы диапазона A / D значимым образом.
Коэффициент усиления по постоянному току, равный 1 на ступень, достигается путем емкостного подключения цепи делителя обратной связи к земле. Конденсатор блокирует постоянный ток, поэтому каждая ступень является всего лишь последователем для постоянного тока. Полное усиление переменного тока реализуется по мере того, как полное сопротивление конденсатора (C3 на первой ступени) становится небольшим по сравнению с нижним делительным резистором (R7 на первой ступени). Это начинает происходить на частоте около 16 Гц. Одним из недостатков этого подхода является то, что постоянная времени для установления равна C3, умноженной на R7 + R5, а не только на R7. Эта схема займет пару секунд или около того, чтобы стабилизироваться после включения.
источник
Как вы говорите, цифровое значение будет от 0 до 1023. Середина этого диапазона не 0, а 512 (что соответствует напряжению около 2,5). Для тишины вы должны увидеть что-то в середине диапазона, как это. Точно не должно быть 512, но должно быть близко. Это называется «смещение постоянного тока». Сигнал смещается вверх и центрируется около 2,5 В.
Если вы измеряете 2 В и видите значения АЦП около 400, то это в основном работает нормально.
Звуковые волны переходят от отрицательного к положительному давлению. Если бы центральная точка была 0, а сигнал мог быть измерен только между 0 и 1023, то отрицательные значения давления (-1023) были бы отключены.
Кроме того, он всегда будет немного колебаться из-за уровня шума АЦП. (И в комнате всегда будет слышен шум от звука, независимо от того, насколько вы тихи.)
источник
Можете ли вы опубликовать спецификацию на этом микрофоне? Нет никакой причины, по которой вам нужен коэффициент усиления 5000 с электретным микрофоном, если у вас нет голого устройства без внутреннего FET. В этом случае предусилитель должен выглядеть по-другому.
Кроме того, схема, которую вы использовали, не очень удобна для использования в качестве предварительного усилителя для электретного микрофона.
Я бы порекомендовал:
R5 / R4 устанавливает усиление и может регулироваться без привинчивания к входному сопротивлению цепи. R3 может быть от 2k -> 10k ish. 10k будет иметь тенденцию улучшать характеристики искажения, если вы установите слишком низкое значение, вам следует переосмыслить значения для R1 и R2, чтобы зафиксировать входное сопротивление.
Также очень важно, чтобы источник питания был должным образом отсоединен, так как любой шум будет поступать в микрофон.
Как упоминалось в других ответах, ваша «нулевая» точка будет ~ 512 при чтении АЦП и будет немного колебаться независимо от того, что вы делаете.
Если ваша цель - мигать светом в ответ на уровень, вы все равно не должны снимать мгновенные показания с помощью Arduino, так как я сомневаюсь, что вы сможете сделать выборку достаточно быстро, чтобы она хорошо реагировала. Вместо этого выполните обнаружение пикового или среднего уровня в аналоговой области и установите период усреднения пропорционально тому, какой будет ваша частота выборки.
РЕДАКТИРОВАТЬ: Подробнее об этом с пиковым детектором
Проблема, с которой вы столкнетесь, заключается в том, что частота дискретизации arduino относительно ограничена. Я думаю, что ваш максимум будет около 10 кГц, а это значит, что вы можете разрешить максимум 5 кГц аудио сигнала. Это связано с тем, что arduino делает очень мало, за исключением запуска АЦП, если вам нужно выполнить какую-либо реальную работу (и вы делаете некоторые, чтобы получить уровень), частота дискретизации будет ниже.
Помните, что вы брали дискретные сэмплы необработанного сигнала, то, что синусоидальная волна в полном диапазоне подается на АЦП, не означает, что вы не получите показания 0 с АЦП, вы получите сэмплы в различных точках волны. , С настоящей музыкой результирующий сигнал будет довольно сложным, и у вас будут сэмплы повсюду.
Теперь, если все, что вы пытаетесь измерить, это уровень входного сигнала, и вам не нужно получать цифровое представление сигнала, тогда вы можете использовать простой пиковый детектор после этого предварительного усилителя, чтобы сделать это.
Для чего это превращает ваш аудиосигнал в напряжение, которое представляет его пиковый уровень. Когда вы измеряете это напряжение с помощью АЦП, вы сразу получите значение, представляющее уровень сигнала во время измерения. Вы по-прежнему будете немного колебаться, так как звук - это сложная, всегда изменяющаяся форма волны, но с этим должно быть легко справиться в программном обеспечении.
Пиковый детектор без удержания - это действительно выпрямитель с фильтром на выходе. В этом случае нам нужно иметь дело с сигналами низкого уровня и поддерживать точность, поэтому нам нужно сделать немного больше, чем то, что было бы сделано для вашей средней цепи выпрямителя. Это семейство цепей называется «прецизионные выпрямители».
Существует около миллиарда различных способов сделать это, но я бы выбрал эту схему, она лучше всего работает при использовании одного источника питания. Это будет происходить после того, как схема предусилителя уже обсуждалась, и вход мог быть подключен к переменному току или нет, несмотря на то, что он работает от одного источника, он будет работать очень хорошо с отрицательными входными напряжениями до тех пор, пока вы не превысите доступный пик. пиковое напряжение от операционных усилителей.
OP1 действует как (почти) идеальный диод, который устраняет обычную проблему падения напряжения на диоде при выпрямлении. Почти любой маленький сигнальный диод будет работать для D1, что-то с меньшим падением прямого напряжения повысит точность, но я сомневаюсь, что это будет иметь значение для вашего использования.
C1 и R4 действуют как фильтр нижних частот для сглаживания выходных данных, вы можете поиграть с их значениями, чтобы согласовать производительность с тем, что вы пытаетесь сделать (и частотой дискретизации).
Вероятно, вы можете использовать ту же модель операционного усилителя, что и в предварительном усилителе, но Rail-to-Rail и высокая скорость нарастания идеально подходят для этой схемы. Если у вас есть проблемы со стабильностью, увеличьте R1, R2 и R3 до 100 кОм.
источник