Aus RC Ferbedienung PWM signal auslesen

Gast #1993779
Lesenswert?

Hi,
hab hier nen Problem, ich hab ne RC - Fernbedieung aus dem Modelbau und 
mit ihr möchte ich Funktionen über meinen ATMega ausführen lassen.
Die Ferbedienung erzeugt PWM Signale wobei die High zeit etwa 1-2ms 
beträgt und die Periode ca 20ms ausmacht.
Ich habe versucht die signale einfach über nen Analogeingang 
aufzunehmen, das ging leider nicht.

Hat das von euch schon mal jemand gemacht? Muss ich das Signal 
ersteinmal glätten oder irgendwie anders abfragen?

Für hilfe wäre ich sehr Dankbar!

MFG Christoph
Gast #1993833
Lesenswert?

Das dauert weniger lange als einen Analoseingang einlesen.

Timer so einstellen, dass er in 20ms nicht überläuft
Das RC Signal auf einen Interrupteingang
Bei steigender Flanke Timer auf 0 setzen
Bei fallender Flanke Timerwert in Variable speichern
Gast #1993878
Lesenswert?

Mit timern und Interups ist das nicht das Problem, aber ich dachte immer 
das das mit den Ints zu viel Systemresourcen auffrist?!? Wenn ich mich 
täusche dann mach ich das mit ints nur die Hardware habe ich so 
aufgebaut das ich die Analogen eingänge noch frei hab, muss dann alles 
umbasteln...
Gast #1993892
Lesenswert?

Also bei mir fressen andere Dinge Systemleistung im µC, in einer 
bestimmten Zeit einen Timerwert zu speichern ist nun nicht wirklich das 
Ding, lastet einen Atmega8 und Co nicht mal zu (gefühltem) 1% aus.
#1993904
Lesenswert?

Christoph schrieb:
> Mit timern und Interups ist das nicht das Problem, aber ich dachte immer
> das das mit den Ints zu viel Systemresourcen auffrist?!?

Noch schneller und einfacher als mit Interrupts ist nur ganz schwer 
möglich. Mit dem Capture Interrupt vom Timer 1 ist es geradezu ein 
Kinderspiel, solange es nur um 1 Servosignal geht.
Prozessorauslastung: irgendwo bei vielleicht Zehntel-Prozent. 
Wahrscheinlich sogar noch viel weniger.
Gast #1993919
Lesenswert?

ja aber ich brauch nachher 6 Kanäle :-(
hab ja auch schon an den ICP eingang gedacht, nur wohin mit den anderen 
5?
und hab nur noch den einen Timer Frei...
Hab schon überlegt das mit dem ICP und ner Hardwarevorschaltung zu 
machen um die nacheinander abzufragen...
Aber naja mal schauen wie ich weiter komme

Danke auf jeden Fall schon mal!
#1993962
Lesenswert?

Christoph schrieb:
> Mit timern und Interups ist das nicht das Problem, aber ich dachte immer
> das das mit den Ints zu viel Systemresourcen auffrist?!?

Man sollte bei Überlegungen auch immer den Umkehrschluss mit bedenken. 
Oder meinst du, dass man in Mikrocontroller mit Absicht Features einbaut 
die bremsen ? Ich möchte dir ebenfalls nahelegen dich mit dem 
AVR-Tutorial hier zu beschäftigen. Das sind einfach elementarste 
Grundlagen. Wenn man sowas schon nicht beherrscht dann kommt am Ende 
sowieso nichts akzeptables raus. Das ist wie wenn ich Eigenwerte eine 
Matrix bestimmen möchte aber 1+2 nicht ausrechenn kann ...

Christoph schrieb:
> Wenn ich mich
> täusche dann mach ich das mit ints nur die Hardware habe ich so
> aufgebaut das ich die Analogen eingänge noch frei hab, muss dann alles
> umbasteln...

Jeder analoge Eingang kann auch als digitaler Eingang verwendet werden 
... genauso eine Grundlage. Dazu müsste man natürlich wissen wie ein 
analoger Eingang eigentlich aussieht. Nachdem du das Tutorial aber nicht 
gemacht hast weißt du das offensichtlich auch nicht.

Christoph schrieb:
> hab ja auch schon an den ICP eingang gedacht, nur wohin mit den anderen
> 5?

Stichwort: multiplexen

Christoph schrieb:
> Ja aber das benötigt soviele Systemrecourcen und bremst mir den Rest
> aus...

Was musst du denn noch so groß machen ? Ich glaube du unterschätzt die 
Leistungsfähigkeit der Microcontroller.

Sag mal was du sonst noch machen musst ...
Gast #1993990
Lesenswert?

Der µC steuert nebenbei noch die 18 Servos für die Bewegung und die 3 
Servos für den kopf, habe das Programm schon zusammen gequetscht das die 
Servos noch schnell genug saubere Signale bekommen. Das man einen 
Analogen auch als normalen I/O nutzen kann ist mir schon klar.

Entschuldige bitte das ich nicht die weitsicht hatte das die 
Ferbedienung auch nur PWM's ausgibt. Aber das ist einfach die neue 
ausbaustufe.

An das multiplexen habe ich auch schon gedacht und was anderes wird mir 
wohl nicht über bleiben...

Schönen abend noch :-)
Gast #1993995
Lesenswert?

Mehrere (alle) Känäle eines RC-Empfängers per µC überwachen taucht immer 
wieder mal im Forum auf. Ein paar Beispiele:

Beitrag "4 RC-Empfängersignale mit µC messen"
Beitrag "RC Summensignal erzeugen aus 6 Kanälen (Modellbau)"

Ich würde sagen, die klassische Lösung zu der Fragestellung heißt 
Pin-Change-Interrupt. "Summensignal" ist ein gutes Suchwort zum selber 
stöbern.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren