Como obtenho + 5v para ruído alto, 0v para silêncio do Electret Microphone (ou outros componentes)?

12

Fiz algumas perguntas aqui para chegar a uma pergunta adequada, as perguntas iniciais às quais fiz estão vinculadas no final. Usei o Fritzing para criar alguns esquemas dos meus pensamentos iniciais, mas, no mínimo, preciso de ajuda com os valores dos componentes, que apenas compreendo vagamente e escolhi o que parecem valores razoáveis ​​ou comuns.

Basicamente, eu tenho um Arduino que possui 6 entradas analógicas. Ele usa um ADC de 10 bits para ler a tensão em qualquer um dos pinos analógicos, então 0 = 0v, 511 = 2,5v e 1023 = 5v, e todos os valores intermediários. Faz uma leitura linear DC, então não estou procurando a lógica 1-0 aqui.

Eu tenho isso ligado a luzes LED e quero fazê-las responder à música. O que eu quero é uma resolução máxima com componentes mínimos, e acho que estou usando muitos componentes WAY e tornando essa maneira muito complexa. Talvez os microfones de eletreto não sejam o que eu quero aqui, estou aberto a outra coisa. Prefiro não usar amplificadores operacionais para economizar espaço no meu PCB.

O que eu quero é um simples sensor de nível de ruído. Não estou querendo reproduzir o áudio, ou ter clareza ou algo assim, mas gostaria que, o mais próximo possível:

  • Silêncio perfeito = o mais próximo possível de 0v DC (estável, não CA) quanto possível
  • Ruído médio = Cerca de 2.5v DC (estável, não CA)
  • Ruído alto = o mais próximo possível de 5v DC (estável, não CA) quanto possível

Entendo com um BJT que o melhor que posso obter será de 0,6v a 4,4v, mas isso é aceitável o suficiente. O que não é, no entanto, é metade da onda, 0,6v a 2,5v. Isso parece estar desperdiçando metade da minha resolução disponível sem motivo. No entanto, se houver outras configurações além de um BJT que possam me aproximar de 0v-5v, eu estaria interessado em tentar; desde que sejam simples.

Aqui está uma mais simples, que espero que seja possível, mas requer que o sinal de eletreto tenha amplitude suficiente para acionar o circuito detector de envelope (diodo, resistor e capacitor) para obter apenas a metade positiva. Eu não acho que pode por causa da queda direta do diodo, mas talvez isso possa ser reorganizado ou feito antes do limite de saída? Quais devem ser os valores dos resistores do detector de envelope e do amplificador? Um potenciômetro de sensibilidade deve ser colocado no sinal, RE, ou RL, e qual deve ser seu valor? Linear ou logarítmico?

Simples

No entanto, talvez a saída de eletreto não possa sobreviver ao detector de envelope, desvio de sensibilidade e ainda acionar um transistor NPN. Caso contrário, aqui está uma versão mais complexa. Preciso seguir esse caminho? Obter a saída desejada do circuito realmente requer todos esses componentes?

Complexo

Aqui estão algumas das perguntas anteriores que fiz antes de entender melhor o que estava tentando articular, para mais detalhes. Aqui está o que o detector de envelopes deve fazer e não sei como ajustá-lo para a saída de eletreto:

Detector de envelopes Diagrama de circuito

