Auf
der linken Platine befindet sich die gesamte Elektronik, auf der rechten
nur die 2x 32 LEDs. Da diese gemultiplext werden, benötigt man
nur relativ wenige (20) Leitungen zwischen beiden Platinen.
An
der Schaltung ist nichts besonderes:
Links befindet sich der Eingangsverstärker, in der Mitte der AVR
uC der die Spannungen digitalisiert und über die 2x8 + 4 Transistoren
die LEDs ansteuert.
Das einzige was man beim Aufbau beachten sollte ist der analoge Signalweg.
Dieser sollte sich möglichst wenig mit den digitalen Signalen kreuzen,
da hier größere Spitzenströme fließen, die leicht
Störungen produzieren können. Dazu baut man am besten den
analogen Teil als erstes auf eine Seite des AVR und den digitalen auf
die andere. Der Aufbau wie ich ihn gewählt habe ist eigentlich
nicht der beste, aber leider hat sich die Schaltung Stück für
Stück entwickelt und ich hatte nur noch am Rand Platz für
den Eingangsverstärker, weit weg von den ADC Eingängen rechts
oben am AVR.
Die
Schaltung ist einfacher als man auf den ersten Blick vermuten würde,
wenn man sie in zwei Teile auftrennt:
a) Die analoge Signalaufbereitung besteht aus einem Verstärker,
der die Signale von Line oder Mikrofonpegel auf 2,5Vss für die
AD Wandler im uC erhöht. Hinter dem Verstärker befindet sich
ein Tiefpassfilter um eventuell vorhandenes Rauschen und höhere
Frequenzanteile als 5kHz zu beseitigen, da diese sonst zu Messfehlern
im ADC führen würden.
Der Spannungsteiler aus R28, R27 und R29 stellt die benötigte Offsetspannung
von etwa 1,28V für die ADC Eingänge zur Verfügung, um
das Signal im Ruhezustand genau in die Mitte des Messbereis zu legen.
Wenn dieser Poti richtig abgeglichen ist, leuchtet im Ruhezustand maximal
1 LED auf (bei mir garkeine). Hiermit enden dann auch die analogen Signale.
b) Die Signale
werden digitalisiert, per Software gleichgerichtet und der Spitzenwert
in ein virtuelles RC Glied geladen. Um die gemessenen Werte im Bereich
0 bis 1023 sinnvoll auf wenigen LEDs anzuzeigen, wird der Wertebereich
durch eine einfache Wurzelfunktion auf einen Bereich von 0-31 verringert.
Das hat auch den Nebeneffekt, dass sowohl kleine Werte gut sichtbar
dargestellt werden können, als auch große Werte die entsprechend
stärker zusammengerückt werden, so dass man eine pseudo logarithmische
Anzeige erhält.
Um 2x 32 LEDs ohne großen Aufwand ansteuern zu können, werden
diese in einem Multiplex betrieben. So leuchten pro Kanal nur 8 LEDs,
also insgesamt immer 16 LEDs gleichzeitig auf.
IC2 und IC3 sind Treiber für die LEDs, da der uC nicht die 40mA
pro LED liefern kann. Immerhin fließen bei 16 eingeschalteten
LEDs insgesamt 640mA ! IC2 und IC3 sind Transistorarrays, sie können
aber auch durch normale NPN Transistoren mit Vorwiderständenen
wie dem BC547 ersetzt werden. Q1 bis 4 dienen zur Auswahl der 4 LED
Bereich für den Multiplex. Aufgrund des hohen Stromes sind hier
PNP Transistoren mit mindestens 0,5-1A einzusetzen.
LED65 und LED66 dienen als Übersteuerungsanzeige für den AD
Wandler und somit auch für die ganze Anzeige. Im Normalbetrieb
sollten diese LEDs nicht aufleuchten.
Und hier das
wichtigeste: Die Software als Hex Datei. Einfach
in einen mit 16MHz laufenden AT90S8535 oder ATmega8535 brennen und das
VU Meter ist fertig.
Hier
noch ein Video, damit man das ganze auch in Aktion sieht. Am Anfang
wird die Lautstärke langsam von Null an erhöht. Der Dynamikbereich
ist so hoch, dass der Balken bereits ausschlägt, wenn man die Musik
noch garnicht hört, da das Lüftergeräusch des PCs diese
überdeckt.