Hallo zusammen. Ich möchte folgendes tun: Ich erzeuge mit meinem Arduino Uno eine per DDS (Direct-Digital-Synthesis) eine Sinus-Spannung, deren Frequenz zwischen 50Hz und 1800Hz variiert wird (per Poti über einen Eingangs-Pin). Diese Sinus-Spannung soll dann anschließend noch verstärkt und für Mess-Zwecke eingesetzt werden. Das ist mein Problem: Die Spannung muss "symmetrisch" sein, also der Bias (ich glaube das ist das richtige Fachwort dafür, bin mir aber nicht sicher) soll nicht von 0V bis +5V, sondern von -2,5 bis +2,5V reichen. Daher: Die Sinus-Spannung müsste quasi um die hälfte Ihres Spitze-Spitze-Wertes nach unten geschoben werden. Was mir hier Schwierigkeiten bereitet ist, dass ich gar nicht weis, nach was ich eigentlich genau suche. Ich bin zunächst auf IC's gestoßen wie Ladungs-Pumpe, Buck-Boost-Converter oder H-Brücke, die aber alle gemeinsam haben, dass die Spannung quasi komplett invertiert wird, und ich dann 2 Kanäle mit -5V und +5V zur Verfügung hätte (zumindest habe ich das so verstanden), aber das bringt mich ja nicht wirklich weiter. Dann habe ich noch IC's wie dieses hier gefunden: http://www.ti.com/lit/ds/symlink/tle2426.pdf Diese verschieben zwar den Bias nach unten, allerdings, indem Sie die gesamt Amplitude (und damit den DC-Offset) halbieren, also auch nicht das, was ich will. Dann habe ich in diesem Thread: Beitrag "Re: 5 V Rechteck --> +/- 2,5 V" noch die Möglichkeit gefunden, einfach ein Kondensator in Reihe und Widerstand nach Masse, also quasi eine Art Hochpass, allerdings (laut Thread) würde das nur bei einem Tastverhältnis von 50% funktionieren und ich möchte die PWM bzw. die Sinus-Spannung ja in der Frequenz variieren. Zudem wäre dann noch das Problem, dass ich die 3dB-Eckfrequenz des Hochpasses dann dynamisch meiner eingestellten Frequenz für die Ausgangs-PWM anpassen müsste. Da fast alle Mikrocontroller mit 0 bis 5V (oder 3,3V) arbeiten, müsste das doch eigentlich ein ganz gängiges Problem sein, für das eine Art "Standard-Lösung" existiert, oder liege ich da falsch ? Hat jemand evtl. Tipps für Informations-Quellen oder Literatur, die sich mit diesem Thema auseinander-setzt, oder hat selber schon mal dieses Problem gehabt? Freundliche Grüße Laura
Mit einem Operationsverstärker als Subtrahierer 2.5V von deiner Ausgangsspannung abziehen. Braucht halt nur eine negative Spannungsversorgung...
Laura M. schrieb: > würde das nur bei einem Tastverhältnis von 50% funktionieren und ich > möchte die PWM bzw. die Sinus-Spannung ja in der Frequenz variieren. Du kannst die frequenz variieren ohne das tastverhältnis zu beeinflussen. Frequenz = schneller/langsamer tastverhältnis = relation zwischen an/aus (bei pwm)
Laura M. schrieb: > Zudem wäre dann noch das Problem, dass ich die 3dB-Eckfrequenz des > Hochpasses dann dynamisch meiner eingestellten Frequenz für die > Ausgangs-PWM anpassen müsste. Was hält dich denn davon ab, die Grenzfrequenz einfach unter 50 Hz zu setzen? Du willst ja nur den Gleichsspannungsanteil herausfiltern. Im Grunde brauchst du aber ohnehin einen Bandpass - Untere Grenzfrequenz bei <50 Hz und obere Grenzfrequenz bei >1800 Hz. Ob das Arduino-Framework (mitsamt seinen Libs) dies zulässt weiß ich nicht, aber mit AnalogWrite wird es wohl nicht funktionieren, da die PWM-Frequenz dort fix bei ein paar hundert Hertz ist - zumindest sagt das meine Erinnerung.
Ich hätte da noch ein Stichwort für dich, obwohl ich mir nicht sicher bin ob das auch für Wechselspannung funktioniert: virtuelle Masse! Grüße
> [...] einfach ein Kondensator in Reihe und Widerstand nach Masse, also > quasi eine Art Hochpass, allerdings (laut Thread) würde das nur bei > einem Tastverhältnis von 50% funktionieren und ich möchte die PWM bzw. > die Sinus-Spannung ja in der Frequenz variieren. Du solltest die PWM-Frequenz und dein Nutzsignal auseinanderhalten! Erst kommt ein Tiefpass, der die PWM-Frequenz rausfiltert - es bleibt der Sinus übrig (der hat dann die 50% Tastverhältnis). Danach der Hochpass, der den DC-Anteil rausfiltert.
Hallo nochmal, also erstmal Danke an Alle für die schnelle Rückmeldung ! Sebastian R. schrieb: > Braucht halt nur eine negative > Spannungsversorgung... Das wäre eine Option, da ich zum Betreiben des Op-Amps(siehe Skizze) sowieso eine negative Spannungsquelle brauche. Max D. schrieb: > Du kannst die frequenz variieren ohne das tastverhältnis zu > beeinflussen. foobar schrieb: > Du solltest die PWM-Frequenz und dein Nutzsignal auseinanderhalten! Sorry, da habt ihr beide recht, also nochmal zur Erklärung: Bei der DDS (Direct-Digital-Synthesis) wird eine Lookup-Tabelle, in der die Werte einer Funktions-Periode gespeichert sind (bei einer 8bit-Auflösung 2^8 also 256 Werte) "durchlaufen" und dadurch nicht direkt ein analoger Sinus erzeugt, sondern eine hochfrequente PWM, auf die ein Sinus "aufmoduliert" ist. Je schneller die Tabelle "durchlaufen" wird, desto höher die Frequenz. Durch anschließendes Filtern mit einem Tiefpass wird die hochfrequente PWM herausgefiltert und dadurch entsteht ein "echter" analoger Sinus. Wobei ich noch unsicher bin, ob da ein einfacher Tiefpass reicht, es finden sich im Internet auch Beispiele wo hier z.B. ein chebyshev-Filter verwendet wird. In meinem Fall wird die Sinus-Spannung dann noch verstärkt. Ich habe mal eine Skizze hinzugefügt, zum besseren Verständnis. Also ich habe jetzt mal nach "remove DC-Offset from Sine-Wave" gegoogelt und da kommen tatsächlich viele Beispiele wo das einfach mit einem Hochpass gemacht wird. Stefan S. schrieb: > Was hält dich denn davon ab, die Grenzfrequenz einfach unter 50 Hz zu > setzen? Du willst ja nur den Gleichsspannungsanteil herausfiltern. > Im Grunde brauchst du aber ohnehin einen Bandpass - Untere Grenzfrequenz > bei <50 Hz und obere Grenzfrequenz bei >1800 Hz. Ok also mal angenommen der Tiefpass reicht zum herausfiltern des Sinus aus und der anschließende Hochpass zum entfernen des Offset, dann hätte ich ja im Prinzip schon meinen Bandpass (Tiefpass + Hochpass = Bandpass) oder sehe ich das falsch ? Die Frage ist, kann ich dann einfach zwei Fliegen mit einer Klappe schlagen und die Grenzfrequenz des Tiefpasses bei <50 Hz ansiedeln und die Grenzfrequenz des Hochpasses bei >1800 Hz und hätte dann quasi schon meinen Bandpass ? Freundliche Grüße Laura
Laura M. schrieb: > direkt ein analoger Sinus erzeugt, sondern eine hochfrequente PWM, auf > die ein Sinus "aufmoduliert" ist. Stimmt soweit. Und das ist wirklich moduliert, ganz ohne Anführungszeichen. > Durch anschließendes Filtern mit einem Tiefpass wird die hochfrequente > PWM herausgefiltert und dadurch entsteht ein "echter" analoger Sinus. Auch hier keine Gänsefüsschen, denn der Filter macht das was er soll, er filtert die hochfrequenten Signalanteile raus. > Wobei ich noch unsicher bin, ob da ein einfacher Tiefpass reicht, Das kommt auf die PWM-Frequenz und deine Nutzfrequenzen an. Je näher die beisammen liegen, umso steiler muß dein Filter sein. Wenn die PWM 100kHz hat und die aber max. 2kHz Sinus ezeugen willst, ist es einfach. Bei niedrigeren PWM-Frequenzen wird es aufwändiger. https://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM > finden sich im Internet auch Beispiele wo hier z.B. ein chebyshev-Filter > verwendet wird. > In meinem Fall wird die Sinus-Spannung dann noch verstärkt. Dann hast du sowieso einen OPV und mußt den nur passend als Addierverstärker beschalten, schon ist dein Mittelwert (=Gleichanteil) verschoben. > Also ich habe jetzt mal nach "remove DC-Offset from Sine-Wave" gegoogelt > und da kommen tatsächlich viele Beispiele wo das einfach mit einem > Hochpass gemacht wird. Kann man machen, wenn die Randbedingungen stimmen. Vor allem darf die untere Grenzfrequenz nicht zu niedrig sein, denn sonst wird der Kondensator riesengroß. > Ok also mal angenommen der Tiefpass reicht zum herausfiltern des Sinus > aus und der anschließende Hochpass zum entfernen des Offset, dann hätte > ich ja im Prinzip schon meinen Bandpass (Tiefpass + Hochpass = Bandpass) Ja. > oder sehe ich das falsch ? Nein. > Die Frage ist, kann ich dann einfach zwei Fliegen mit einer Klappe > schlagen und die Grenzfrequenz des Tiefpasses bei <50 Hz ansiedeln und > die Grenzfrequenz des Hochpasses bei >1800 Hz und hätte dann quasi schon > meinen Bandpass ? Ja, dann hälst du in hervoragender Weise dein Nutzsignal vom Ausgang fern ;-) Nochmal über die Frequenzen von Hoch- und Tiefpaß nachdenken! > Freundliche Grüße > > Laura Die zu 90%ier Wahrscheinlichkeit keine echte Laura ist ;-)
Warum so kompliziert mit OP-Amp? Schalte einfach einen Kondensator in Reihe zum Ausgang des µC.
1 | C Last |
2 | PWM 5V o----||----+----[===]---| GND |
Am Kondensator wird Spannung abfallen, da er einen gewissen Frequenzabhängigen Widerstandswert hat: Rc = 1(6,28*F*C) Zum Beispiel hat 1µF bei 50Hz etwa 1,6k Ohm. Wenn die Last zum Beispiel 100k Ohm Eingangswiderstand hat, ist der Spannungsabfall am Kondensator nur minimal. Bei einer anderen Last nimmst du einfach einen dazu passenden Kondensator.
Hallo, Aaaalso: Stefanus F. schrieb: > Warum so kompliziert mit OP-Amp? Schalte einfach einen Kondensator in > Reihe zum Ausgang des µC. Das war ja mein erster Gedanke (siehe oben), jedoch bestand Unsicherheit, ob das in diesem Falle ausreicht, da es (siehe Erklärung von falk): Falk B. schrieb: >> Wobei ich noch unsicher bin, ob da ein einfacher Tiefpass reicht, > > Das kommt auf die PWM-Frequenz und deine Nutzfrequenzen an. Je näher die > beisammen liegen, umso steiler muß dein Filter sein. Wenn die PWM 100kHz > hat und die aber max. 2kHz Sinus ezeugen willst, ist es einfach. Bei > niedrigeren PWM-Frequenzen wird es aufwändiger. nicht immer ausreicht. Den Op-Amp brauche ich sowieso zum Verstärken (siehe Skizze), wobei ich nochmal überdenken muss, ob da nicht doch besser ein Bipolar oder FET her muss, weil der Sinus auf +/- 30V verstärkt werden soll. Zunächst aber, soll ein vernünftiger Sinus zum Vorschein kommen und dann geh ich zum nächsten Step. Falk B. schrieb: >> Die Frage ist, kann ich dann einfach zwei Fliegen mit einer Klappe >> schlagen und die Grenzfrequenz des Tiefpasses bei <50 Hz ansiedeln und >> die Grenzfrequenz des Hochpasses bei >1800 Hz und hätte dann quasi schon >> meinen Bandpass ? > > Ja, dann hälst du in hervoragender Weise dein Nutzsignal vom Ausgang > fern ;-) > Nochmal über die Frequenzen von Hoch- und Tiefpaß nachdenken! Da hast du natürlich Recht, in dem Fall hätte ich eine Band-Sperre für meinen Sinus-Frequenzbereich gebaut, es muss natürlich genau anders herum. Falk B. schrieb: > Die zu 90%ier Wahrscheinlichkeit keine echte Laura ist ;-) Was ist denn eine "echte Laura" ? Auf jeden Fall ist das mein Name :-P Freundliche Grüße
:
Bearbeitet durch User
Laura M. schrieb: > Den Op-Amp brauche ich sowieso zum Verstärken (siehe Skizze), Eben. > wobei ich > nochmal überdenken muss, ob da nicht doch besser ein Bipolar oder FET > her muss, weil der Sinus auf +/- 30V verstärkt werden soll. Das macht man aber nicht mit einem einzelnen Transistor sondern nimmt einen fertigen, vollintegrierten Verstärker-IC. Denn bis ein Anfänger aus einem Transistor eine brauchbare Endstufe gemacht hat, ist Weihnachten dreimal vorbei. TDA2030, TD2050 und TDA7294 sind deine Freunde. > Zunächst aber, soll ein vernünftiger Sinus zum Vorschein kommen und dann > geh ich zum nächsten Step. Der früher (tm) Schritt hieß. >> Die zu 90%ier Wahrscheinlichkeit keine echte Laura ist ;-) > Was ist denn eine "echte Laura" ? Auf jeden Fall ist das mein Name :-P Bei weitem nicht alle Forenteilnehmer mit weiblichen Vornamen sind auch in der realen Welt weiblich. So what! Namen sind Schall und Rauch und das Geschlecht ein gesellschaftliches Konstrukt (Wenn man den Gender-Irren Glauben schenken will).
Stefanus F. schrieb: > Warum so kompliziert mit OP-Amp? Schalte einfach einen Kondensator in > Reihe zum Ausgang des µC. C Last > PWM 5V o----||----+----[===]---| GND Genau das habe ich in dem Verlauf des Threads auch gefragt! Natürlich reicht das aus. Das variable Tastverhältnis ist ja genau die Information vom Sinus. Und das C wirkt als Hochpass, um den unerwünschten Gleichanteil loszuwerden. Unabhängig davon braucht man auch einen Tiefpass, der den PWM-Anteil glättet / entfernt. Das sind aber zwei verschiedene Dinge.
HildeK schrieb: > Genau das habe ich in dem Verlauf des Threads auch gefragt! > > Natürlich reicht das aus. Irgendwie doch nicht, wenn hinten eine Sinusamplitude von 30V rauskommen soll ;-) Laura M. schrieb: > Den Op-Amp brauche ich sowieso zum Verstärken (siehe Skizze), wobei ich > nochmal überdenken muss, ob da nicht doch besser ein Bipolar oder FET > her muss, weil der Sinus auf +/- 30V verstärkt werden soll.
Nur für mein Verständnis. Wie kann den die Ausgangsamplitutde beim Adruino (Uno) verändert werden? Ich dachte, analogWrite() würde grundsätzlich nur das Tastverhältnis der PWM verändern? Erfolgt da noch eine Integration über einen Kondensator?
svensson schrieb: > Nur für mein Verständnis. Wie kann den die Ausgangsamplitutde beim > Adruino (Uno) verändert werden? Welche denn? Der einfache Arduino (Uno) hat nur Digitalausgänge, die schalten immer mit VCC, sprich 5V. > Ich dachte, analogWrite() würde grundsätzlich nur das Tastverhältnis der > PWM verändern? Tut es auch. >Erfolgt da noch eine Integration über einen Kondensator? Fast. Es erfolgt eine Filterung des modulierten PWM-Signals, woraus dann ein Sinus entsteht. Das ist das Grundprinzip eines Klasse D Verstärkers. Beitrag "Re: H-Bridge 50Hz Sinus - LC Filter dimensionieren" Der Filter dämpft alle Frequenzanteile ab der PWM-Frequenz und höher, sodaß im Idealfall nur noch der Mittelwert (Gleichanteil) des PWM-Signals übrig bleibt.
Ah, danke. Da ist aber noch ein IC zwischen Arduino und Filter. Angenommen alle Bauteile hätten ideale Eigenschaften, dann dürfte da doch eigentlich kein Sinus entstehen können?
svensson schrieb: > Angenommen alle Bauteile hätten ideale Eigenschaften, dann dürfte da > doch eigentlich kein Sinus entstehen können? Warum? Also kurzum gerade WENN die Bauteile ideal sind/wären, entsteht ein störungsfreier Sinus. (Vorausgesetzt, die BE sind korrekt dimensioniert).
svensson schrieb: > Ah, danke. Da ist aber noch ein IC zwischen Arduino und Filter. Im dem Beitrag? Jain, dort ist ein Leistungstreiber drin, weil ja deutlich höhere Spannungen und Ströme am Ausgang gebraucht werden. Man kann aber auch einen einfachen RC-Filter direkt an den Arduino anschließen, das wurde dort auch gemacht, um den Sinus am Oszi bewerten zu können. > Angenommen alle Bauteile hätten ideale Eigenschaften, dann dürfte da > doch eigentlich kein Sinus entstehen können? Unsinn.
Wenn ein perfektes Rechteck am Ausgang entstehen würde, bei dem sich lediglich das Tastverhältnis ändert, dann gibt es nur einen rechnerischen Mittelwert, aber keinen physikalischen. Offenbar findet die physikalische Mittelwertbildung erst im Kondensator des Filters statt. Als Problem müßte dann doch eine Lastabhängigkeit auftreten? Das in der obigen Grafik gezeigte Signal vor dem Filter ist dann so nicht korrekt, da die Impulse immer Vcc haben.
Hauptsächlich ging es mir darum, ob der der Aduino Uno einen echten DAC hat. Das gilt aber offensichtlich erst für den Due. Die Idee mit der Filterschaltung ist interessant, die merke ich mir, falls ich ein entsprechendes Projekt habe. Eine Stromverstärkung könnte dann mittels eines OPV erfolgen. (Wie man vielleicht merkt, bin ich Theoretiker, der mit den Tücken der Praxis konfrontiert wird...)
svensson schrieb: > Wenn ein perfektes Rechteck am Ausgang entstehen würde, bei dem sich > lediglich das Tastverhältnis ändert, dann gibt es nur einen > rechnerischen Mittelwert, aber keinen physikalischen. Es gibt auch einen physikalischen, wenn man dort z.B. einen Widerstand anschließt. Dessen Erwärmung ist vom Mittelwert abhängig. > Offenbar findet die physikalische Mittelwertbildung erst im Kondensator > des Filters statt. Sicher. Aber das geht auch im idealen Kondensator. > Als Problem müßte dann doch eine Lastabhängigkeit > auftreten? Dafür gibt es Verstärker, welche den Filter puffern. > Das in der obigen Grafik gezeigte Signal Welche Grafik? > vor dem Filter ist dann so > nicht korrekt, da die Impulse immer Vcc haben. Nö, du bist auf dem Holzweg. PWM_AVR.png zeigt die Digitalsignale des AVRs PWM_RC-Filter.png zeigt die gefilterten Signale nach einem einfachen RC Filter mit 1kOhm + 220nF
> Ich dachte, analogWrite() würde grundsätzlich nur das Tastverhältnis der > PWM verändern? Korrekt. > Erfolgt da noch eine Integration über einen Kondensator? Ja, so nen Integrator nennt man auch Tiefpass[1] ;-) Der Tiefpass kann diskret aufgebaut sein (z.B. R-C Filter) aber auch aus parasitären Effekten entstehen, insb bei mechanischen Teilen wie Motor oder Lautsprecher. [1] Btw, ein Differenzierer ist ein Hochpass.
Falk B. schrieb: > Welche Grafik? Ich meine die Grafik von Laura M. ->> Laura M. schrieb im Beitrag #5645027: Die Bilder unter Deinem Link sind schon so, wie ich es erwarten würde. foobar schrieb: > parasitären Effekten entstehen, insb bei mechanischen Teilen wie > Motor oder Lautsprecher. Ja, das ist es. Natürlich habe ich schon Motoren per PWM so gesteuert. > Es gibt auch einen physikalischen, wenn man dort z.B. einen Widerstand > anschließt. Dessen Erwärmung ist vom Mittelwert abhängig. Sicherlich, aber es müssen eben am Ausgang weitere Bauteile hinzukommen, die können dann auch ideal sein.
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.