Come posso ottenere + 5v per il rumore forte, 0v per il silenzio dal microfono a elettrete (o altri componenti)?


12

Ho fatto alcune domande qui per arrivare a una vera, le domande iniziali che ho posto sono collegate alla fine. Ho usato Fritzing per inventare alcuni schemi dei miei pensieri iniziali, ma per lo meno ho bisogno di aiuto con i valori sui componenti, che ho solo vagamente compreso e scelto quelli che sembrano essere valori ragionevoli o comuni.

Fondamentalmente, ho un Arduino che ha 6 ingressi analogici. Utilizza un ADC a 10 bit per leggere la tensione su uno qualsiasi dei pin analogici, quindi 0 = 0 v, 511 = 2,5 v e 1023 = 5 v, e tutti i valori in mezzo. Fa una lettura LINEARE DC, quindi non sto cercando la logica 1-0 qui.

Ho questo agganciato alle luci a LED e voglio farle rispondere alla musica. Quello che voglio è la massima risoluzione con componenti minimi e penso di usare WAY troppi componenti e di renderlo troppo complesso. Forse i microfoni Electret non sono quello che voglio qui, sono aperto a qualcos'altro. Preferirei non usare gli amplificatori operazionali per risparmiare spazio sul mio PCB.

Quello che voglio è un semplice sensore di livello del rumore. Non sto cercando di riprodurre l'audio, né di avere chiarezza o altro, ma vorrei, il più vicino possibile:

  • Perfect Silence = il più vicino possibile a 0v DC (stabile, non AC)
  • Rumore medio = circa 2,5 V CC (stabile, non CA)
  • Rumore forte = il più vicino possibile a 5 V CC (stabile, non CA)

Capisco con un BJT che il meglio che posso ottenere sarà da 0,6 V a 4,4 V, ma questo è abbastanza accettabile. Ciò che non è, tuttavia, è metà dell'onda, da 0,6 V a 2,5 V. Questo sembra sprecare metà della mia risoluzione disponibile senza motivo. Tuttavia, se ci sono altre configurazioni oltre a un BJT che possono avvicinarmi a 0v-5v, sarei interessato a dargli una possibilità; purché siano semplici.

Eccone uno più semplice, che spero sia possibile, ma richiede che il segnale dell'elettrete abbia un'ampiezza sufficiente per pilotare il circuito del rivelatore a inviluppo (diodo, resistenza e condensatore) per ottenere solo la metà positiva. Non penso che possa farlo a causa della caduta in avanti del diodo, ma forse questo può essere riorganizzato o fatto prima del cappuccio di uscita? Quali dovrebbero essere i valori del rivelatore di inviluppo e dei resistori dell'amplificatore? Dovrebbe essere posizionato un potenziometro di sensibilità sul segnale, o RE, o RL, e quale dovrebbe essere il suo valore? Lineare o logaritmica?

Semplice

Tuttavia, forse l'uscita dell'elettrete non può sopravvivere al rivelatore di inviluppo, allo shunt di sensibilità e può comunque pilotare un transistor NPN. In caso contrario, ecco una versione più complessa. Devo seguire questa strada? Ottenere l'output desiderato dal circuito richiede davvero tutti questi componenti?

Complesso

Ecco alcune delle domande passate che ho posto prima di comprendere meglio cosa stavo cercando di articolare, per maggiori dettagli. Ecco cosa dovrebbe fare il rilevatore di inviluppi e non sono sicuro di come sintonizzarlo per l'uscita dell'elettrete:

Rilevatore di buste Schema elettrico


Penso che questo sia ancora piuttosto ampio. La domanda che dovresti porti è "cosa significa che un suono è forte?" La percezione umana del volume è complessa e può dipendere dalla frequenza, dalla durata del suono, dall'umore, dal consumo di caffè, ecc. La percezione umana del "silenzio" dipende anche fortemente dall'ambiente e dal rumore ambientale. Dovrai tradurre queste percezioni soggettive in definizioni più oggettive prima di poter realizzare un circuito elettrico per misurarle.
Phil Frost,

Ecco alcuni termini di ricerca che aiuteranno: "rilevatore di picco" "circuito RC" "costante di tempo" "frequenza d'angolo" "filtro passa basso" "dB SPL"
Phil Frost

Ho quel potenziometro di sensibilità nel progetto per tener conto di ciò (dovrebbe essere abbastanza ampio da poter essere "efficacemente tutto silenzioso" o "sempre forte", e posso sintonizzarmi da lì). Non so se dovrebbe essere al posto di RL, RE (controllo del guadagno o qualcosa del genere) o se deviare il segnale. Non so in quale altro modo posso essere più specifico, potresti aiutarmi a chiarire cos'altro è necessario?
Ehryk,

1
Se si modifica la tensione di riferimento ADC del controller sulla larghezza di banda 2V56, non è necessaria la tensione di uscita 0-5V. Raggiungerai la piena risoluzione da 0 a 2,56 V. A seconda del controller esatto, è possibile utilizzare come riferimento varie tensioni di gap di banda.
jippie,

1
Cerca "raddrizzatore attivo per piccoli segnali" e trova un circuito come techonlineindia.com/Libraries/tol/Signal3.sflb.ashx che elimina la tensione di soglia del diodo dall'equazione.
jippie,

Risposte:


27

Anche se potresti fare tutto questo solo con un amplificatore e un microcontrollore (Arduino), per quanto posso vedere, vuoi l'opzione analogica. Ho provato a creare un circuito che emette il livello della voce sul microfono. L'intervallo è compreso tra 0 V e 4 V. Tuttavia, è possibile aggiornarlo facilmente da 0 V a 5 V semplicemente cambiando l'OP-AMP. Ora entriamo in esso;

Prima di tutto, ho sostituito l'amplificatore a transistor con l'OP-AMP. Ecco cosa mi è venuto in mente;

inserisci qui la descrizione dell'immagine

Questo è un semplice amplificatore a inversione con un guadagno di 100. Ecco la formula per calcolare il guadagno;

Vout=RfRinVin=100kRinVin=100Vin

Come puoi vedere, U1 prende il segnale di input, lo inverte e poi lo moltiplica per 100. Puoi cambiare R2 o R3 e vedrai che il guadagno di U1 cambia. L'inversione del segnale di ingresso non ha importanza qui, come capirai più avanti. Diamo un'occhiata all'uscita di questo amplificatore e vedrai che c'è una grande crescita sul segnale di ingresso.

inserisci qui la descrizione dell'immagine

Nel grafico sopra, vedrai che l'uscita ha una tensione DC offset di 2,5 volt. Ciò è dovuto al terreno virtuale che abbiamo usato. Se creiamo una terra virtuale, ciò significa che portiamo la terra a un altro livello di tensione. In questo caso lo abbiamo spostato a 2,5 V. Con la nuova configurazione, abbiamo creato qualcosa che assomiglia a -2,5 V, 0 V e 2,5 V al circuito. Per raggiungere questo obiettivo, ho dovuto creare una nuova guida di tensione di 2,5 volt. Dal momento che quella guida di tensione non fornirà molta energia, (meno di 1 mA), è facile da creare;

inserisci qui la descrizione dell'immagine

V+=V

Dopo l'amplificazione, dovremmo mettere il segnale su un "rivelatore di inviluppo" o, in altre parole, "follower di inviluppo". Questo otterrà il livello del segnale, come desideri e come hai mostrato nella foto nella tua domanda. Ecco come appare un seguace di base delle buste:

inserisci qui la descrizione dell'immagine

Sembra tutto fantastico, tuttavia, notare che qui D3 è un diodo e scende di circa 0,6 V su se stesso. Quindi, perdi la tensione. Per ovviare a questo, useremo quello che viene chiamato il "super diodo". È super, poiché la caduta di tensione è quasi 0V! Per raggiungere questo obiettivo, includiamo un OP-AMP con un diodo, e questo è tutto! L'OP-AMP compenserà la caduta di tensione del diodo e avrai un diodo quasi ideale;

inserisci qui la descrizione dell'immagine

V+=VVVV+

Ora, cambia D3 nel circuito follower di inviluppo sopra con un super diodo e avrai un seguace di inviluppo migliore! Diamo un'occhiata al nostro risultato;

inserisci qui la descrizione dell'immagine

