Hallo, ich würde gerne mit einem Atmega32 ein VU Meter realisieren. Die Ansteuerung der LED's steht schon, nur habe ich leider keine Ahnung wie ich die Signalauswertung bewerkstelligen soll. Das VU Meter soll über Line in gespeist werden. Hat jemand da schon was fertiges, evt. Codeschnipsel??? MFG Bln_Star
Hi, ich programmiere nicht in C, aber so würde der Ablauf aussehen: -Signal von Line in über 8 bit ADC(reicht sicher) einlesen -8bit wert aufteilen: angenommen du hast 10 LEDs, bei: -wert 1 -25 schaltest du led 1 -wert 26 -50 schaltest du led 1+2 -wert 51 -75 schaltest du led 1+2+3 -wert 76 -100 schaltest du led 1+2+3+4 -wert 101 -125 schaltest du led 1+2+3+4+5 -wert 126 -150 schaltest du led 1+2+3+4+5+6 -wert 151 -175 schaltest du led 1+2+3+4+5+6+7 -wert 176 -200 schaltest du led 1+2+3+4+5+6+7+8 -wert 201 -225 schaltest du led 1+2+3+4+5+6+7+8+9 -wert 226 -255 schaltest du led 1+2+3+4+5+6+7+8+9+10 Und wenn du logarythmische Ansteuerung oder mehr LEDs willst, musst du die Wertebereiche anpassen. Oder liegt das Promblem bei der Programmierung in C selbst? MfG Und3rt4ker
ja, das kenn ich und das kann ich auch alles...aber das mit der logarithmischen teilung is mir nich so ganz klar...ich verwende übrigens 32 leds pro balken...
Dann machst Du Dir eine Tabelle mit 32 Werten im FLASH, die Du vorher mit einer logarithmischen Rechenoperation (Excel o.ä.) herausgeknobelt hat. Über-/ unterschreitet die Spannung vom ADC einen dieser Werte, schaltest Du die zugehörige LED ein/aus.
hm... wenn du 32 leds pro balken hast und einfach nur die aussteuerung linear ausgeben willst(doppelt so laut-->doppelt so viele leds), kannst du doch 256/32 rechnen = 8 also 0-8 =led1 9-16=led1+2 usw. MfG Und3rt4ker
Doppelte Spannung heißt aber nicht doppelt so laut, deshalb verwendet man bei Lautstärkestellern meistens logarithmische Kennlinien. Der Tip mit der Tabelle im Flash war der richtige.
Gibt übrigens auch fertige ICs an denen man nur noch Audio Signal und LEDs anschließen muss. LM3915 der wäre auch gleich Logarithmisch (Nur mal so als Tip) In C würd ich es wie schon geschrieben mit einer Tabelle machen. Umrechen würde sicherlich auch gehen brauchst du aber durch die Mathefunktionen wahrscheinlich mehr Speicherplatz wir für die 32 Grenzwerte...
Die ist meistens individuell, da jeder andere Spannungsbereiche auswerten möchte. Da mußt Du schon mal selber ´ran ;-). Es ist auch ohne weiteres machbar, passende Werte durch Probieren oder durch Messen mit einem Gerät mit Pegelmeter (DAT, MD-Recorder oder Computer mit guter Soundkarte) herauszufinden und diese dann in die Tabelle einzutragen. Ein Display am AVR, welches den aktuellen ADC-Wert anzeigt, ist hierbei sehr hilfreich.
Bit sind doch schon logarithmisch, die muss man doch nurnoch mappen, z.B. so: höchstwertiges Bit gesesetzt => alle LEDs leuchten 2.höchstwertiges Bit gesetzt => eine LED weniger leuchtet 3. höchstwertiges Bit gesetzt => zwei LEDs leuchten nicht usw. Natürlich muss man negative Werte auch betrachten. Und damit das ganze auch noch halbweges anschaulich wird sollte man das ganzw wohl etwas aufintegrieren, und peak deection bzw. hold einbauen.
Das Thema ist jetzt zwar schon ne Weile alt, aber trotzdem muss ich nochmal was klar stellen: Man misst am Mikrofon eine Spannung. Diese entspricht dem Schalldruck. Anzeigen möchte man (wahrscheinlich) den Schalldruckpegel, was da 20log(p/p0) wäre. Mit p0 = 2*10^-5 Pa. Wenn ihr von Lautstärken redet, redet ihr von subjektiven Größen. Dazu könnt ihr die "Kurven gleicher Lautstärkepegel" hinzuziehen. Wenn ihr nun wirklich sehen wollt was doppelt so laut ist wie etwas anderes, dann seht ihr euch eine Kurve an, die die Beziehung zwischen dem Lautstärkepegel (in phon) und der Lautheit (in sone) anzeigt. Ein Sprung von 1sone auf 2sone entspricht einer Verdopplung der Lautstärke. Rechnet man das zurück, erkennt man das dies in etwa 10dB bei 1kHz (in den Kurven gleicher Lautstärkepegel) eintspricht. Bei allen anderen Frequenzen stimmt das schon nicht mehr. Man kann also keinesfalls die Lautheit direkt am Mikro messen. Gruß
Matthias schrieb: > höchstwertiges Bit gesesetzt => alle LEDs leuchten > 2.höchstwertiges Bit gesetzt => eine LED weniger leuchtet > 3. höchstwertiges Bit gesetzt => zwei LEDs leuchten nicht > usw. Den 32-Bit ADC dazu möchte ich mal sehen. Bei 32 LEDs würde man wohl nicht gerade den Zweierlogarithmus sondern eine feinere Abstufung wählen.
Moin, mit LM324 o.ä. gleichrichten, RC-Tiefpass hinten dran mit f_grenz ca 10 Hz Dann das Signal auf den ADC vom AVR. Wenn man sich was gönnen möchte, gibt man das Signal nochmal um den faktor 4 verstärkt auf nen 2. adc, damit kann man dann in software eine bessere genauigkeit rausholen. (für kleine spannungen nimmt man das verstärkte signal). Umschaltung zwischen den ADC-Werten muss man halt programmieren. Damit geht besser 0,5dB. Ist halt Peak Level. Logarithmus mit Wertetabelle. DIe Tabelle berechnet man sich fix mit Excel. (Referenzpegel für Studio ist 0dB mit 0,755V_eff)
>mit LM324 o.ä. gleichrichten das ist gerade etwa der schlechteste OpAmp. Ein LTC5507 oder aehnlich ist sicher besser geeignet.
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.