Forum: Analoge Elektronik und Schaltungstechnik RC Signal in DC umwandeln


von Christian T. (Gast)


Lesenswert?

Hallo,

hat jemand einen Tipp wie ich ein Servo RC PWM/PPM Signal in eine DC 
Spannung wandeln kann die ich dann mit einem analogen µC Eingang 
einlesen kann?

Vielen Dank!

Gruß Chris

von Jens M. (schuchkleisser)


Lesenswert?

Warum will man sowas?
Warum nicht die Pulslänge direkt messen? Das ist für Software ein 
Klacks...

Und "ich hab nur noch einen rein analogen Eingang" zählt nicht.
Das muss man statt "digitalRead()" eben "if (analogread()>200)" 
benutzen, oha, das macht es dann auch nicht mehr.

von Christian T. (Gast)


Lesenswert?

Wenn ich ein Problem damit hätte das Signal direkt in den µC einzulesen 
hätte ich wohl diese Frage gestellt oder!? Mann Mann Mann

Freue mich über Schaltungsvorschläge :)

von Jens M. (schuchkleisser)


Lesenswert?

Christian T. schrieb:
> Wenn ich ein Problem damit hätte das Signal direkt in den µC einzulesen

*kein

Warum muss es unbedingt der dämlichste Weg sein?
Welches Problem versuchst du zu lösen? Es muss nicht unbedingt dein Weg 
der richtige sein, es mag andere, einfachere geben.

Aber bitte: Nimm einen Flieger-ESC für brushed-Motoren und glätte das 
erzeugte PWM mit einem RC-Glied. Das kannst du dann per Spannungsteiler 
wieder von Akkuspannung auf 5V runterteilen und in den ADC einspeisen.
Ist scheiße, hat ne Menge Unbekannte mit drin und wird alle 2 Minuten 
für das gleiche Signal was anderes anzeigen, aber ok, "genau" oder 
"Wiederholbar" hast du ja nicht gesagt...

Oder: bau dir eine SoftSerial auf dem ADC und benutze einen 
Preprozessor, der dir Pulslängen auch mehrerer Kanäle via serieller 
Schnittstelle liefert.
Gibts sogar schon fertig als Opensource oder zumindest als Hexfile.

Oder: RC-glätte das Signal einfach so und lies es ein. 50Hz und damit 
5-10% Tastverhältnis ergibt an einem 10-bit ADC 5,x bit Auflösung, 
vielleicht reicht das....

Mann Mann Mann...

von Dergute W. (derguteweka)


Lesenswert?

Moin,

voellig bekloppte Loesung 1:
Poti an einen Servo schrauben, Spannung aus Poti mit Analogeingang 
einlesen.

voellig bekloppte Loesung 2:
Mit irgendeinem kleinen wenigfuessler-µController das Servosignal 
vermessen und per "schoener PWM/sigma delta gedoense" ueber einen 
Tiefpass an den Analogeingang ausgeben.

Gruss
WK

von Chregu (Gast)


Lesenswert?

Völlig bekloppte Lösung 3:

Direkt ueber einen Tiefpass an den Analogeingang ausgeben und die 
Refenzspannung auf 0.5V stellen.

von Mannig (Gast)


Lesenswert?

Jens M. (schuchkleisser) 24.10.2020 09:39

Rhetorische Frage:

Bits du zu blöd einfache Beiträge zu lesen und zu verstehen, wie sie der 
TO geschrieben hat?

von Mannig (Gast)


Lesenswert?


von Öhmnöm (Gast)


Lesenswert?

Ein LTC2645 macht genau das.

von Wolfgang (Gast)


Lesenswert?

Christian T. schrieb:
> hat jemand einen Tipp wie ich ein Servo RC PWM/PPM Signal in eine DC
> Spannung wandeln kann die ich dann mit einem analogen µC Eingang
> einlesen kann?

Welchen Vorteil erhoffst du dir von dem Weg über den analogen µC 
Eingang?

Aber gut: Nimm einen kleinen µC, der die Dauer der Pulse des RC-Signals 
ausmisst, über PWM den Wert ausgibt und dahinter mit einem Tiefpass 
filtert. Dieses Signal kannst du dann auf den analogen Eingang von 
deinem µC geben. Die TP-Filterung wird die Sache allerdings deutlich 
träge machen. Wenn das Ausgangssignal schneller folgen soll, könntest du 
direkt einen DAC hinter den Signalwandler-µC hängen.

Eine Lösung ohne µC, bei der die Analogspannung schnell auf 
PPM-Änderungen reagiert, wäre mit einem Integrator mit S&H- sowie 
Löschstufe (aka synchronisierter Sägezahngenerator) möglich.
Ist das Schaltungsvorschlag genug?

Guck dir einfach Schaltpläne von RC-Empfängern aus den 80er-Jahren an.

von Axel R. (axlr)


Lesenswert?

