Forum: Mikrocontroller und Digitale Elektronik AVR Audiopegel messen


von Klaus (Gast)


Lesenswert?

Gibt es eine Möglichkeit mit einem µC den Pegel eines Audiosignals zu 
messen? Klar, mit einem OpAmp in entsprechender Beschaltung und dann an 
einzelne Pins des µC geht's auf jeden Fall, aber so ist man von den 
Lautstärkepegeln festgelegt.
Könnte man nicht über einen Optokoppler das Signal erstmal entkoppeln 
und dann über den ADC vom Atmel die Amplitude messen?

von Jack B. (jackbraun)


Lesenswert?

>Klar, mit einem OpAmp in entsprechender Beschaltung und dann an
>einzelne Pins des µC geht's auf jeden Fall, aber so ist man von den
>Lautstärkepegeln festgelegt.

Das verstehe, wer will. An was für "einzelne Pins" willst Du denn das
durch den OPV verstärkte Signal legen?

von Klaus (Gast)


Lesenswert?

okey, ich baue mir mit den OpAmps quasi einen A/D-Wandler und lege die 
einzelnen Stufen an Pins des µC und gucke welche high/low sind.

von Brumm (Gast)


Lesenswert?

Na an die Audioeingänge des AVR.
Da gibt es den ATmega128-Audio.

von Brumm (Gast)


Lesenswert?

Und für Geruchsmessungen den ATmega4711

von Jack B. (jackbraun)


Lesenswert?

>okey, ich baue mir mit den OpAmps quasi einen A/D-Wandler und lege die
>einzelnen Stufen an Pins des µC und gucke welche high/low sind.

Viel Spaß!

von Der T. (Gast)


Lesenswert?

..nicht zu vergessen den Bildverarbeitung-Typ: ATmegaEYE

von Paul Baumann (Gast)


Lesenswert?

@Klaus
Hier ein Link zu so einem Din(g)k ;-)

http://webx.dk/robot-crawler/bargraph.htm

MfG Paul

von Klaus (Gast)


Lesenswert?

Okey, danke für wenigistens 1-2 ernsthaft gemeinte Antworten. Würde das 
mit dem OpAmp nicht funktionieren?
War nur so ne fixe Idee. Habe noch nicht so den Plan.

von holger (Gast)


Lesenswert?

>Gibt es eine Möglichkeit mit einem µC den Pegel eines Audiosignals zu
>messen?

Ja, natürlich. Spitzenwertgleichrichter mit 2x OP aufbauen.
Einfachen RC Tiefpass zur Mittelwertbildung dahinter.
Spannung mit dem AD Wandler messen. Pegel im uC in dB umrechnen.
Fertig ist die Pegelanzeige.

von Daniel (Gast)


Lesenswert?

audiosignal?
20hz-20khz dafür brauchst doppelte Abtastfrequenz also 40khz,
ist AD Wandler so schnell bei AVRs?
Das heisst ja, ein Sample muss in 25 mikrasekunden umgewandelt sein.

Pegel vom Audiosignal, das ist sehr unpräzise Beschreibung.
Was stellst du dir darunter?
Ein Zeitsignal ist ein riesiges Gezackel, was soll da Pegel sein?
Ich kann mir nur Vorstellen dass das ganze auf FFT rausläuft

von Klaus (Gast)


Lesenswert?

Danke Daniel!
Ich habe mal ins Datenblatt vom atmega16 geguckt.
Der ADC dort braucht 13-260µs für die Wandlung.
Im Prinzip soll es ein Audiosignal (Kopfhörer) überwacht werden.
Ab einer einstellbaren Amplitudenwert (Laufstärke/Pegel... wie auch 
immer) soll eine Lampe leuchten.
Gibt es denn noch andere Möglichkeiten das zu lösen. Bin gerne für 
Vorschläge zu haben. Kenne mich echt noch nicht so toll aus.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Du kannst auch nen LM3914 nehmen und dessen ausgänge einlesen ;)

Oder du benuzt den gleich zum leuchten lassen der Lampe, dann einen der 
Eingangs R's einfach als Poti auslegen.
(es muß nicht immmer nen µC sein)

von SNT-Opfer (Gast)


Lesenswert?

Ehm, im Datenblatt vom LM3916 ist auf Seite 11 ein "FIGURE 6. Precision 
Full-Wave Peak Detector" angegeben.
Der bildet dir eine Gleichspannung aus dem Audiosignal.
Habe das selber für eine VU-Bargraphanzeige auf LCD verwendet, 
funktioniert prima. Durch das RC-Filter am Ausgang bleiben auch kurze 
Spitzen noch messbar, da die Spannung etwas gehalten wird.
Mann sollte allerdings die Werte vom AD-Wandler noch logarithmieren, 
sonst wirkt die Anzeige etwas "ungewohnt" ;-)

von Klaus (Gast)


Lesenswert?

Danke Läubi!
Das mit dem LM3914 klingt sehr gut.
Ich habe mir das Datenblatt mal angesehen, aber leider nix zu den Zeiten 
gefunden, die das Dinge braucht, bis die entsprechenden Ausgänge 
angesteuert sind. Sollte möglichst schnell sein (habe ich bisher 
vergessen zu erwähnen... sorry)

von SNT-Opfer (Gast)


Lesenswert?

Edith:

Lese gerade die Anforderung, dafür braucht man nicht mal einen µC.
Den Spitzenwertgleichrichter aufbauen und eventuell einen Komparator 
dahinter, der ab dem geforderten Wert umschaltet und die Lampe ansteuert 
(eventuell noch einen Transitor als Stromverstärker dazwischen), fertig.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Den Baustein gibt es Linear als auch Logarithmisch!
Und wie schnell ist schnell? Der ist schneller als das Auge gG

von SNT-Opfer (Gast)


Lesenswert?

@Klaus
Da der LM3914-16 analog arbeitet, dürfte die Geschwindigkeit mehr als 
ausreichend sein.
Da du aber nur einen Pegel brauchst, kommste ohne LM391x günstiger weg 
mit einem OP als Komparator, der LM ist nämlich nicht ganz billig.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

SNT-Opfer wrote:
> mit einem OP als Komparator, der LM ist nämlich nicht ganz billig.
Das stimmt leider.. aber naja dafür ist der AUfwand minimal in den 
Anwendungsgebieten ist eine meiner ersten Schaltungen gewesen die 
richtig ugt funktioniert haben :)

von Klaus (Gast)


Lesenswert?

Gut, nochmal danke euch beiden.
Ich denke mal, ich werde beides testen. Die Schaltung ist nämlich auch 
dazu gedacht, ein bisschen zu lernen ;)
Schaltzeiten sollten < 15ms sein.

von SNT-Opfer (Gast)


Lesenswert?

Das ist problemlos möglich.
Nur das Auge ist nicht so fix, denke bei 20ms ist Schluss ;-)

Viel Erfolg noch !

von Klaus (Gast)


Lesenswert?

Gut.Danke!
Werde dann die Tage mal anfangen zu basteln.

von Unbekannter (Gast)


Lesenswert?

Differential oder Single ended Audio Signale?

Burr Brown bietet einiges an (bei Reichelt erhaeltlich). AD628  / AD638 
bzw Nachfolger AD738 für richtige True RMS messungen.

von SNT-Opfer (Gast)


Lesenswert?

@Unbekannter
Das wäre die Kanone, mit der Spatzen erschossen werden ;-)
Er braucht weniger qualitativ die Amplitude, mehr quantitativ.
Es soll nur ab Pegel x ne Lampe leuchten...

von Daniel (Gast)


Lesenswert?

ich hab nachgedacht und wahrscheinlich geht es beim
Audiopegel eher um die Signalenergie. FFT ist dann
ein overkill, da man mehr Information daraus bekommt als nötig wäre.

Wie wäre es mal einen gleitenden Zeitintervall von 1 sekunde
aus dem Zeitsignal rauszuschneiden und über dessen
Quadrat zu integrieren?
(Quadrat, damit negative Werte positiv zum Integral beitragen)

Also mathematisch sei x(t) das ganze Zeitsignal.
Wir bilden dann
p(t) = Integral von t-T bis t über x(tau)*x(tau)*dtau
für t>T natürlich, weil x(t) erst ab 0.

Man wird dann die Energie des Rauschens abschätzen
müssen. Wenn Energie des Zeitschlitzes grösser
als die Energie des Rauschens derselben Zeitschlitzes ist,
dann bingo ist ein Signal auf der Leitung detektiert.
Die Energieverteilung auf einzelne Frequenzen wäre
wie gesagt ein Overkill oder nice to have information.

@SNT-Opfer
>Ehm, im Datenblatt vom LM3916 ist auf Seite 11 ein "FIGURE 6. Precision
>Full-Wave Peak Detector" angegeben.
>Der bildet dir eine Gleichspannung aus dem Audiosignal.

.. also in der Art wie ich beschrieben habe oder
ist es Anteil der Gleichspannung im Signal, also X(0)?

Gruss, Daniel

von Daniel (Gast)


Lesenswert?

x1(t) = sin(2*pi*fs*t)
x2(t) = 10 + sin(2*pi*fs*t)

würde LM3916 mir

Möglichkeit 1
bei x1 0 ausgeben
bei x2 10 ausgeben

oder Möglichkeit 2

bei x1 etwas >0 ausgeben
bei x2 etwas >10 ausgeben

ich les mir heute LM3916 nacher genauer durch :)

von SNT-Opfer (Gast)


Lesenswert?

Au weia...das wird ja immer komplizierter...;-)

Der "Full Wave Peak Detector" ist nix anderes als ein modifizierter 
Spitzenwert-Gleichrichter (Vollwelle). Im Datenblatt vom LM3916 ist der 
nur als Schaltungs-Vorschlag angegeben um NF-Signale "vollständig" 
auszuwerten.
Der LM kommt schon mit Wechselspannung am Eingang klar, er bewertet aber 
nur die positive Halbwelle.
Will man ein "taugliches" VU-Meter daraus machen, benötigt man den 
aktiven Gleichrichter (da ja Audio-Pegel weiter unter der Dioden 
Flussspannung liegen können). Zudem ist die Schaltung so ausgelegt, das 
sie eine gewisse Ansprech- und Verzögerungszeit hat, damit a) extrem 
kurze (Stör) Impulse nicht angezeigt werden, aber b) der "normale" 
Spitzenwert noch für das Auge sichtbar (100ms) angezeigt wird.

Im Grunde wird die Amplitudenspitze herausgeholt, daher auch Peak 
Detector.
Es wird kein RMS gebildet, oder gar die Energie über die Zeit.
Nur ganz simple der höchste Punkt im Signal am Ende ausgegeben, als 
positive Spannung in Bezug auf Masse.

von Andreas (Gast)


Lesenswert?

Als Alternative zum LM3916 kann man auch einen beliebigen AVR mit ADC 
nehmen und an einen Analogeingang das gleichgerichtete und 
RC-TP-gefilterrte Audiosignal geben. Dann hat man schonmal was ganz 
brauchbares, das z.B. mit mehr alsa 10 LEDs auch noch deutlich billiger 
als ein LM3916 sein kann. Wenn man es ganz besonders toll haben will, 
kann man auch mit einem LM324 o.ä. einen Vollwellengleichrichter mit 
angehängtem Verstärker bauen (Faktor 4), an zwei ADC-Ins des AVR kann 
gibt man dann das Signal vor dem Verstärker /4 und das danach (jeweils 
über einen 10k Widerstand, da am OPA evtl etwas mehr als 5V anliegen 
könnten). Wenn man das jetzt geeignet verarbeitet, hat man dann 
problemlos 0,5dB Auflösung, womit man z.B. ein sehr amtliches VU-Meter 
oder aber auch (z.B. mit einem PGA2310) einen 
Dynamikkompressor/Peaklimiter bauen kann (das geht wirklich und klingt 
garnicht mal so übel). Bei diesem Anwendungsfall sollte aber ein LM324 
schon bestens reichen. Erster OPA aktiver Gleichrichter, zweiter OPA 
Invertierer, danach mit drittem OPA ebenfalls gleichrichten, ausgänge 
beider Gleichrichter zusammenschalten, dort einen C mit R parallel dazu 
anhängen (Peak Hold) und das Signal mit dem vierten OPA im Chip mit dem 
Schwellwert vergleichen - fertig ist die Laube. Bauteilbedarf: 1 LM324, 
2 1N4148, 2 Widerstände 47k, 1 Widerstand 10K, 1 Elko 10µF, ggf. ein 
Poti für Schwellwerteinstellung und irgendwelche Ausgangsbeschaltung 
(z.B. Transistor für mehr Saft)

von SNT-Opfer (Gast)


Lesenswert?

@Andreas
Jepp...so habe ich das in meinem Verstärker gemacht, nur mit drei 
Kanälen (R;L;Sub). Der PSoC bietet die Möglichkeit eines 3-Kanal ADC 
(8Bit) mit simultanem Sampling, das Signal noch logarithmieren -> 
Schönes LCD-Bargraph.
Die Idee mit dem Limiter hatte ich auch schon, war bisher nur zu faul 
das zu programmieren. Aufwand ist das nicht, dank des PGA mit SPI.

Meine ich ja, man kann sich den LM sparen.
Nur das Schöne ist das Datenblatt, wo der Vollwellen-Gleichrichter als 
Applikation vorgestellt wird.
Mit einem einfach Komparator am Ausgang hat der Thread Eröffner das was 
er sucht.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Der AVR kann auch direkt die Wechselspannung messen, wenn diese auf eine 
Gleichspannung Vcc/2 mittels Kondensator überlagert wird, beide 
Halbwellen lassen sich dann mit 9-Bit Auflösung messen. Die Spitzenwerte 
speichert man als Peaks und mit einer entsprechenden Rücklaufzeit kann 
man dann die VU-Pegel anzeigen. So habe ich mir meine 
Aktivboxen-Pegelmeter gebaut und das sieht richtig fett aus. Die 
Erkennbarkeit der Signale ist um einiges besser, als mit den reinen 
Analog-LED-Schaltkreisen und dieser 
Spitzenwert-Gleichrichter-OV-bastelei. Im Controller lassen sich bei 
Bedarf auch verschiedene Anzeigemodi und Zusatzanzeigen implementieren 
(Punkt-, Bandbetrieb, Peak-Hold, Effektivwerte, LED-Helligkeit über 
SoftPWM etc.). Der Bauteileaufwand ist extrem gering: Controller, LEDs 
mit Vorwiderständen, 1 OV zur Pegelanhebung, 4 Kondensatoren, 4 
Widerstände.

von SNT-Opfer (Gast)


Lesenswert?

@ Travel Rec.
Ja, stimmt schon. Der Reiz ist halt die sofwaremässige Anpassmöglichkeit 
von Attack und Release der Anzeige.
Nur bei drei Kanälen gleichzeitg hätte das in meinem Fall wohl Probleme 
mit den Berechnungen gegeben. Reine Vermutung, ob das zeitlich hinhauen 
würde.
Daher habe ich die Spitzenerkennung ausgelagert und analog gelöst.

Wie hast du den effektiv Wert bestimmt ? Wäre mal interessant, da ich 
noch ein Projekt im Hinterkopf habe, einen Audio-Leistungsmesser.
Der soll unbedingt OHNE Sinussignal auskommen, liebäugle schon mit einem 
(bzw. 2, Spannung & Strom) integrierten AC -> RMS Wandler.
Wenn sich das aber direkt im µC erledigen lassen würde, ohne zuviel 
Mathe (bremst), wäre das eine preisgünstigere Variante.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Wie hast du den effektiv Wert bestimmt ? Wäre mal interessant, da ich
>noch ein Projekt im Hinterkopf habe, einen Audio-Leistungsmesser.

Der ADC läuft mit 500kHz im AutoTrigger. Sämtliche auflaufenden Meßwerte 
werden gesammelt und über ein veränderbares Zeitfenster gemittelt. Für 
den Zweck eines Pegelmeters reicht das völlig. Viel interessanter wird 
der Effekt, wenn man die Peaks als Punkte in der Anzeige für 2-3 
Sekunden hält und über die VU-Messung blendet; gerade für genaue 
Aussteuerungen ist diese Art von "Doppelmessung" sehr intuitiv. Man 
verpaßt keine Spitzen und hat über das LED-Band einen guten Eindruck von 
der Gesamtenergie der Musik.
Für diesen Zweck habe ich 2 Arrays angelegt, das eine wird mit den 
"langsamen", gemittelten Werten in Bandform geladen und das andere mit 
den jeweiligen Spitzenwerten in Punktform. Bei der Ausgabe auf die LEDs 
werden beide Arrays ODER-verknüpft.

von SNT-Opfer (Gast)


Lesenswert?

Normal gemittelt oder RMS ?
Ansonsten echt nett mit der separaten Spitzenwert Auswertung.
Ich habs mir da einfacher gemacht, die Werte von den Gleichrichtern 
werden simultan von drei ADC gesampelt. Danach skaliert und 
logarithmiert, anschliessend auf den 85 teilige Bargraph verteilt und 
angezeigt.
Ganz nett ist der optische Effekt aufgrund der gewissen Trägheit des 
LCD, die kurzen Spitzen werden mit halber Intensivität angezeigt.
Man sieht auch gut wie die 8x5 Pixel vom LCD sich von oben nach unten 
aufbauen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hier mal ein kleines Filmchen zum angucken, bitte Windows-MediaPlayer 
oder MediaPlayerClassic verwenden, die spielen das vernünftig ab ;-).

Edit: der aktuelle Winamp kann´s auch...

von Paul Baumann (Gast)


Lesenswert?

Sieht gut aus. Nur die Musik, die man in Halberstadt so hört.....*GRINS*

MfG Paul

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Travel Rec. wrote:
> Hier mal ein kleines Filmchen zum angucken, bitte Windows-MediaPlayer
> oder MediaPlayerClassic verwenden, die spielen das vernünftig ab ;-).
>
> Edit: der aktuelle Winamp kann´s auch...
Hast du zufällig Schaltplan/Software irgenwo veröffentlichst?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Sieht gut aus. Nur die Musik, die man in Halberstadt so hört.....*GRINS*

Was stimmt nicht mit der Musik?! ;-)

>Hast du zufällig Schaltplan/Software irgenwo veröffentlichst?

Noch nicht, da es sich bei der Schaltung um eine Steuerung für meine 
Selbstbau-Aktivboxen handelt, die es bislang nur 2x als Prototypen gibt. 
In Auszügen könnte man das sicher mal schick zusammenstellen. Der Code 
ist auch noch etwas überarbeitungswürdig weil es mußte schnell gehen 
;-). Ich denke mal drüber nach.

von SNT-Opfer (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal meine Variante.
Ist aber ohne Spitzen-Merker...

von Peter (Gast)


Lesenswert?

Ich bin auch auf der Suche in etwas in der Richtung.

Ich möchte die Eingangssignale meines Verstärkers messen.
Ich brauche aber keine Peak anzeige oder so, einfach nur ob ein Signal 
da ist oder nicht.
wenn kein Signal da ist soll der Verstärker abgeschaltet werden, wenn 
eins da ist wieder ein.

Kann ich einfach das Signal an nen ADC pin legen und gucken ob sich da 
was tut?

von Snt O. (snt-opfer)


Lesenswert?

Vom Prinzip her spricht nix gegen, obwohl man dafür nicht unbedingt 
einen µC braucht. Wenn der aber schon da ist, warum nicht.
Man müsste nur zusehen, dass der AD-Wandler kein Problem mit den 
negativen Halbwellen bekommt, ein Vorwiderstand dürfte da genügen 
(sofern im µC eine Schutzdiode gegen Masse liegt, zur Not halt extern).

Was soll denn abgeschaltet werden ? der ganze Verstärker oder nur die 
Endstufen ? Soll die Schaltung mit rein oder externe Kiste ?

von Peter (Gast)


Lesenswert?

Der Verstärker selbst wurde schon umgebaut, so das die einzelnen 
Funktionen über den Hausbus gesteuert werden können. Da habe ich nen 
Atmel 40 Pinner (mega8535) drine , der hat noch ein par Pins frei. 
Bisher lief der eigentlich immer 24/7, habe aber mal gemessen. Der zieht 
im Leerlauf 30 Watt, das muss nicht sein ;)

Was für Pegel haben so Standard Audio Signal eigentlich? Meines Wissens 
liegen die doch irgendwo im mV Bereich, da wird die Flussspannung der 
Dioden wahrscheinlich nichteinmal erreicht ;)

von Snt O. (snt-opfer)


Lesenswert?

Korrekt, dachte wieder an den Ausgang, naja ;-)

Vermutlich ist es einfacher das analog zu lösen, Komparator + 
retriggerbares Monoflop.
Kommt Pegel wird Monoflop getriggert, bleibt Pegel wird weiter 
getriggert, fehlt Pegel läuft Monoflop (NE555) aus und macht den 
Verstärker bzw. das Relais aus. Der 555 kann auch direkt Relais treiben.
Oder nur mit Komparator und das Signal des Komparators mit einem 
Kondensator so lange halten wie der Verstärker an bleiben soll. Braucht 
dann aber noch einen Schaltverstärker für das Relais.

Edith: Audio LINE-Pegel in der Regel 0,7V bis 1,2V (bei 
Vollaussteuerung)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

die AVRs haben dioch auch eine Analogcomperator onboard...

von Avr N. (avrnix) Benutzerseite


Lesenswert?

http://comwebnet.co.funpic.de/seite78.html

Bargraph mit einen AVR - dort für RFM12 Modul verwendet, obwohl für NF 
geeignet ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.