Die folgende Schaltung stellt für mich einen weiteren Schritt zum geplanten Frequenzanalyzer dar – eine Idee, die während der Entwicklung der Ansteuerung der Bildröhreneinheit enstanden ist und inzwischen sehr konkrete Formen angenommen hat. Sie ist aber für sich genommen so nett, dass ich sie hier gerne vorstellen möchte.
Es handelt sich dabei um eine Lichtorgel – ein Gerät, das mich vor 35 Jahren bereits beim EE2006 fasziniert hat, weil man dort der Musik einmal etwas entlocken konnte, was nicht bloß ein weiterer Verstärker war. Dort werden die Kanäle noch auf sehr konventionelle Weise getrennt – Hoch- und Tiefpässe sorgen dafür, dass drei Lampen in unterschiedlichem Takt flackern. Will man mehr Kanäle – wie beispielsweise bei einem Analyzer mit seinen sich bewegenden Balken – dann ist die konventionelle Methode schnell am Ende, weil sie nur sehr aufwändig zu mehr Trennschärfe zu bewegen ist.
Im Studium lernte ich dann einen anderen Weg kennen: durch eine Fouriertransformation konnte man aus einem Signal die einzelnen Frequenzanteile herausrechnen. Ganz grob funktioniert das ungefähr so: Man berechnet, welche Sinusschwingungen mit welchen Amplituden nötig sind, damit man daraus das gegebene Signal zusammenmischen kann. In der technischen Umsetzung arbeitet man dann mit einzelnen, diskreten Abtastwerten, die dann ihrerseits zu einzelnen Frequenzwerten führen. Die zugehörige Rechenoperation heißt daher diskrete Fouriertransformation. In ihrer Umsetzung als Algorithmus auf einem Computer setzt man verschiedene Optimierungen ein, damit das ganze möglichst schnell ablaufen kann. Das Ergebnis nennt sich daher „Fast Fourier Transformation“, kurz FFT.
Früher benötigte man für so etwas spezielle Signalprozessoren, heutzutage existieren Algorithmen für alle möglichen Prozessoren; die sind inzwischen schnell genug, um FFTs zumindest im Audiobereich durchzuführen. Auf eine sehr ähnliche Weise führt man übrigens auch Bildvergleiche durch – für deren Echtzeitanalyse bedarf es allerdings auch heute noch hochwertiger Technik.
Wie bereits gesagt, stellt eine FFT heutzutage kein allzu großes Problem mehr dar. Auch für die Mikrocontroller der Atmel-ATMega-Serie existieren inzwischen verschiedene fertige Algorithmen. Die Lichtorgel stellt von dieser Warte aus sogar noch eine niedrigere Erfindungshöhe dar – es handelt sich nämlich in weiten Teilen um einen Nachbau einer Schaltung aus dem Mikrocontrollerforum. Ich habe Anpassungen an der Software vorgenommen, damit sie mit dem von mir benutzten Mikrocontroller zusammenarbeitet. Außerdem habe ich ein paar Transistoren eingespart und sie gegen ein Darlington-Array ersetzt, das noch in der Bastelkiste lag.
Zur Schaltung: die beiden OpAmp vom Typ LM358 (der kommt gut mit einfachen Betriebsspannungen klar – OpAmps haben ja üblicherweise gerne duale Spannungen) stellen einen Verstärker mit nachgeschaltetem Tiefpass dar. Der Tiefpass ist erforderlich, damit die FFT korrekt arbeitet – es dürfen keine Frequenzen zum Mikrocontroller gelangen, die höher sind als die halbe Abtastfrequenz. Der Mikrocontroller selbst tastet das Eingangssignal ab („digitalisieren“ mit 10 Bit pro Wert) und führt mit den gemessenen Werten die FFT durch (die aus Geschwindigkeitsgründen in Assembler, also Maschinensprache geschrieben ist).
Um nun die LEDs zum Flackern zu bringen, nutzt die Software eine weitere Funktion des Mikrocontrollers – die Pulsweitensteuerung (Pulse Wide Modulation – PWM). Damit variiert man das Verhältnis von Ein- zu Ausschaltphasen. Bei 100% Einschaltphase leuchtet die LED dauerhaft, bei 50% mit halber Energie, bei 0% ist sie komplett aus. Wenn man diese PWM mit einer ausreichend hohen Frequenz durchführt, wirkt es, als würde die Helligkeit der LED variiert. Dabei leuchtet sie in den Einschaltphasen immer mit voller Leistung. Dieses Verfahren wird auch bei allen modernen LED-Monitoren und LED-TVs eingesetzt, denn es besitzt einen weiteren Vorteil: die Lichtfarbe der LED bleibt konstant, egal, ob sie heller oder dunkler erscheint. Regelt man bei einer weißen LED hingegen per Stromdurchfluss, dann wird sie im dunklen Bereich eher gelblich.
Je nach Höhe des gemessenen Frequenzwerts wird die zugehörige LED also stärker oder weniger stark flackern. Um nun die LEDs nicht direkt an den Mikrocontroller anschließen zu müssen, würde ein Open-Collector-Darlington-Array vom Typ ULN2803 benutzt. Solche Array werden gerne für Relais- oder Motorschaltungen genutzt, weil sie kleine Eingangsleistungen in relativ große Ausgangsleistungen verwandeln können. Der Mikrocontroller wäre grundsätzlich in der Lage, die LEDs auch von sich aus zu betreiben, aber der erforderliche Spannungsregler 78L05 mit einem maximalen Ausgangsstrom von 100mA kommt dann ganz schön ins Schwitzen. Daher entkoppelt das Darlington-Array die LEDs, die dann mit ihrer Anode an der Hauptversorgungsspannung angeschlossen sind.
Zum Einsatz kommt dabei der ATMega88-Mikrocontroller auf der bereits dokumentierten AVR-Universalplatine. Der Anschluss C5 ist der Eingang für das Tonsignal, die Ausgänge D2-D7 steuern die LEDs – mehr ist nicht erforderlich. Das Darlington-Array steckt auf einer anderen Universalplatine, die den Einsatz von 8- bis 20-poligen ICs ermöglicht und dabei alle Pins einfach nach außen führt. Sofern der Masseanschluss links unten und der Pluspol rechts oben zu finden ist (ist bei den OpAmps der TL-Serie, der CD4000-Serie und den TTL-ICs der Fall), bietet die Platine die Vereinfachung, diese Pins über Jumper direkt an die vier Eckanschlüsse zu leiten. Es steckt also kein Geheimnis dahinter.
Die 6 LEDs nutzen die seinerzeit im Rigert-Baukasten-Forum entstandenen Universalplatinen, außerdem kommt noch ein auf eine klassische Transistorplatine gelöteter 78L05 und die Diodenbuchse aus dem EE2013 zum Einsatz. Diese Buchse habe ich auf den aktuellen Stand gebracht und statt der 5-poligen Rundbuchse eine 3,5mm-Stereo-Klinkenbuchse eingelötet – damit bekommt man heute leichter Kontakt zur Musik.
Natürlich gibt’s zum Abschluss auch ein paar Videos, damit man die Lichtorgel auch einmal im echten Einsatz sehen kann. Damit es keinen Ärger mit der GEMA gibt, habe ich lizenzfreie Musik aus dem Internet benutzt.
Rockmusik – hier kann man die hohen Frequenzen der E-Gitarre gut erkennen
Popmusik – recht gleichmäßiges Spektrum, das Schlagzeug sorgt für die hohen Frequenzen
Filmmusik – die Bässe am Anfang steuern nur die beiden linken LEDs aus