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?
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?
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:
Respostas:
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;
Este é um amplificador inversor simples com um ganho de 100. Aqui está a fórmula para calcular o ganho;
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.
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;
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:
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;
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;
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;
Para conseguir isso, usaremos um amplificador diferencial ou, em outras palavras, um " subtrator ".
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:
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:
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:
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.
fonte
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.
fonte
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 ...
fonte