Du müsstest aus den paar Prozent PPM ja wieder 0-5? Volt machen.
Wie war das?
800us-1.200us bei 20.000us Impulsdauer?
Da kommt nicht viel an Änderung auf analoger Seite bei rum.
Man könnte einen Referenzimpuls mittig erzeugen und mittels D-Flipflops 
und XOR Verknüpfung sowohl Richtung, als auch pulslänge ermitteln und 
"in die Länge ziehen".
Ist aber recht altbacken und wird beliebig kompliziert. Am Ende nix für 
den Einbau in ein Modellauto.
Aber das wird sicher auch garnicht gewünscht. Es geht am Ende eh wieder 
um was ganz anderes.
Daher:
Nimm da n kleinen uC mit inputcapturing und drösel das damit auf.
Meinetwegen geht das auch sicher mit'm arduino.

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Axel R. schrieb:
> Wie war das?
> 800us-1.200us bei 20.000us Impulsdauer?
> Da kommt nicht viel an Änderung auf analoger Seite bei rum.

Noch dazu, wo die Information einzig in der Impulslänge steckt.
Die Wiederholfrequenz ist nur ein Nominalwert und darf auch gerne 
abweichen. Je nach Quelle des Signals wird sie das auch.

von Uwe D. (monkye)


Lesenswert?

Axel S. schrieb:
> Axel R. schrieb:
>> Wie war das?
>> 800us-1.200us bei 20.000us Impulsdauer?
>> Da kommt nicht viel an Änderung auf analoger Seite bei rum.
>
> Noch dazu, wo die Information einzig in der Impulslänge steckt.
> Die Wiederholfrequenz ist nur ein Nominalwert und darf auch gerne
> abweichen. Je nach Quelle des Signals wird sie das auch.

Jo, so wie das die älteren ESCs mit OPV gemacht haben.

Beitrag #6452119 wurde von einem Moderator gelöscht.
von MiWi (Gast)


Lesenswert?

Axel R. schrieb:
> Du müsstest aus den paar Prozent PPM ja wieder 0-5? Volt machen.
> Wie war das?
> 800us-1.200us bei 20.000us Impulsdauer?
> Da kommt nicht viel an Änderung auf analoger Seite bei rum.

Ist ja insofern egal als das es ausreicht bei zB. 2ms den Vollausschlag 
am C vom RC zu haben, denn die Mittelung kann ja die SW übernehmen.

Also: Der ADC mißt kontinuierlich, die SW macht den Rest. Die kann dann 
erkennen ob es wirklich 20ms Pulsfrequenz ist und dann den ADC_max 
innerhalb dieses Zeitfensters als den Wert der aktuellen "PWM-Position" 
verwenden.

Mit der Kirche ums Kreuz geht halt mit SW viel einfacher als im realen 
Leben....

und wenn der TO das so will paßt das schon

von Axel S. (a-za-z0-9)


Lesenswert?

Uwe D. schrieb:
> Axel S. schrieb:
>> Axel R. schrieb:
>>> Wie war das?
>>> 800us-1.200us bei 20.000us Impulsdauer?
>>> Da kommt nicht viel an Änderung auf analoger Seite bei rum.
>>
>> Noch dazu, wo die Information einzig in der Impulslänge steckt.
>> Die Wiederholfrequenz ist nur ein Nominalwert und darf auch gerne
>> abweichen. Je nach Quelle des Signals wird sie das auch.
>
> Jo, so wie das die älteren ESCs mit OPV gemacht haben.

Ich kenne sogar noch Schaltungen rein mit Transistoren. Da gab es eine 
Kette von Monoflops. Je eins (variabel) für jeden Kanal und eins (fest) 
für die Pause. Die Länge eines Telegramms änderte sich dann, wenn man an 
einem Hebel zog.

von Jens M. (schuchkleisser)


Lesenswert?

Axel R. schrieb:
> 800us-1.200us bei 20.000us Impulsdauer?

1-2ms, 1,5ms ist die Mitte. Wobei es durchaus 1100-1900µs oder auch 
900-2100 oder sogar 800-2200µs sein können, und bei manchen schrägen 
Vögeln ist die Mitte bei 1516µs.
Die Wiederholfrequenz ist irgendwas zwischen meist so 50Hz bis hoch auf 
333Hz, wobei sie durchaus schwanken kann, es gibt System bei denen die 
Pausenzeit fest ist, nicht die Frequenz.

Ach Du grüne Neune schrieb im Beitrag #6452119:
> In den 80ern habe ich das tatsächlich noch mit  einem Tiefpass und zwei
> LM741 hinbekommen.

Interessanter Schaltungsvorschlag. Den könnte man abwandeln...

Öhmnöm schrieb:
> Ein LTC2645 macht genau das.

Auch nicht wirklich besser als mit einem RC-Tiefpass, denn das PWM ist 
nunmal nur 5-10% bei 50Hz. Bei höheren Frequenzen wird's besser, viele 
System im Autobereich geben heute 100Hz bzw. 11ms Zyklus ab, da ist man 
dann schon bei 10-20%.
Gut, der LTC hat mit der Referenz usw. wenigstens einen stabilen 
Ausgang, aber trotzdem wenig Messbereich.

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.