Ehryk
fonte
Eu acho que isso ainda é bastante amplo. A pergunta que você deve se perguntar é "o que significa um som alto?" A percepção humana da sonoridade é complexa e pode depender da frequência, duração do som, humor, consumo de café etc. A percepção humana do "silêncio" também depende muito do ambiente e do ruído ambiente. Você terá que traduzir essas percepções subjetivas em definições mais objetivas antes de realizar um circuito elétrico para medi-las.
Phil Frost
Aqui estão alguns termos de pesquisa que ajudarão: "detector de pico" "circuito RC" "constante de tempo" "frequência de canto" "filtro passa-baixo" "dB SPL"
Phil Frost
Eu tenho esse potenciômetro de sensibilidade no design para explicar isso (ele deve ser amplo o suficiente para que possa ser "efetivamente todo silencioso" ou "sempre alto", e eu possa sintonizar a partir daí). Não sei se deve estar no lugar de RL, RE (controle de ganho ou algo assim) ou desvio do sinal. Não sei de que outra forma posso ser mais específico. Você poderia ajudar a esclarecer o que mais é necessário?
Ehryk
1
Se você alterar a tensão de referência ADC do controlador para o intervalo de banda 2V56, não precisará da tensão de saída de 0-5V. Você alcançará a resolução máxima de 0 a 2,56V. Dependendo do controlador exato, você tem várias tensões de intervalo de banda para usar como referência.
Jipie
1
Procure por "retificador ativo de sinal pequeno" e encontre um circuito como techonlineindia.com/Libraries/tol/Signal3.sflb.ashx que elimine a tensão limite do diodo da equação.
Jipie

Respostas:

27

Embora você possa fazer tudo isso apenas com um amplificador e um microcontrolador (Arduino), até onde posso ver, você deseja a opção analógica. Eu tentei criar um circuito que emite o nível de voz no microfone. A faixa é de 0V a 4V. No entanto, você pode atualizá-lo facilmente para 0V para 5V apenas alterando o OP-AMP. Agora, vamos entrar nisso;

Antes de tudo, substituí o amplificador de transistor pelo OP-AMP. Aqui está o que eu vim com;

insira a descrição da imagem aqui

Este é um amplificador inversor simples com um ganho de 100. Aqui está a fórmula para calcular o ganho;

Vovocêt=-RfREunVEun=-100kREunVEun=-100VEun

Como você pode ver, o U1 pega o sinal de entrada, o inverte e depois o multiplica por 100. Você pode alterar R2 ou R3 e verá que o ganho do U1 muda. A inversão do sinal de entrada não importa aqui, como você entenderá mais adiante. Vejamos a saída deste amplificador e você verá que há um grande crescimento no sinal de entrada.

insira a descrição da imagem aqui

No gráfico acima, você verá que a saída possui uma tensão de offset CC de 2,5 volts. Isso é devido ao terreno virtual que usamos. Se criarmos um aterramento virtual, isso significa que transportamos o aterramento para outro nível de tensão. Nesse caso, o movemos para 2,5 V. Com a nova configuração, criamos algo que se parece com -2,5 V, 0 V e 2,5 V para o circuito. Para conseguir isso, tive que criar um novo trilho de tensão de 2,5 volts. Como esse trilho de tensão não fornecerá muita energia (menos de 1 mA), é fácil criar;

insira a descrição da imagem aqui

V+=V-

Após a amplificação, devemos colocar o sinal em um "detector de envelope" ou em outras palavras, "seguidor de envelope". Isso obterá o nível do sinal, como você deseja e como mostrou na figura em sua pergunta. Aqui está a aparência de um seguidor de envelope básico:

insira a descrição da imagem aqui

Parece ótimo, no entanto, observe que aqui, D3 é um diodo e cai cerca de 0,6 V em si. Então, você perde a tensão. Para superar isso, vamos usar o que é chamado de "super-diodo". É super, já que a queda de tensão é quase 0V! Para conseguir isso, incluímos um OP-AMP com um diodo, e isso é tudo! O OP-AMP compensará a queda de tensão do diodo e você terá um diodo quase ideal;

insira a descrição da imagem aqui

V+=V-V-V-V+

Agora, altere D3 no circuito seguidor de envelope acima com um super-diodo e você terá um seguidor de envelope melhor! Vamos olhar para o nosso resultado;

insira a descrição da imagem aqui

Estamos chegando perto. Como você pode ver, a saída do seguidor de envelope, que é a linha vermelha, pode ir de 2,5 V a 4 V. 2,5 V é sem som, 4 V é alto e 3,25 V para som médio. Para escalar isso para o que você deseja, podemos subtrair a tensão de compensação de 2,5 V e escalá-la. Então, quando você subtrai 2,5 V, ele se torna; 0 V para sem som, 1,5 V é alto e 0,75 V para som médio e assim por diante. Depois disso, se você multiplicar por cerca de 3, obterá exatamente o que deseja. 0 V para sem som, 2,5 V para som médio e 5 V para som alto. Para recapitular, o que queremos é isso;

Vovocêt=(VEun-2.5V)3

Para conseguir isso, usaremos um amplificador diferencial ou, em outras palavras, um " subtrator ".

insira a descrição da imagem aqui

Quando os resistores R1 = R2 e R3 = R4, a função de transferência para o amplificador diferencial pode ser simplificada para a seguinte expressão:

Vovocêt=R3R1(V2-V1)

Se você criar V1 = 2,5V e relação R3 / R1 3, obterá a saída desejada.

Aqui está o esquema completo que fará o que você deseja:

insira a descrição da imagem aqui

Eu usei o LM324 OP-AMP aqui para fins de simulação. Isso limitará a tensão máxima de saída para 4V. Para ter uma saída de faixa completa, você deve usar uma saída de trilho a trilho OP-AMP. Eu sugeriria MCP6004 . Altere R1 e R2 até obter o resultado desejado. Aqui está o que eu recebi com a simulação:

insira a descrição da imagem aqui

Agora, ao medir esses valores no ADC, você não terá um senso linear ; ao contrário, o som é melhor entendido logarítmico, pois nossos ouvidos ouvem dessa maneira. Então, você deve usar decibéis . Se você não está familiarizado com decibéis, aqui está um ótimo tutorial em vídeo sobre isso.

Uma sala silenciosa, por exemplo, é medida em torno de 40 dB. Uma festa em uma sala aumentará o nível da sala para 100 dB, ou talvez 110 dB. Em deste websit e, você pode encontrar grande informação sobre isso, de onde eu também têm incorporado abaixo da imagem. Pense nos níveis de decibéis e experimente a tensão de saída do circuito. Em seguida, calcule a resolução ADC necessária. Provavelmente, você ficará bem com um ADC de 12 bits.

insira a descrição da imagem aqui

abdullah kahraman
fonte
5
Esta é uma resposta fenomenal; se o SE tivesse um corredor da fama, eu o nomearia. Obrigado por ser muito preciso e explicativo! Como você está gerando essas imagens, uma captura de um ocsiloscópio, software de escopo de PC ou um algoritmo de resolução?
Ehryk
1
@Ehryk Obrigado, mas você está exagerando :). É o LTSpice que eu uso.
Abdullah kahraman
@Ehryk Atualizei minha resposta e adicionei mais informações sobre a medição de som.
Abdullah kahraman
Use o circuitlab para poder compartilhar e fazer com que as pessoas executem simulações imediatamente! Vou lhe dar 50 representantes por isso.
21413 Kortuk
1
@Kortuk Eu não consegui simular corretamente .. Link do CircuitLab
abdullah kahraman
7

Você parece estar no caminho certo. Ele faz ter um monte de componentes discretos para fazer esse tipo de coisa. Você pode não acreditar em mim, mas o uso de amplificadores operacionais pode tornar tudo isso mais simples e menor. Tenho certeza que você pode encontrar ICs ainda mais específicos que fazem mais do que você precisa em um pacote menor. Aposto que há um CI por aí que faz exatamente o que você precisa. No entanto, você aprenderá mais se continuar sem eles, mesmo que apenas pelo valor acadêmico.

Você também pode simplificar um pouco disso movendo a lógica para o microprocessador. A detecção de envelopes é fácil no software e, dependendo da precisão e da sensibilidade do microfone, você pode até omitir o amplificador atrás do microfone e colocar sua saída diretamente no ADC. Isso não leva 0V-5V, mas isso importa? Você pode multiplicá-lo por uma constante no software. O que você perde é a precisão de ter toda a gama do ADC disponível, mas talvez isso não seja tão importante quanto a simplicidade. Você decide.

