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?
>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?
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.
>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ß!
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.
>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.
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
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.
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)
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" ;-)
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)
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.
Den Baustein gibt es Linear als auch Logarithmisch! Und wie schnell ist schnell? Der ist schneller als das Auge gG
@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.
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 :)
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.
Das ist problemlos möglich. Nur das Auge ist nicht so fix, denke bei 20ms ist Schluss ;-) Viel Erfolg noch !
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.
@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...
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
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 :)
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.
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)
@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.
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.
@ 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.
>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.
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.
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...
Sieht gut aus. Nur die Musik, die man in Halberstadt so hört.....*GRINS* MfG Paul
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?
>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.
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?
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 ?
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 ;)
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.