PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LED-Steuerung per Musikanlage über einen Atmega



Optix
17.12.2008, 20:22
Hallo zusammen,

hab mir mal ein neues "Weihnachts-Projekt" vorgenommen, mal schauen was daraus wird:

Ich habe vor, an meinem Controllerboard (Atmega32) das Signal meiner Musikanlage auszulesen. Je nach Stärke der "tiefen" Töne, sollte mein LED-Paket per PWM mehr oder weniger leuchten.

Zurzeit kann ich aber erst per USB (bzw. FT232) die LED's dimmen.
Als weitere Ausbaustufe ist gedacht versch. Lichtmodi per USB zu wählen.

Jetzt stehe ich aber vordem Problem, wie lese ich das Audiosignal gescheit aus? Evtl mit der Umwandlung in ein Rechtecksignal (siehe Audio => AVR (LM339) (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=42112))

Gruss Optix

Vitis
18.12.2008, 00:55
nee, in Rechteck das wird nix, zumindest nicht wenn Du
nicht nen entsprechenden Tiefpass vorschaltest.
Andere Variante wär per FFT, da DU ja nur die tiefen Töne willst
kommst Du mit den 15KHz Samplingrate auf 10Bit noch gut
hin.

Optix
18.12.2008, 12:18
Vielen Dank für den Tipp,
könntest du mir aber evtl. erklären was FFT ist bzw. was es bedeutet?

Laut wikipedia ist dies ein Verfahren zur Transformation?! (Fourieranalyse?)

Optix
21.12.2008, 11:01
Nachdem ich Google wieder mal beansprucht habe,
fand ich diese Schaltung: http://elm-chan.org/works/akilcd/report_e.html

Wenn ich die Software nun umschreibe und dann damit meine LED's anschalte, sollte es eigentlich klappen oder?

robocat
21.12.2008, 11:38
vielleicht kannst du dir hier (https://www.roboternetz.de/phpBB2/viewtopic.php?t=37094) ein paar anregungen holen. es wird ebenfalls die FFT von Elmar Chan verwendet.

gruesse

Optix
21.12.2008, 16:11
Hallo robocat!

Vielen Dank für deinen Hinweis, ich habe jetzt mal deinen Code angeschaut und glaube ich komme einigermassen damit klar.
Jedoch sehe ich (als Anfänger) nicht welchen ADC-Port du benutzt. (Hardware-technisch geht's, softwaremässig hab ich noch ein Brett vor'm Kopf) :wink:

Mfg Optix

robocat
21.12.2008, 18:16
im code gibt es keinen eintrag zur wahl des ADC-kanals. damit ist laut datenblatt (Tabelle 75 auf seite 206) der ADC0 als eingang gewählt.


Table 75. Input Channel Selections
MUX3..0 Single Ended Input
0000 ADC0
0001 ADC1
0010 ADC2


// free running ADC mode, f = ( 16MHz / prescaler 128 ) / 13 cycles per conversion = 9615Hz
// 8bit result in ADCH (we adjust left)
ADMUX=(1<<REFS0)|(1<<ADLAR);
ADCSRA=(1<<ADSC)|(1<<ADEN)|(1<<ADFR)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1);//|(1<<ADPS0);

gruesse

Optix
21.12.2008, 18:20
Vielen Dank!

:arrow: Ich melde mich dann wieder, sobald ich die Teile habe$

Mfg Optix