Vierfach-VU-Meter mit Pong-Platine     

von Heinz D.                    
Elektronik-Labor   Projekte   AVR 


Anruf eines Freundes: "Kannst du mir vier VU-Meter bauen?" "Ja. Aber wofür brauchst du vier?" "Ich will die Pegel der Tieftöner und der Mittelhochtöner getrennt anzeigen." "Ok!" "Mein Mischpult zeigt nur max. 26 dB an, kannst du mehr?" "Reichen 10 * 6 dB=60 dB?" "Ja sicher! Kannst du es so dünn machen, dass ich es vorne auf meine schwarze Box montieren kann?" "Ja! Reicht dir eine Anzeigenhöhe von 50 mm aus?" "Ja!" "Mal sehen." 

Dass das Ding eigentlich schon fertig war (Gewitteranzeige) habe ich ihm nicht gesagt. Die Pong ist nur gesteckt: USB-seriell, Potis (2 sind durchgebrannt), I2C, ISP 

Die externe Beschaltung
Die Gleichrichter müssen den Wert wenigstens 50 ms (für 20 Hz) lang speichern, sollen aber beim ausbleiben der Eingangsspannung schnell auf Null fallen. Ein Kompromiss, Genauigkeit kontra Geschwindigkeit.

Was passiert ohne externe Beschaltung?
Mit >=22-k-Schutzwiderstand in Reihe! Während der Tests habe ich Potis benutzt. Dabei sind mir zwei Pong-Platinen und Potis abgeraucht. Die internen Schutzdioden werden dafür sorgen, dass die positive Halbwelle richtig gemessen wird, während die negative Halbwelle Nullwerte liefert. Um den Spitzenwert zu erwischen, muss ebenfalls min. 50 ms lang gemessen werden.

Programmiertricks
Dann kann man aber auch 50 ms lang alle Werte addieren. Dadurch erhält man das Integral (den Mittelwert): Sinus Ui = 0,637 * Us oder Ueff = Ui * 1,11; Rechteck Ui=Us=Ueff. Musik-Signale liegen irgendwo dazwischen. Durch die Balkenanzeige wird mathematisch aufgerundet, deshalb ist nur noch die Korrektur Ui * 2 erforderlich, weil nur die positiven Halbwellen aufaddiert werden.

Eine WORD-Variable kann bis 65535 aufaddieren. Da der maximale ADC-Wert 1023 beträgt, kann man 64 Messungen einsammeln. Da die Hälfte voraussichtlich Nullwerte sind, kann man es riskieren 128 Werte aufzuaddieren. Damit die Anzeige nicht schlagartig von Null auf Voll und wieder auf Null wechselt, wird mit der vorherigen Messung gemittelt.

Ohne Spannungteiler (nur >=22-k-Schutzwiderstand): Die Schwellen beziehen sich immer auf Uref = Spannung hinter der Schutzdiode! Balken mit 10 LED; Ui > 511; Rechteck Ueff = 512 * Uref / 1024; Sinus Ueff = 512 * 1,11 * Uref / 1024; mit Uref = 5 V; Rechteck Ueff > = 2,5 V; Sinus Ueff >= 2,775 V (erforderliche Spannungen!). Bei reiner Gleichspannung sind nur 1,25 V für Vollausschlag erforderlich (wg. Ui*2)!

Die Spannungsteiler
Für den Anschluss direkt an die Chassis müssen Spannungsteiler berechnet werden. Die Anzeige soll bei 80 W / 8 Ohm Vollausschlag zeigen. Bei 130 W / 8Ohm soll die Clipping-Anzeige für 3 s anzeigen. Ein Teiler 22 k in Reihe, 2k7 parallel nach Masse passt gut.



Mit den gelben Feldern können Sie die Anzeige mit reiner Gleichspannung kontrollieren.

 Die Anzeige wird auf je zwei Spalten geschickt. Zusätzliche Taster sind nicht vorgesehen. Die vier Punkte an den Ecken werden permanent eingeblendet. Bei Clipping leuchtet die obere Reihe für 3 s. Sie sollten den Clippingwert nicht erhöhen, weil die Ansteuerung mit einem Sinus genau die 5 V-Marke ankratzt (rot-violett). Es gibt 3 Versionen mit 3 dB- und 6 dB-Abstufungen, sowie eine empfindliche 3 dBx für Mischpulte. Sie können auch andere Abstufungen programmieren. (ab 'Balken bilden + anzeigen')
Do
For K = 1 To 127 'integrieren
For I = 1 To 4 '4 Kanäle
J = I + 3 'für getadc(4-7)
Adctemp(i) = Adctemp(i) + Getadc(j)
Next I
Next K

For I = 1 To 4 '4 Kanäle
J = I * 3 : J = J - 1 'für LED-Spalte

Adctemp(i) = Adctemp(i) / 64 'U neu
If Adctemp(i) > 652 Then Alarmzeit = 3000 '652=Clipping ?

Adcwert(i) = Adcwert(i) + Adctemp(i) 'U alt + U neu
Adcwert(i) = Adcwert(i) / 2 'geteilt durch 2

If Adcwert(i) < 1 Then Pongfeld(j) = 0 '6dB-Balken bilden + anzeigen
If Adcwert(i) > 0 Then Pongfeld(j) = 1
If Adcwert(i) > 1 Then Pongfeld(j) = 3
If Adcwert(i) > 3 Then Pongfeld(j) = 7
If Adcwert(i) > 7 Then Pongfeld(j) = 15
If Adcwert(i) > 15 Then Pongfeld(j) = 31
If Adcwert(i) > 31 Then Pongfeld(j) = 63
If Adcwert(i) > 63 Then Pongfeld(j) = 127
If Adcwert(i) > 127 Then Pongfeld(j) = 255
If Adcwert(i) > 255 Then Pongfeld(j) = 511
If Adcwert(i) > 511 Then Pongfeld(j) = 1023 'aufrunden
Next I

Pongfeld(1) = Pongfeld(2) Or 513 '2.Spalte+Eckpunkte einblenden
Pongfeld(3) = 0
Pongfeld(4) = Pongfeld(5) '2.Spalte
Pongfeld(6) = 0
Pongfeld(7) = 0
Pongfeld(9) = Pongfeld(8) '2.Spalte
Pongfeld(10) = 0
Pongfeld(12) = Pongfeld(11) Or 513 '2.Spalte+Eckpunkte einblenden

If Alarmzeit > 0 Then
For I = 2 To 11 :
Pongfeld(i) = Pongfeld(i) Or 512 : 'Alarm-Balken einblenden
Next I
End If
Loop
 

Download: 1205VU-Meter4-hex-bas.zip

 

BEVOR
... Sie alle Massen verbinden, messen Sie bitte nach, ob sie wirklich verbunden sind! Bei Brücken-/Digital-Verstärkern führen die schwarzen Buchsen das (invertierte) Signal!!! Dann hilft nur noch die Pong-Masse EINMAL mit dem Gehäuse oder der Cinch-Masse zu verbinden. Dann wird nur noch die halbe Spannung = 1/4 Leistung = -6 dB ausgewertet. Spannungsteiler statt 2k7 nach Masse -> 6k16 = 5k6 + 560 nach Masse.

Falls Sie hinter der Schutzdiode nur z.B. 3,54 V = Uref haben, wird die Anzeige um den Faktor 5V/3,54V = 1,414 = 3dB empfindlicher! Sie müssen den Spannungsteilfaktor erhöhen.

Wenn Sie nur einen Tieftöner (Mono-Subwoofer) haben, können Sie die beiden Eingange VOR den Spannungsteilern parallelschalten.

Das VU-Meter wurde abgeholt: "Wie, so klein? Astrein, jetzt sehe ich auch wenn Übersteuerung droht! Wo hast du denn die schöne flache Steuscheibe her?" Ein glücklicher Musikliebhaber mehr.


Elektronik-Labor   Projekte   AVR