PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fernbedienung: Puls>>Gleichspannung



Baui
12.02.2005, 10:01
Moin,
ich habe eine Frage zu einer Modellbaufernbedienung.
Wie kann ich den variablen +Puls in eine proportionale Gleichspannung umwandeln.
Mit einem einfachen Kondensator wie beim PWM geht das nicht, da das Pauseverhältnis sich nicht ändert. Es sind halt immer 20ms Pause und dann kommt ein 1-2ms langer Puls (und den möchte ich in die
Gleichspannung wandeln).

Der Zweck der Sache ist, das man eine Gleichspannung besser (geanuer) einlesen (mit AVR-Bascom) kann, als einen Puls von 2ms Länge. Diesen Puls/Gleichspannungswert möchte ich dann entsprechend auswerten und bestimmte Aktionen durchführen.

Ich habe es mal mit dem Pulsin() Befehl von Bascom versucht, jedoch nie wirklich gute Ergebnisse erzielt, da der Puls (in Normalstellung der Fernbedienung) immer zwischen 112-115 schwankte. Wenn der Prozesser dann noch mehr zu tun hat war die Schwankung sogar noch größer.

Hat jemand von euch eine Lösung wie ich das lösen könnte?

Gruß
Baui

Hellmut
12.02.2005, 14:27
Hallo Baui

Toll das sich endlich jemand meldet der ebenfalls das Problem der Dekodierung der Steuersignale einer Funkfernsteuerung angeht.

Nach meinen bisherigen Recherchen, und dazu hat es hier auch schon ein thread vor einiger Zeit gegeben, gibt es 3 Techniken zur Messung der Impulsllänge. Im Buch von Walter zun den AVR´s sind 2 davon beschrieben, auf eine dritte wird im thread hier im Forum bezug genommen.

Jetzt kommst du mit der interessanten Idee der Umwandlung des Impulses in einen diskreten Spannungswert. Mal sehen ob hier jemand was einfällt.

Allerdings sehe ich bei diesem Vorgehen ein möglicher Weise fatales Problem. Ich habe hier auch schon auf einen Internet-Link verwiesen der sehr anschaulich und detailliert die Erzeugung der Servo-Signale und ihre Auswertung beschreibt. Wenn ich z.B. einen Funkempfänger mit 8 Servo-Steckplätzen habe, so werden an den einzelnen Signalleitungen der Steckplätze die Impulse, zwischen 1-2ms innerhalb des 20ms-Zeitfensters nacheinander angelegt. Bei meinen bisherigen Überlegungen habe ich daher auch geplant jeweils nach Erkennung der Impulslänge an einem Servo-Steckplatz an den Port des uC den nächsten Steckplatz anzulegen. 8 Steckplätze mit 1-2ms langen Impulsen ergibt eine Summe von mindestens 8 bis16ms. Die Auswertung der Signale und Weiterleitung über I2C, sowie sonstige Verwaltungsaufgaben des uC haben also knapp 4ms alle 20ms Zeit zur Verfügung. Ich plane daher mega8 uC einzusetzen und diese in der Anzahl um die 8 Ports des Empfängers sicher auswerten zu können. Viel mehr sonst wird da garnicht möglich sein. Kummer macht mir auch die Auslastung des I2C Busses.

Wie soll also ein Wandler die Impulse in einen stabilen DC-Spannungswert umsetzen. Ausser vielleicht, indem du jeden Port an einen analog Port anschliessen tust und der DC Wert die Integration der Leistung über die 20ms wiedergibt. Nur so Gedanken. Aber die Genauigkeit deiner Messung könnte doch hinreichend sein?

JanB
12.02.2005, 17:08
Hallo,
Guck mal hier:

http://www.avr-asm-tutorial.net/avr_de/remote.html

Gruß Jan

Baui
12.02.2005, 22:06
moin,
erstmal danke für eure antworten. Wies aussieht lässt sich das mit einer analogen Spannung gar nicht (wenn nur mit viel Aufwand) realisieren.
Hmm dann muss ich wohl einen Prozi nur für die Auswertung dieser Signale opfern.
Naja vielleicht finde ich ja noch ne Schaltung im Netz die ohne einen Prozi auskommt.
Freue mich natürlich trotzdem über jede weitere Antwort.


Gruß
Baui

JanB
12.02.2005, 23:02
Hi Baui,
es geht schon, wie du ursprünglich angenommen hast, mit einem RC-Glied.
Der Puls, er alle 20ms kommt ist je nach Wert zwischen 1ms und 2ms lang.
Damit kannst du ein RC-Glied mit einem Entadewiderstand parallel, über eine Diode speisen.
Die Spannung, die sich dann einstellt, kannst du hochohmig messen.

Sowas findest du bei einfachen "Schaltern" und Fahrtreglern im Modellbaubereich.

Ist aber nicht besonders präzise.
Entweder du machst die Zeitkonstante des RC-Gliedes relativ hoch,
dann wird die Sache langsam, d.h. Änderungen das Fernsteuersignales
wirken sich nur langsam aus,
oder du machst die Zeitkonstante klein, dann wird die Spannung
ständig anschwellen und abfallen und wirst nur ungenau messen.
Du müsstest deine Messung mit dem Impuls synchronisieren.
Dann köntest du genau und schnell sein.
Wenn du das Signal paktisch immer zum gleichen Zeitpunkt relativ zum Impuls abtastest.

Gruß Jan

NumberFive
13.02.2005, 11:59
mir kommt da gerade eine Idee vielleicht habe ich uach das probbem
nicht verstanden aber trozdem. Es gibt flugtrainer für den PC
da kommt der empfänger an die RS232. und der rechner simuliert
das fluggerät. wenn du das teil in den truck ein baust könntest du per
rs232 die Fernsteuer befehle decodieren.

zb:

http://www.virtualrc.com/static/description/adapter2.gif

http://www.rc-sim.de/art_engine/article.php?article=109&PHPSESSID=97bf0652245767800c57da99dedbce87

leider habe ich nur noch usb gefunden.

Baui
15.02.2005, 10:15
moin,
danke für eure weitere Mühe.
@Jan: ja das mit der gleichzeitigen Abtastung hab ich auch schon angedacht, aber dann hat der µC ja immer nur 20ms zum rechnen bzw regeln von anderenAufgaben. Das ist bei mir eindeutig zu wenig. Aber vielleicht kann man auch ohne Synchronisation einen genaueren Wert erreichen, wenn man zwei Werte einliest, diese Mittelt und dann erst wieder für eine bestimmt Zeit einer anderen Aufgabe zuwendet. Ich werde da einfach noch mal ein bisschen probieren.

@numberfive: das ist auch keine schlechte Idee. Aber ich habe leider meine SChnittstellen der Controller schon für den Bus belegt und dieses zusätzliche Signal würde den glaube ich lahm legen grade aufgrund der häufigen Folge der Pulse. Da gäb es dann ja vielleicht auch noch die möglichkeit ein zusätzliches Soft UART zu bentuzen, aber dann bin ich natürlich wieder beim thema geschwindigkeit.

Ich werde euch mal berichten wenn ich in dem Thema weiter bin
erstmal besten dank

Gruß
Baui

JanB
15.02.2005, 10:26
hat der µC ja immer nur 20ms zum rechnen bzw regeln
Du kanns ja auch nur jeden zweiten oder dritten Impuls mitnehmen.
Dann hast 40ms oder 60ms oder mehr. Wie die willst.

Gruß Jan