Forum: Mikrocontroller und Digitale Elektronik PWM Signal ( 5V, Pulslänge 1-2ms) für Servomotor in 0-10v umsetzen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jacob L. (jacob_l575)


Lesenswert?

Guten Tag zusammen,

ich möchte gerne das Steuersignal einer Abbrandregelung zur Regelung 
einer Zuluftklappe verwenden. Die Abbrandregelung gibt ein 5V Signal mit 
einer Pulslänge zwischen 1ms und 2ms (üblich für Servomotoren aus dem 
Modellbau) heraus. Die Klappe wird mit einem Bellimo Motor angesteuert 
welcher ein 0-10V Signal verarbeiten kann. Wie könnte man diese 
spezielle PWM Signal in 0-10V Signal umsetzen?

Vielen Dank,

Jacob

von Wolf17 (wolf17)


Lesenswert?

Der Servopuls ist 1-2ms lang und kommt alle 20ms.
https://de.wikipedia.org/wiki/Servo

Eine Mittelung des 5V Signals mit RC Glied ergibt 0,25 bis 0,5V. Die mit 
einem OP gegenüber einer 0,25V Referenz 40fach verstärken ergibt 0-10V.
Vielleicht findet sich noch was preiswerteres als:
https://de.aliexpress.com/item/1005003017366870.html?

: Bearbeitet durch User
von Monk (roehrmond)


Lesenswert?

Hallo Jacob,

ich schließe mich Wolfs Vorschlag an.

Du brauchst dafür prinzipiell zwei Teile:
1) Tiefpass (https://www.elektronik-kompendium.de/sites/slt/0206172.htm)
2) Operationsverstärker 
(https://www.elektronik-kompendium.de/sites/bau/0209092.htm)

Fange mal dem Tiefpass an. Ich würde dazu einen Widerstand im 
einstelligen kΩ Bereich nehmen und den Kondensator dazu passen wählen. 
Er muss so träge sein, dass das Ausgangssignal eine einigermaßen glatte 
analoge Spannung ergibt.

Da die 1-2 ms Impulse sich nur alle 20 ms wiederholen, wirst du bei 5 V 
Versorgungsspannung auf eine analoge Ausgangsspannung im Bereich 
0,25-0,5 V kommen.

Mit einem Operationsverstärker wirst du 0,25 V subtrahieren und um 
Faktor 40 verstärken. Der TS912 wird hier öfters empfohlen, ich denke, 
der könnte passen. Die 0,25 V machst du am besten mit einem Trimmpoti 
einstellbar. Lege also 0,25 V an den negativen Eingang des Verstärkers, 
und das Ausgangssignal des Tiefpasses an den positiven Eingang.

Du brauchst eine Stromversorgung mit etwa 12 Volt und wenigen mA (das 
kleinste Netzteil genügt).

Zur "einigermaßen glatten" Spannung: Gibt es dazu Unterlagen, was der 
Antrieb braucht? Wenn nicht, wird es wohl auf Experimente hinaus laufen. 
Ein zu kleiner Kondensator hinterlässt eine unruhige Spannung, was den 
Antrieb womöglich dazu bringt, ständig hin und her wackeln. Ein zu 
großer Kondensator macht die Sache sehr träge, so dass der Antrieb 
verzögert reagiert. Da gibt es sicher eine Grenze, wie viel Trägheit 
akzeptabel ist.

: Bearbeitet durch User
von Enrico E. (pussy_brauser)


Lesenswert?

Damit bei einer Frequenz von 50Hz der Tiefpass nicht allzu träge wird 
und die Restwelligkeit trotzdem möglichst gering sein soll, könnte man 
zwei Tiefpässe hintereinander schalten.

Der erste Tiefpass mit 4k7 und 100uF und der nachgeschaltete Tiefpass 
mit 10k und 47uF.

von Mi N. (msx)


Lesenswert?

Wir sind hier im µC-Digitalbereich, weshalb ich die analogen Lösungen 
als eher schlecht bewerten würde. Und auch im analogen Forumsbereich 
würde ich eher Schaltungen mit Integrator und Spitzenwertspeicherung 
vorschlagen.

Digitaler Ansatz: ein 8-pol. µC misst die Dauer der Eingangsimpulse, 
rechnet diese um und erzeugt eine proportionale, höherfrequente PWM. Ein 
einfacher Tiefpass gefolgt von einem OPV mit entsprechender Verstärkung 
liefert dann die benötigten 0 - 10 V.

von Rainer W. (rawi)


Lesenswert?

Mi N. schrieb:
> würde ich eher Schaltungen mit Integrator und Spitzenwertspeicherung
> vorschlagen.

Genau so.

Die Periodendauer hat bei den Servosteuerpulsen keine Bedeutung und darf 
in weiten Bereichen schwanken. Der Ansatz über den Mittelwert ist also 
eigentlich falsch und nur wenn die Datenquelle zufällig mit konstanter 
Periodendauer arbeitet, funktioniert das.

Steve van de Grens schrieb:
> Ein zu großer Kondensator macht die Sache sehr träge, so dass der
> Antrieb verzögert reagiert. Da gibt es sicher eine Grenze, wie viel
> Trägheit akzeptabel ist.

Genau. Wenn die Luftklappe ein, zwei Minuten zum Nachstellen braucht, 
ist das gewöhnlich kein Problem. Die soll keine Tänze aufführen. 😉

von Falk B. (falk)


Lesenswert?

Es gibt PWM zu DC ICs, alles fix und fertig!

https://www.mikrocontroller.net/articles/Pulsweitenmodulation#Vollintegrierte_L%C3%B6sungen

Ach so, geht nicht so wirklich, denn man darf/sollte NUR die Pulsbreite 
auswerten, nicht das Tastverhältnis. Also doch ein kleiner 8-Pin uC, der 
die Pulsbreite misst und dann eine proportionale PWM ausgibt, die man 
filtern und verstärken kann.

: Bearbeitet durch User
von Georg M. (g_m)


Lesenswert?

Mi N. schrieb:
> Wir sind hier im µC-Digitalbereich
>
> Digitaler Ansatz: ein 8-pol. µC misst die Dauer der Eingangsimpulse,
> rechnet diese um und erzeugt eine proportionale, höherfrequente PWM. Ein
> einfacher Tiefpass gefolgt von einem OPV mit entsprechender Verstärkung
> liefert dann die benötigten 0 - 10 V.

Und Mikrocontroller mit DAC erzeugen die Spannung ohne 
Tiefpass-Verzögerung.

von Mi N. (msx)


Lesenswert?

Georg M. schrieb:
> Und Mikrocontroller mit DAC erzeugen die Spannung ohne
> Tiefpass-Verzögerung.

Das kann man gerne machen, wenn man alle 20 ms einen neuen Analogwert 
binnen 10 µs haben möchte.
Angenommen ein 8 MHz µC mit 8 Bit PWM per Timer. 256 Stufen sollten 
reichen und ergeben eine PWM-Frequenz von 31,25 kHz. Ein einfacher 
RC-Tiefpass reicht aus, um das PWM-Signal binnen 20 ms hinreichend zu 
filtern.

von Jacob L. (jacob_l575)


Lesenswert?

Ich habe mich jetzt erstmal an den Hersteller gewandt. Er macht mir 
einen Kostenvoranschlag für die Anpassung der Software und einen 
Funktionstest. Das hört sich erstmal teuer an, aber vielleicht ist das 
für mich sinnvoller als mit eigenen Lösungen bzw. euren Lösungen zu 
experimentieren. Ich bin da nicht besonders bewandert. Das Produkt nennt 
sich oControl, falls sich jemand dafür interessiert.  Vielen Dank 
erstmal für eure Ratschläge. Jacob

von Jacob L. (jacob_l575)


Lesenswert?

Hätte ggf. jemand Zeit und Lust das für mich zu realisieren? Natürlich 
gegen Vorkasse!

von Monk (roehrmond)


Lesenswert?

Jacob L. schrieb:
> Hätte ggf. jemand Zeit und Lust das für mich zu realisieren?

Warte doch erst mal den Kostenvoranschlag ab.

Warum nimmst du nicht die fertige Platine, die Wolf17 dir empfohlen hat?

: Bearbeitet durch User
von Jacob L. (jacob_l575)


Lesenswert?

Ich hatte die Einwände von Rawi und msx so verstanden, dass es nicht 
ganz den Anforderungen entspricht. Laut Beschreibung macht das Ding aber 
genau was es soll. Wenn es jetzt keine Einwände gibt, dann bestelle ich 
das Teil. Alles andere kommt ja bestimmt nicht billiger. Super vielen 
Dank.

von Monk (roehrmond)


Lesenswert?

Jacob L. schrieb:
> Alles andere kommt ja bestimmt nicht billiger.

Deswegen habe ich gefragt. Probiere das Modul doch einfach aus.

von Falk B. (falk)


Lesenswert?

Jacob L. schrieb:
> Hätte ggf. jemand Zeit und Lust das für mich zu realisieren? Natürlich
> gegen Vorkasse!

Könnte ich machen, dazu reicht ein kleiner ATtiny13 und ein OPV. Alles 
streng unter Beerware-Lizenz! ;-)

von Mi N. (msx)


Angehängte Dateien:

Lesenswert?

Jacob L. schrieb:
> Hätte ggf. jemand Zeit und Lust das für mich zu realisieren?

Wieviel Ahnung hast Du denn von Elektronik? Kannst Du eine Platine in 
Dein System einbauen?

Was auf jeden Fall gebraucht wird, ist eine Versorgungsspannung von >= 
12 V. Ist diese vorhanden bzw. abgreifbar?
Ein Schaltungsvorschlag anbei. Der ATtiny25 kann für bessere 
Grundgenauigkeit mit einem Quarz betrieben werden. Bei 5 V bis 20 MHz - 
was man so in der Schublade hat.

von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?


von Falk B. (falk)


Lesenswert?

Fred R. schrieb:
> Kannst du dir hier abkupfern:
> https://www.ramser-elektro.at/1wire-sensor-zu-0-10v-konverter/

Ganz sicher nicht, denn er hat keinen 1 Wire sensor. Außerdem

"Ich bin da nicht besonders bewandert."

Er sucht jemanden, der ihm das fertig aufbauen oder verkaufen kann.
Sonst nix.

von Wolfgang S. (wolfgang_s278)


Lesenswert?

https://de.aliexpress.com/item/33040321292.html

[Mod: Lebenslauf aus Link entfernt]

: Bearbeitet durch Moderator
von Mi N. (msx)


Lesenswert?

Fred R. schrieb:
> Kannst du dir hier abkupfern:

Als Kunstobjekt vielleicht, als Lösung bestimmt nicht.

Wolfgang S. schrieb:
> https://de.

Mag ja durchaus gut sein, macht nur nicht das, was der TO braucht.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

So, ich war mal so frei und hab das aufgebaut. Siehe Anhang. Sollte 
passen.

von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

Falk B. schrieb:
> Ganz sicher nicht, denn er hat keinen 1 Wire sensor.

Es geht hier um den OPV part, welcher aus einem PWM einen 0-10V Ausgang 
machen.

von Klaus H. (hildek)


Lesenswert?

Falk B. schrieb:
> So, ich war mal so frei und hab das aufgebaut.

Hast du das Bier schon? 😀

Falk B. schrieb:
> Alles streng unter Beerware-Lizenz! ;-)

von Mi N. (msx)


Lesenswert?

Vielleicht meldet sich der TO noch einmal, was ihm der Hersteller seiner 
Steuerung geantwortet hat.

Selber habe ich auch ein Progrämmchen gemacht, will mich aber nicht 
nachdrängeln. Es läuft auf einem 8 MHz ATtiny85 (gerade zur Hand). 1 ms 
ist auf 8000 Schritte aufgelöst. Da Timerüberlaufe schon berücksichtigt 
werden, können auch längere Pulsweiten und auch die Pausenzeiten 
gemessen werden. Rein rechnerisch <= 500 s ;-)
Ferner sorgt ein Timeout dafür, daß bei fehlendem Eingangssignal nach 
einer Sekunde der Ausgang auf 0 V geht.

Als Verbesserung der obigen Prinzipschaltung würde ich ein 1 k Trimmpoti 
ergänzen, um die ungenaue Ausgangsspannung des 5 V Reglers 
auszugleichen. Ferner das Ausgangsfilter zweistufig auf 1 kHz auslegen. 
Mit 12 dB/Oktave und 6 Oktaven sind die Dämpfung hoch genug und die 
Einschwingzeit hinreichend kurz.
Wenn es ganz "perfekt" werden soll, könnte man die Verstärkung des OPV 
auf 2,1 erhöhen und die max. Ausgangsspannung per Taster (mit 
EEPROM-Ablage des PWM-Faktors) einstellen.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Mi N. schrieb:
> Vielleicht meldet sich der TO noch einmal, was ihm der Hersteller seiner
> Steuerung geantwortet hat.
>
> Selber habe ich auch ein Progrämmchen gemacht, will mich aber nicht
> nachdrängeln. Es läuft auf einem 8 MHz ATtiny85 (gerade zur Hand). 1 ms
> ist auf 8000 Schritte aufgelöst.

Es lebe der Overkill!

> Ferner sorgt ein Timeout dafür, daß bei fehlendem Eingangssignal nach
> einer Sekunde der Ausgang auf 0 V geht.

Ok, das fehlt bei mir noch.

> Als Verbesserung der obigen Prinzipschaltung würde ich ein 1 k Trimmpoti
> ergänzen, um die ungenaue Ausgangsspannung des 5 V Reglers
> auszugleichen.

Ich hab nen LP2950 mit 0,5% drin, das sollte reichen. Gemessen sind 
4989mV VCC "satte" 11mV Unterspannung, = -0,22% ;-)

> Ferner das Ausgangsfilter zweistufig auf 1 kHz auslegen.
> Mit 12 dB/Oktave und 6 Oktaven sind die Dämpfung hoch genug und die
> Einschwingzeit hinreichend kurz.

Ist drin, mit ~90Hz. PWM mit 15,625kHz.

> Wenn es ganz "perfekt" werden soll, könnte man die Verstärkung des OPV
> auf 2,1 erhöhen und die max. Ausgangsspannung per Taster (mit
> EEPROM-Ablage des PWM-Faktors) einstellen.

Schon wieder Overengineering. KISS!

von Georg M. (g_m)


Angehängte Dateien:

Lesenswert?

Pulse-Width Measurement ist eine fertige HW-Funktion.

1
24. TCB - 16-Bit Timer/Counter Type B
2
24.1 Features
3
 • 16-bit Counter Operation Modes:
4
  – Periodic interrupt
5
  – Time-out check
6
  – Input capture
7
    • On event
8
    • Frequency measurement
9
    • Pulse-width measurement
10
    • Frequency and pulse-width measurement
11
    • 32-bit capture
12
  – Single-shot
13
  – 8-bit Pulse-Width Modulation (PWM)
14
 • Noise Canceler on Event Input
15
 • Synchronize Operation with TCAn
16
17
18
19
34. DAC - Digital-to-Analog Converter
20
34.1 Features
21
 • 10-Bit Resolution
22
 • High Drive Capabilities
23
 • The DAC Output Can Be Used as Input to Other Analog Peripherals

von Monk (roehrmond)


Lesenswert?

Georg M. schrieb:
> Pulse-Width Measurement ist eine fertige HW-Funktion.

Ich glaube da verwechselst du Anwendungsfälle mit Hardwarefunktionen. 
Welcher AVR ist das denn?

Nachtrag: Ich hab's gefunden. Du meinst die neuen AVR Serien von 
Microchip (z.B. AVR32DA48), dir mir noch nicht geläufig sind. Die haben 
tatsächlich einen "Input Capture Pulse-Width Measurement Mode":

"In the Input Capture Pulse-Width Measurement mode, the input capture 
pulse-width measurement will restart the counter on a positive edge, and 
capture on the next falling edge before an interrupt request is 
generated."

: Bearbeitet durch User
von Jacob L. (jacob_l575)


Lesenswert?

Hallo nochmal zusammen. Der Hersteller hat mir recht zügig ein Angebot 
über 180€ erstellt, das halte ich, für eine so spezielle Anpassung, für 
absolut in Ordnung. Er hat dann aber auch direkt darauf hingewiesen, 
dass es dann keine Updates dafür geben wird. Das hätte ich auch noch 
verkraften können. Entscheidend war nun aber die Tatsache, dass ich im 
Falle eines Defektes dann die Anpassung nochmal bezahlen müsste. Daher 
habe ich dan einfertiges Modul bei Ebay/China bestellt. Es ist heute 
angekommen und funktioniert. Wirft leider nur 0-5Volt raus und mein 
Antrieb arbeitet gar nicht mit 0-10Volt Steuerspannung sondern mit 
2-10Volt. Aber ein Paar Hinweise zum „Erhöhung“ der Spannung habe ich ja 
bereits bekommen. Ich schaue mal wie weit ich damit komme. Wenn ich es 
richtig verstanden habe, dann wäre da ab hier auch ein anderes Forum 
geeigneter.

Vielen Dank euch allen für die tolle Hilfe, auch wenn ich eure Entwürfe 
nun gar nicht umgesetzt habe.

von Jacob L. (jacob_l575)


Lesenswert?

Falk B. schrieb:
> So, ich war mal so frei und hab das aufgebaut. Siehe Anhang.
> Sollte passen.

Oh je, jetzt bin ich aber platt. Falk hat das Teil ja schon komplett 
gebaut gehabt. Könntest Du das noch so modifizieren, dass es 2-10 Volt 
ausgibt? Das wäre dann ja perfekt.

In jedem Falle würde ich Dir das Teil gerne in etwas Feines umtauschen.

von Rainer W. (rawi)


Lesenswert?

Jacob L. schrieb:
> Wirft leider nur 0-5Volt raus und mein
> Antrieb arbeitet gar nicht mit 0-10Volt Steuerspannung sondern mit
> 2-10Volt.

Dann ist der wohl auch für die Steuerung durch ein 4-20mA Signal 
konzipiert, wo ein zusätzlicher 500 Ω Shunt für die Umsetzung auf 2-10V 
sorgt.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Jacob L. schrieb:
> Hallo nochmal zusammen. Der Hersteller hat mir recht zügig ein Angebot
> über 180€ erstellt, das halte ich, für eine so spezielle Anpassung, für
> absolut in Ordnung.

Ja. Aber ich hatte dir auch eine Nachricht geschickt. Ist die nicht 
angekommen? Im Spam versackt? Oder von GMX oder Googlemail verschluckt?

Jacob L. schrieb:
> Oh je, jetzt bin ich aber platt. Falk hat das Teil ja schon komplett
> gebaut gehabt. Könntest Du das noch so modifizieren, dass es 2-10 Volt
> ausgibt? Das wäre dann ja perfekt.

Sicher, ist ja nur Software. Aber mit welchen Eckpunkten?

1ms=2V
1,5ms = 6v
2ms = 10V

So?

> In jedem Falle würde ich Dir das Teil gerne in etwas Feines umtauschen.

Da meine Arbeiten streng unter Beerware Lizenz laufen, nehm ich ein 
Schwarzbier ;-)
Schreib mir ne persönliche Nachricht, dann können wir die Details 
klären. Oben auf meinen Namen clicken.

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Hier die neue Kennlinie 2-10V.

von Jacob L. (jacob_l575)


Lesenswert?

Frank, hast du meine PN bekommen?

von Falk B. (falk)


Lesenswert?

Jacob L. schrieb:
> Frank, hast du meine PN bekommen?

Ich bin zwar nicht Frank, aber ich habe deine Emails bekommen. ;-)

von Jacob L. (jacob_l575)


Lesenswert?

Abschließend kann ich vermelden, dass das Modul von Falk (sorry;) genau 
das macht was es soll. Vielen Dank an alle Beteiligten und insbesondere 
an Falk.

von Falk B. (falk)


Lesenswert?

Jacob L. schrieb:
> Abschließend kann ich vermelden, dass das Modul von Falk (sorry;) genau
> das macht was es soll. Vielen Dank an alle Beteiligten und insbesondere
> an Falk.

Schon angekommen? WOW, das war mal schnell, Freitag vormittag zu Post, 
Sonnabend schon geliefert.

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
Noch kein Account? Hier anmelden.