Phil Frost
fonte
Eu não acredito que os amplificadores operacionais possam fazê-lo de maneira mais simples, eu estava tentando minimizar as propriedades de PCB. No entanto, está se tornando dolorosamente óbvio que um mergulho de 8 pinos no LM358 será DRASTICAMENTE mais simples. Também estou me perguntando se um microfone de eletreto também é uma má escolha; parece ridículo que um desejo tão simples (sonoridade 0V-5V) seja absurdamente complexo.
Ehryk
Um eletreto por si só fornece ~ 20mV pico-pico. Com o ADC do Arduino, trata-se de uma diferença de dois, do perfeitamente silencioso ao mais alto possível (resolução de 4,9 mV, se 511 quando silencioso, 513 a 509 a todo vapor). Eu quero boas faixas de sensibilidade, não "Silencioso / Médio / Alto" como os únicos gradientes, e isso supõe que a linha seja perfeitamente estável.
Ehryk
@Ehryk, se você quiser apenas manter as coisas pequenas, tenho certeza de que pode encontrar o LM358 (ou qualquer outro amplificador operacional comum) em um grande pacote de montagem em superfície como SOIC . Muito fácil de soldar à mão com boas ferramentas, e você não precisa fazer furos. Antes de comprar um sensor que já faz exatamente o que você precisa, duvido que você faça mais do que um microfone de eletreto e mova tudo, menos a polarização e a amplificação para o microcontrolador.
Phil Geada
4

Primeiro, você não precisa do arduino, a menos que precise fazer mais processamento - tudo o que você realmente quer é um amplificador (um amplificador operacional faria, vários circuitos básicos em todo o Google) para aumentar a saída do microfone na faixa 0-5v. Se você não está muito preocupado com a precisão (como isso é apenas para diversão, e não para medições científicas), você pode usar um circuito de recorte bastante básico, canalizar a saída em um gatilho schmitt ou usar um LM3914 para gerar uma exibição.

Um pouco mais de requinte poderia ser obtido ao criar um circuito AGC para aumentar automaticamente o ganho para cima e para baixo com o nível médio.

Seja como for, você obtém um grande carma positivo abandonando o arduino e fazendo-o analógico como a natureza pretendia;)

Edit: Provavelmente, existem muitos circuitos de "pré-amplificador de microfone" na web, provavelmente um chip SOT23 de US $ 0,10 para fazer isso por você nos dias de hoje ...

John U
fonte
O arduino está controlando uma matriz de LEDs com cinco pinos PWM, e eu terei que piscar letras / padrões diferentes com brilho de várias frações da entrada de ruído. Então - o arduino é necessário e, de alguma forma, preciso dizer, com boa resolução, quão alto é para que ele possa fazer o PWM do padrão em diferentes graus de brilho na música. Eu realmente não sei o que você está falando sem um diagrama de circuitos.
Ehryk
Não fique obcecado com diagramas de circuitos, estou descrevendo circuitos que são blocos básicos de construção, apresentados em todos os livros, um google rápido deve ativar circuitos básicos para várias funções (pré-amplificador, AGC, clipper etc.), bem como o material mais discoteca (circuitos gráficos de equalização, drivers de vídeo, órgãos de luz etc.) que tem sido objeto de eletrônicos para hobby desde que o Disco foi inventado.
John L
O problema é que existem muitos exemplos, com componentes e 'características' variados, vagamente descritos ou nem um pouco descritos. Diagramas específicos com algumas explicações sobre por que certos componentes foram selecionados e os valores atingidos são o que acho mais útil e o que geralmente peço nas minhas perguntas. Essa resposta foi fenomenal e extremamente útil, por exemplo.
Ehryk
Você está pedindo lego, estou oferecendo um pedaço de plástico e um bisturi, é apenas uma abordagem diferente.
John
2
... e estou respondendo com o fato de já ter 10 pedaços de plástico e meu próprio bisturi, e conseguir mais centenas pesquisando. Além disso, pedi especificamente um lego na pergunta e você está dizendo 'não espere legos'.
Ehryk