Arduino 5V PWM Signal zu 0-10V Normsignal

Gast #4978664
Servus,
arbeite momentan an einem Projekt für mein Maschinenbau Studium. Ich 
müsste für einen Versuchsaufbau, ein 5V PWM Signal von einem Arduino in 
ein 0-10V Normsignal umwandeln. Wir nutzen dieses Signal für den Eingang 
eines Motorreglers.
Habe mich mal ein wenig durch die Foren gelesen und 2 Bauteile 
herausgesucht.
Einmal wäre da das SparkFun I2C DAC Breakout - MCP4725 
(https://www.sparkfun.com/products/12918) Board, um ein analoges 
Ausgangssignal zu erzeugen. Danach würde ich dieses dann in einen 
SparkFun OpAmp Breakout - LMV358(https://www.sparkfun.com/products/9816) 
Board geben um mit einem Verstärkungsfaktor von 2 das Signal von 0-5V 
auf 0-10V zu heben.
Würde das so funktionieren ?
Gast
Wenn schon verstärkt werden muß, dann doch gleich den Tiefpaß mit 
einbinden. Im Tietze-Schenk findet sich ein Beispiel:
"Aktives Tiefpaßfilter 2.Ordnung mit Einfachmitkopplung".
Die Grenzfrequenz wird mit zwei gleichen Widerständen und zwei gleichen 
Kondensatoren eingestellt, der Filtertyp mit der Verstärkung.
Der verwendete OPV sollte hier unkritisch sein.
m.n. schrieb:
> Wenn schon verstärkt werden muß, dann doch gleich den Tiefpaß mit
> einbinden. Im Tietze-Schenk findet sich ein Beispiel:
> "Aktives Tiefpaßfilter 2.Ordnung mit Einfachmitkopplung".
> Die Grenzfrequenz wird mit zwei gleichen Widerständen und zwei gleichen
> Kondensatoren eingestellt, der Filtertyp mit der Verstärkung.
> Der verwendete OPV sollte hier unkritisch sein.

Naja, mehr als 6V sollte er schon vertragen.
Wieviel Bit Auflösung und welche Genauigkeit brauchst Du?
Und: Kennst Du den Unterschied?

Wie schnell muss das ganze sein, d.h. wie viele Abtastwerte pro Sekunde 
musst Du ausgeben?

Welchen Strom muss der Ausgang liefern können?
(a) im eingeschwungenen Zustand (Gleichstromfall)
(b) im dynamischen Betrieb (Sprungantwort, d.h. von 0V auf 10V) Wie 
schnell ist die Spannung am Eingang des Motorreglers von 0V auf 10V 
gestiegen? Vergleiche das mit der Abtastrate aus der Antwort vorher.

Diese Angaben musst Du ermitteln, und der Weg dahin gehört in die 
schriftliche Ausarbeitung. Die Suche nach geeigneten Bauteilen ist erst 
der zweite Schritt.

fchk
Gast
@ Frank K.

der Motor macht maximal 120 U/min und ich würde gerne auf eine halbe 
umdrehung genau einstellen. Also wäre eine Auflösung von 8bit schon 
ausreichend. Die Genauigkeit wäre gut wenn sie +/- eine halbe Umdrehung 
ist.
Die Abtastrate reicht aus wenn sie im bereich 0,5s liegt.
Der maximale Strom dürfte sehr gering sein, im Bereich 10-20 mA, da es 
ja nur ein Steuersignal ist.
Die richtige Ansteuerung erfolgt später über ein Beckhoff SPS System, 
dass uns das 0-10v Signal zur Verfügung stellt. Aber da diese momentan 
fest in der Maschine verbaut ist, brauchen wir wirklich nur eine 
rudimentäre Lösung für die 0-10V.
Gast
Harald W. schrieb:
> Du kennst den Unterschied zwischen Auflösung und Genauigkeit?

wie oben geschrieben die Auflösung ist wie genau das Signal unterteilt 
ist, und die Genauigkeit wäre wie weit mein Signal vom Realwert 
abweicht. Oder liege ich da falsch.
Gast
Hier eine einfache Schaltung die ich schon mal in einem anderen Thread 
erwähnt hatte. Der 22k Ohm Widerstand kann durch einen 10k Ohm 
Widerstand ersetzt werden, dann hast Du eine Verstärkung von 2 (zwei). 
Wenn am Eingang eine Spannung von 5V anliegt, sind es am Ausgang 10V. 
Die Schaltung kommt mit einer einfachen Versorgungsspannung aus und ist 
gleichspannungsgekoppelt.

Die Versorgungsspannung kann auch direkt aus 24V Hutschienenmodulen 
gewonnen werden.
Angehängte Dateien:
Gast
Frank K. schrieb:
> Wieviel Bit Auflösung und welche Genauigkeit brauchst Du?
> Und: Kennst Du den Unterschied?

Harald W. schrieb:
> Du kennst den Unterschied zwischen Auflösung und Genauigkeit?

Die Frage ist noch nicht von Jedem gestellt worden. Ich war noch nicht 
dran und hole das jetzt nach:

Kennt ihr den Unterschied zwischen Auflösung und Genauigkeit?

Nein? Aber gleich!

https://www.mikrocontroller.net/articles/Aufl%C3%B6sung_und_Genauigkeit

SCNR
Mr.Rioes schrieb:

> wie oben geschrieben die Auflösung ist wie genau das Signal unterteilt
> ist, und die Genauigkeit wäre wie weit mein Signal vom Realwert
> abweicht. Oder liege ich da falsch.

Du meinst aber, das Du mit 8Bit eine Genauigkeit von <1/2%
erreichen kannst. Wenn man besser 1% Genauigkeit braucht,
muss man schon etwas Sorgfalt bei der Auswahl der Teile
und dem Aufbau der Schaltung walten lassen.
Gast
Ralf schrieb:
> Hier eine einfache Schaltung die ich schon mal in einem anderen Thread
> erwähnt hatte. Der 22k Ohm Widerstand kann durch einen 10k Ohm
> Widerstand ersetzt werden, dann hast Du eine Verstärkung von 2 (zwei).
> Wenn am Eingang eine Spannung von 5V anliegt, sind es am Ausgang 10V.
> Die Schaltung kommt mit einer einfachen Versorgungsspannung aus und ist
> gleichspannungsgekoppelt.
>
> Die Versorgungsspannung kann auch direkt aus 24V Hutschienenmodulen
> gewonnen werden.

Schorsch X. schrieb:
> Da es ein PWM Signal ist, muss noch ein Kondensator parallel zum 22k.
> Und parallel zum 10u Elko noch einen 100n spendieren. Dann sollte das
> für´s Erste passen.

Wunderbar werde es mal so probieren.
Gast
Schorsch X. schrieb:
> Da es ein PWM Signal ist, muss noch ein Kondensator parallel zum 22k.
> Und parallel zum 10u Elko noch einen 100n spendieren. Dann sollte das
> für´s Erste passen.


In welcher Größenordnung sollte denn der Kondensator parallel zum 22k 
Widerstand sein ?
Gast
Mir ist noch nicht ganz klar ob der TO nur das PWM-Signal auf 10V 
anheben möchte, oder ob er aus dem PWM-Signal, je nach Pulsweite, ein 
reines Gleichspannungssignal von 0-10V erzeugen will? Dann müsste in der 
Tat, wie von Teddy vorgeschlagen, noch ein Tiefpass nachgeschaltet 
werden.
Gast
Ralf schrieb:
> Mir ist noch nicht ganz klar ob der TO nur das PWM-Signal auf 10V
> anheben möchte, oder ob er aus dem PWM-Signal, je nach Pulsweite, ein
> reines Gleichspannungssignal von 0-10V erzeugen will? Dann müsste in der
> Tat, wie von Teddy vorgeschlagen, noch ein Tiefpass nachgeschaltet
> werden.

Er will ein 0-10V Normsignal, und das ist eine Analogspannung, kein PWM 
Gemurkse.
Gast
Harald W. schrieb:
> Mr.Rioes schrieb:
>
>> LMV358(https://www.sparkfun.com/products/9816)
>> Board geben um mit einem Verstärkungsfaktor von 2 das Signal von 0-5V
>> auf 0-10V zu heben.
>> Würde das so funktionieren ?
>
> Der LMV358 ist zwar billig (Ich glaube, der blligste OPV überhaupt),
> hier aber ungeeignet.

Nicht der billigste. Geeignet wäre zum Beispiel:

https://www.reichelt.de/ICs-LM-10-LM-999/LM-324-D-SMD/3/index.html?ACTION=3&GROUPID=5464&ARTICLE=18713&OFFSET=16&;

4-fach Variante des LM 358.

16 Cent.
Gast
Ich habs gerade ausprobiert. Ein Kondensator 1µF bis 100µF parallel zum 
22k Ohm Widerstand funktioniert nicht (bei 1kHz PWM). Aber ein 10k Ohm 
Widerstand in Reihe zum Eingang und ein 100µF Kondensator parallel zum 
47k Ohm Widerstand, funktioniert ausgezeichnet.

Die Größe des Kondensators hängt natürlich von der PWM-Frequenz des TOs 
ab. Ein zu großer Kondensator produziert eine Regelverzögerung, die sich 
evtl. negativ auf den gesamten Motorregelkreis auswirken könnte!
Ist zwar nicht direkt die Frage an sich, aber was spricht gegen den 
Analogausgang des Arduinos, mit einem OpAmp mit verstärkung?
Im Arduino wäre das einfach, man nimmt einfach den Wert der 8bit PWM (wo 
auch immer der her kommt)  und schreibt ihn stattdessen in das DAC 
Register. Fertig. Bei der 16bit PWM einfach nur das erste Byte nehmen.
Gast
Gerald M. schrieb:
> Ist zwar nicht direkt die Frage an sich, aber was spricht gegen den
> Analogausgang des Arduinos, mit einem OpAmp mit verstärkung?

Jetzt machst du mich neugierig. Reden wir hier von einem Arduino Due?
Oder welcher Arduino hat sonst einen (echten) Analogausgang?
Hast recht, habe nie wirklich mit Arduino gearbeitet, wusste aber dass 
es den "analogwrite" Befehl gibt.
Da ich vor einer Weile auf STM umgestiegen bin, war mir so auch nicht 
mehr bewusst dass AVRs zwar ADCs, aber keine DAC haben.

Also doch, aktiver Tiefpass oder ein DAC shield...
Ich habe mal einen 0815 Freuqenzumrichter mit einem Arduino angesteuert. 
Die Spannung habe ich über eine geglättete PWM erzeugt. Hat hervorragend 
funktioniert. Da hier fast nichts von Nöten ist.. einfach mal 
ausprobieren?

Gruss

A.B
Gerald M. schrieb:
> Hast recht, habe nie wirklich mit Arduino gearbeitet, wusste aber dass
> es den "analogwrite" Befehl gibt.

Den gibt es zwar, allerdings wird damit nur eine handelsübliche PWM 
erzeugt - nix DAC. Für Anfänger ist das zur Unterscheidung zu 
DigitalWrite eventuell hilfreich, Kenner verwirrt das jedoch schnell.
Gast
A. B. schrieb:
> Für Anfänger ist das zur Unterscheidung zu
> DigitalWrite eventuell hilfreich, Kenner verwirrt das jedoch schnell.

AnalogWrite() geht auch bei Arduino auf einen echten DAC, so der µCüber 
einen solchen verfügt (-> Arduino Due).

Bei Arduino heißen die Erweiterungsplatine auch "Shields" und die 
Programme "Sketches". Da haben sich die Kenner inzwischen auch mit 
abfinden müssen.
Gast
Wolfgang schrieb:
> AnalogWrite() geht auch bei Arduino auf einen echten DAC, so der µCüber
> einen solchen verfügt (-> Arduino Due).

Nur wird dieser Due niemals 5 VDC ausgeben können.

Christian M. schrieb:
> Ja genau, und zuerst die PWM auf 10V anheben, das ist viel einfacher und
> braucht kein OP- Geraffel. Dann RC-Glied!

Das ist aber unterste Bastelschublade, wobei die Ausgangsspannung von 
der Eingangsimpedanz des analogen Einganges abhängt.
Gast
Wolfgang schrieb:
> Ob man nun 3.3V oder 5V auf 10V anhebt, ist doch wohl egal.

Im Betreff stehen 5 V. Folglich kann es kein Arduino Due sein und es 
gibt keinen DAC auf dem Chip.

Wenn die Fragestellung völlig ignoriert werden darf, könnte ich auch 
einen AD667 anbieten: 12 Bit, interne Referenz und direkter, gepufferter 
10 V Ausgang.
Gast
Mr.Rioes schrieb:
> Servus,
> arbeite momentan an einem Projekt für mein Maschinenbau Studium. Ich
> müsste für einen Versuchsaufbau, ein 5V PWM Signal von einem Arduino in
> ein 0-10V Normsignal umwandeln.

So habe ICH die Aufgabe verstanden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.