ATMEGA8 als Klangerzeuger

OP #3742008
Lesenswert?

Guten Abend zusammen,
ich habe vor einen digitalen step sequenzer zu bauen und suche jetzt 
einen einfachen weg Klänge zu erzeugen. Mein Zeil ist es eine art VCO zu 
bauen mit dem ich verschiedene Arten von Schwingungen erzeugen kann ( 
Rechteck , Sägezahn , Sinus ). Meine Idee wäre ein ATMEGA8 so zu 
programmieren , dass man mittels 2 Potis die Frequenz grob und fein 
einstellen kann und mittels eines Schalters zwischen den 
Schwingungsarten wechseln kann. (siehe bild1). Das Problem ist, dass ich 
nicht weiß wie ich aus dem PWM signal ein analoges Signal mache. Ist das 
überhaupt möglich ?

LG. Dennis
Angehängte Dateien:
OP #3742039
Lesenswert?

Wie programmiere ich das den am besten? Kann ich das dann ganz einfach 
mit pwm machen also 255 -> 5V 0 -> 0V ?
Ich hab auch noch zwei TDA1534A. Kann ich die verwenden und wenn ja wie 
steuer ich die am besten mit der Arduino IDE an ? Ich habe es schon mal 
versucht aber nicht hinbekommen. Gibt es dazu eine Library? Lohnt sich 
der Aufwand oder ist der Tiefpass einfacher ?
#3742040
Lesenswert?

Der übliche Weg, aus PWM einen Zeitverlauf wie Sinus, Sägezahn oder ... 
zu machen besteht aus einem Tiefpass, also kein Problem. Der trennt 
Nutzsignal von der  Frequenz der Taktimpulse.

Wenn man aber hohe Ansprüche stellt braucht man einen möglichst hohen 
Abstand zwischen Taktfrequenz des PWM-Taktes und der Nutzfrequenz, um 
aus der PWM ein sauberes Nutzsignal herauszutrennen. PWM ist daher eher 
für langsamere Signale als Tonsignale geeignet (z.B. im Hz-Bereich 
variable Spannungen.)

Mit einem atmega8 dürfte man einige hundert Hz gut hinbekommen, aber das 
hängt von den Ansprüchen an die Kurvengenauigkeit ab.

Besserer Weg zur Erzeugung tonfrequenter Signalse dürfte das 
DDS-Verfahren sein. (Dazu gibts hier einige elend lange threads, wie man 
das mit einem atmega macht)
#3742044
Lesenswert?

So einfach wird das nicht werden, denn Du mußt Dir ein sog. R2R- 
Netzwerk
an einen ganzen Port bauen, um wenigstens ein ganzes Byte parallel
ausgeben zu können, damit es genügend Stützstellen gibt.
Damit kannst Du dann 256 verschiedene Werte ausgeben, so daß die ent-
stehende Spannung nach dem Netzwerk auch in 256 "Stufen" oder besser
gesagt "Stüfchen" erscheint. Das macht das Signal dann von Natur aus
schön rund, so daß Du nicht mehr soviel Aufwand für die Filterung
brauchst als sonst.

Wenn Du nun im Kontroller Tabellen ablegst, deren Werte nacheinander
auf den Port ausgegeben werden, dann kannst Du mit dem Inhalt der 
Tabelle
bestimmen, ob Sinüsse, Sägezähne, Dreiecke oder völlig abartige Kurven-
formen erzeugt werden sollen.

MfG Paul

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren