uC Sinus DAC

#5182241
Lesenswert?

frager schrieb:
> Wie gibt man am besten über einen uC eine möglichst genaue
> Sinusschwingung aus?

Was ist den "möglichst genau? Ich hab das die Tage erst gemacht mit ner 
PWM und nem Tiefpass dahinter.

frager schrieb:
> Wie kann ich davon wiederum viele Sinus mit unterschiedlichen Amplituden
> übereinander legen?

Wie man es mit allen anderen Signalen macht: Einfach überlagern.

frager schrieb:
> Hat jemand ein (anschauliches) Beispiel?

Was willst du denn genau machen? Das ist sinnvoller als hier ein 
Beispiel zu posten, dass deinen Anforderungen nicht gerecht wird.
Gast #5182253
Lesenswert?

>Re: uC Sinus DAC
Der verstümmelte Titel soll wahrscheinlich heißen:

"Sinus mit uC für einen DAC" nehme Ich an.

Für moderate Anwendungen reicht eine vorberechnete Tabelle, für genauere 
Anwendungen nehmen wir den Sinus-CORDIC. Wikipedia weiß mehr.
#5182264
Lesenswert?

frager schrieb:
> Wie gibt man am besten über einen uC eine möglichst genaue Sinusschwingung aus?

DDS

> Wie kann ich davon wiederum viele Sinus mit unterschiedlichen Amplituden
> übereinander legen?

Mehrere Phasenakkumulatoren bauen und deren Zugriffe in die Sinustabelle 
mit den entsprechenden Lautstärken addieren.

> Hat jemand ein (anschauliches) Beispiel?

http://interface.khm.de/index.php/lab/interfaces-advanced/arduino-dds-sinewave-generator/
Gast #5182267
Lesenswert?

>Wie gibt man am besten über einen uC eine möglichst genaue
>Sinusschwingung aus?

So:
1
void setup() 
2
{
3
}
4

5
void loop() 
6
{
7
  float phase=0;
8
  int amplitude=256;
9
  int x=amplitude/2*sin(phase)+amplitude/2;
10
  phase+=0.0001;
11
  if(phase>2*PI)phase-=2*PI;
12
  analogWrite(A0,x); // oder irgendein DAC
13
  delay(10);
14
}

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