Ci stiamo avvicinando. Come puoi vedere, l'output del follower dell'inviluppo, che è la linea rossa, può passare da 2,5 V a 4 V. 2,5 V è senza suono, 4 V è forte e 3,25 V per medio. Per ridimensionare ciò che si desidera, è possibile sottrarre una tensione di offset di 2,5 V e ridimensionarla. Quindi, quando sottrai 2,5 V, diventa; 0 V per nessun suono, 1,5 V per suono forte e 0,75 V per suono medio e così via. Dopodiché, se lo moltiplichi per circa 3, otterrai esattamente ciò che desideri. 0 V per nessun suono, 2,5 V per suono medio e 5 V per suono forte. Ricapitolando, ciò che vogliamo è questo;

Vout=(Vin2.5V)3

Per raggiungere questo obiettivo, utilizzeremo un amplificatore differenziale o in altre parole un " sottrattore ".

inserisci qui la descrizione dell'immagine

Quando i resistori, R1 = R2 e R3 = R4, la funzione di trasferimento per l'amplificatore differenziale può essere semplificata con la seguente espressione:

Vout=R3R1(V2V1)

Se si imposta V1 = 2,5 V e R3 / R1 rapporto 3, si otterrà l'output desiderato.

Ecco lo schema completo che farà quello che vuoi:

inserisci qui la descrizione dell'immagine

Ho usato LM324 OP-AMP qui per scopi di simulazione. Ciò limiterà la massima tensione di uscita a 4 V. Per avere un output a gamma completa, è necessario utilizzare un OP-AMP output rail-to-rail. Vorrei suggerire MCP6004 . Cambia R1 e R2 fino ad ottenere il risultato desiderato. Ecco cosa ho ottenuto con la simulazione:

inserisci qui la descrizione dell'immagine

Ora, quando misurate questi valori in ADC, non otterrete un senso lineare , invece il suono è meglio compreso logaritmico, poiché le nostre orecchie ascoltano in quel modo. Quindi, dovresti usare i decibel . Se non hai familiarità con i decibel, ecco un ottimo video tutorial a riguardo.

Una stanza silenziosa, ad esempio, è misurata intorno a 40 dB. Una festa in una stanza farà salire il livello della stanza fino a 100 dB, o forse 110 dB. In questo sito web , puoi trovare grandi informazioni a riguardo, da cui ho anche incorporato l'immagine sotto. Pensa ai livelli di decibel e sperimenta l'uscita di tensione del circuito. Quindi, calcola la risoluzione ADC di cui avrai bisogno. Probabilmente, starai bene con un ADC a 12 bit.

inserisci qui la descrizione dell'immagine


5
Questa è una risposta fenomenale; se SE avesse una hall of fame, nominerei questo. Grazie per essere molto preciso ed esplicativo! Come stai generando quelle immagini, una cattura da un ocsilloscopio, un software oscilloscopio per PC o un algoritmo di risoluzione?
Ehryk,

1
@Ehryk Grazie, ma stai esagerando :). È LTSpice che uso.
Abdullah Kahraman,

@Ehryk Ho aggiornato la mia risposta e aggiunto ulteriori informazioni sulla misurazione del suono.
Abdullah Kahraman,

Usa circuitlab per condividere e far eseguire immediatamente le simulazioni alle persone! Ti darò 50 rappresentanti per questo.
Kortuk,

1
@Kortuk Non ho potuto simularlo correttamente .. CircuitLab Link
abdullah kahraman

7

Sembri essere sulla strada giusta. Si fa prendere un sacco di componenti discreti per fare questo genere di cose. Potresti non credermi, ma l'uso di amplificatori operazionali potrebbe rendere tutto questo più semplice e più piccolo. Sono sicuro che puoi trovare circuiti integrati ancora più specifici che fanno di più di ciò che ti serve in un pacchetto più piccolo. Scommetto che c'è un IC là fuori che fa esattamente quello che ti serve. Tuttavia, imparerai di più se procederai senza di loro, anche se solo per valore accademico.

Puoi anche semplificarne alcune spostando la logica nel microprocessore. Il rilevamento delle buste è semplice nel software e, a seconda della precisione e della sensibilità del microfono, potresti addirittura evitare di omettere l'amplificatore dopo il microfono e di metterne l'uscita direttamente nell'ADC. Questo non ti porterà 0V-5V, ma importa? Puoi moltiplicarlo per una costante nel software. Ciò che perdi è la precisione di avere l'intera gamma dell'ADC disponibile, ma forse non è così importante come la semplicità. Tu decidi.


Non ti credo che gli amplificatori operazionali possano farlo in modo più semplice, stavo cercando di minimizzare gli immobili PCB. Tuttavia, sta diventando dolorosamente ovvio che un tuffo a 8 pin LM358 sarà DRASTICAMENTE PIÙ semplice. Mi chiedo anche se anche un microfono a elettrete sia una cattiva scelta; sembra ridicolo che un desiderio così semplice (senso sonoro, 0V-5V) sia insensato complesso.
Ehryk,

Un elettrete da solo fornisce un picco-picco di ~ 20mV. Con l'ADC di Arduino, si tratta di una differenza di due dal perfettamente silenzioso al più forte possibile (risoluzione di 4,9 mV, se 511 in silenzio, da 513 a 509 a tutto volume). Voglio buoni intervalli di sensibilità, non "Silenzioso / Medio / Alto" come unici gradienti, e questo suppone che la linea fosse perfettamente stabile.
Ehryk,

@Ehryk se vuoi solo mantenere le cose piccole, sono sicuro che puoi trovare l'LM358 (o qualsiasi altro op-amp comune) in un pacchetto di grandi dimensioni come SOIC . Molto facile da saldare a mano con buoni strumenti e non è necessario praticare fori. A corto di acquistare un sensore che fa già esattamente ciò di cui hai bisogno, dubito che farai più semplice di un microfono a elettrete e trasferirai tutto tranne la polarizzazione e l'amplificazione nel microcontrollore.
Phil Frost,

4

Prima di tutto, non hai bisogno di Arduino a meno che tu non abbia bisogno di fare più elaborazioni - tutto ciò che vuoi davvero è un amplificatore (farebbe un amplificatore operazionale, carichi di circuiti di base su tutti i googles) per aumentare l'uscita del microfono nella gamma 0-5V. Se non sei troppo preoccupato per l'accuratezza (come in questo è per divertimento piuttosto che per una misurazione scientifica) puoi usare un circuito di ritaglio abbastanza semplice, convogliare l'output in un trigger schmitt o usare un LM3914 per generare un display.

Un po 'più finezza potrebbe essere ottenuta facendo un circuito AGC per aumentare automaticamente il guadagno su e giù con il livello medio.

In ogni caso, ottieni un karma positivo maggiore abbandonando l'arduino e facendolo analogo come previsto dalla natura;)

Modifica: è probabile che ci siano anche molti circuiti "pre-amp" sul web, probabilmente un chip SOT23 da $ 0,10 per farlo per te in questi giorni ...


L'arduino sta controllando un array di LED con 5 dei suoi pin PWM e lo farò lampeggiare lettere / motivi diversi a luminosità di varie frazioni dell'input di rumore. Quindi - l'arduino è necessario, e in qualche modo ho bisogno di dirlo, con una buona risoluzione, quanto è forte in modo che possa PWM il pattern a vari gradi di luminosità della musica. Non so davvero cosa stai facendo senza uno schema elettrico.
Ehryk,

Non ossessionare gli schemi circuitali, sto descrivendo i circuiti che sono elementi costitutivi di base, presenti in ogni libro di testo, un google veloce dovrebbe attivare i circuiti di base per varie funzioni (pre-amp, AGC, clipper, ecc.) E più cose da discoteca (circuiti grafici EQ, driver di visualizzazione, organi di luce, ecc.) che sono stati oggetto di elettronica per hobby da quando è stata inventata la Disco.
John U,

Il problema è che ci sono troppi esempi, con componenti e "caratteristiche" variabili, vagamente descritti o non descritti affatto. Diagrammi specifici con alcune spiegazioni sul perché alcuni componenti sono stati selezionati e i valori raggiunti sono ciò che trovo più utile e ciò che di solito chiedo nelle mie domande. Questa risposta è stata fenomenale ed estremamente utile, ad esempio.
Ehryk,

Stai chiedendo lego, offro un pezzo di plastica e un bisturi, è solo un approccio diverso.
John U,

2
... e sto rispondendo con il fatto che ho già 10 grumi di plastica e il mio bisturi, e ne posso ottenere altre centinaia cercando. Inoltre, ho specificamente chiesto un lego nella domanda e stai dicendo "non aspettarti lego".
Ehryk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.