www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Modellbau empfängersignal Problem


Autor: Grobi_g (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche mit einem µc die signale meines modellbau empfängers (die 
zu den Servos etc. gehen) auszulesen und entsprechend an einem 
Motorsteuerung etc. auszugeben. Die µc Seite stellt nicht das Problem da 
(möchte einen Tiny2313 benutzen da dieser bis zu 16 IO als interrupt 
konfigurieren kann, was perfekt zum abgreifen der Steuersignale ist, 4 
PWM pins für ne Motosteuerung hat, nochn timer dabei und die sache ist 
gegessen). Probleme macht mir das Steuersignal des Empfängers selbst, 
habe erst nur versucht mit nem normalne voltmeter die spannung zu messen 
ob da auch ein schöner TTL pegel rauskommt aber die ging nur bis auf 
0.3V hoch was mir doch sehr komisch erschien da normale Servos ohne 
probleme mit dem empfänger funktionieren und soweit ich weiss diese 
einen TTL pegel zur steuerung brauchen. Dann dachte ich das ich wegen 
des PPM signals nich richtig messen könnte und habs mit nem Oszi 
probiert, auch da wieder maximal 0.3V aber das PPM Signal stimmte. Als 
Masse hab ich entweder den Minuspol der spannungsquelle oder den 
Minuspol der spannungsversorgung am Servostecker genommen keine 
Änderung, nen richtigen Plan wie ich jetzt weitermachen soll hab ich 
nich mehr, vielleicht hat jemand schonmal mit sowas rumexperimentiert 
und kann mir nen tipp geben wie ich das nun hinbekommen könnte...

Achja die Fernsteuerung ist ein älteres Modell.. Westfalia Technica 
Commander 2002 40 MHz mit dem entsprechenden Empfänger APR-5C hab schon 
etliche Stunden mit google verbraucht um n etwas detailierteres 
datenblatt als das was beiliegt zu finden weil da so gut wie nix drin 
steht, aber fehlanzeige.


Grobi

Autor: Feadi F. (feadi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Tastkopf steht nicht zufällig auf 1:10 ?

Gruß, Feadi

Autor: Grobi_G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
öhmmm wäre durchaus möglich, aber warum zeigt dann das Voltmeter auch 
nur 0.3V maximal an?

Autor: Grobi_G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habs auch schon mit nem pullup am Signalpin probiert, hat aber auch nix 
gebracht..

Autor: Feadi F. (feadi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> aber warum zeigt dann das Voltmeter auch nur 0.3V maximal an?
Ich meine ein Voltmeter ist nicht geeignet um ein Servosignal zu messen.

Wenn das Servo richtig funktioniert, wird warscheinlich die Messung 
falsch sein. Aber miss mal die Versorgungsspannung am Servo. Probier mal 
die Masseverbindung am Tastkopf nicht anzuschliessen, verändert sich 
dabei das Oszillogram?

Autor: Modellbauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Äääääähhhh..... habe ich das richtig verstanden?? Du mist mit einem 
Digitalvoltmeter die Impulsausgänge des Empfängers?? Dann kannst Du nur 
M... messen, weil diese Ausgänge Pulsdauermoduliert sind! D.h. Du liesst 
einen Impuls von 1-2 ms Länge (abhängig von der Knüppelstellung des 
Senders), der sich alle 20ms wiederrholt. Dein DVM mittelt diesen Wert 
natürlich und dann kommen solche Sachen bei raus. Für sowas solltest Du 
sinnvollerweise ein Oszi verwenden!

Autor: Modellbauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab da grad' noch was gefunden. Guck Dir mal diesen Thread an:

Beitrag "Servo am Mikrocontroller"

Autor: Grobi_G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich beim oszi masse nicht anschließe liegt die spannung bei ca. 
2.irgendwas V und das signal wird ziehmlich verzerrt, wirft n Bogen und 
hat kleine einbrüche zwischendurch. das kann nich gut sein.. das die 
Messung mit dem Voltmeter nich korrekt sein kann dachte ich mir schon. 
Habe das ganze an nen externen interrupt pin von nem mega32 gehängt (den 
2313 hate ich noch nicht) und empfänger sowie controller über den selben 
7805 versorgt also hatten die schonmal gemeinsame masse. Aber es sah so 
aus als wenn der Interrupt nur ausgelöst wurde wenn sich der 
steuerknüppel in einer extrem position befand dann war die spannung n 
bischen höher was wohl fürn n high signal ausgereicht hat, aber das traf 
auch nur sporadisch zu....  das der Empfänger zu wenig spannung 
abbekommen hat kann auch nich sein, konnte dabei noch n servo steuern 
(was aber nicht gut is da der servo zuviel strom zieht (der 7805 wurde 
ganz schön warm)... weiss langsam echt nich mehr weiter..

Autor: Feadi F. (feadi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du die Versorgungsspannung (Servo, Empfänger) mal nachgemessen?

Autor: Grobi_G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beitrag "Servo am Mikrocontroller"
ok den thread hatte ich auch schon mal gelesen.. wie das alles mit dem 
interrupt und dem timer funzt is mir bekannt, aber hate wohl die stelle 
überlesen wo stand man sollte doch nen 1kohm widerstand zwischen die 
signalleitung hängen, das werd ich später mal probieren und dann 
berichten... aber vielen dank schonmal für die schnellen antworten

Autor: Grobi_G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
versorgungsspannung am servo sind die eingespeisten 5V

Autor: Grobi_g (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm auch der 1Kohm widerstand inner Signalleitung hat nix gebracht, aber 
habe festgestellt je nach Knüppelstellung bewegt sich die Spannung 
zwischen 0.19 - 0.32V

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke eher du solltest dich bei dem empfänger auf das komplette 
PPM-Signal nivea begeben, d.h. vorm decode-chip (nach empfänger) das 
PPM-Signal abgreifen und dann per yC deine maximal 9 servo-ausgänge PWM 
moduliert weitergeben ... wenn ich es richtig verstehe nimmst du 
momentan das PWM-Signal von jedem servo-ausgang ab (?)

wenn du einmal das PPM-Signal hast (ist mit osz recht einfach zu finden) 
ist es dir egal wieviel volt (dme servo überigens auch) entstehen, 
lo/!lo zählt,  mehr nicht, die zeit dazwischen (0,5-1,5ms) ist der 
servoweg, kann nun entweder 1:1 an den servo geben oder idealerweise per 
yC an den servo geschickt werden, da erst in 20ms das nächste signal 
kommt ist es ratsam aller 5ms  den impuls an das servo zu senden, somit 
kann es schneller vergleichen und schneller nachstellen, ich denke du 
willst schiff/auto mit betreiben, das es das vielleicht nicht ganz so 
wichtig, aber ich fliege und da macht bei präzisen 3d-kunstflug ein 
augenblick (10ms) viel aus, habe ich festgestellt ... btw: digitalservos 
machen das nicht anders, die merken sich das PWM signal und stellen 
immer wieder nach bis ein neues signal kommt ... analog-servos kommen 
nur in den vergleich rein wenn was ankommt ... und ob 0.3 oder 1V das 
ist dem servo egal, google einfach mal nach der funktionsweise von 
servos, dann weisst du wieso ... rihtig heisst es 0 oder nicht 0 ...

Autor: Grobi_g (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen dank, das hilft mir auf jedenfall schonmal weiter, werde 
versuchen das PPM direkt abzugreifen.
Ja ich wollte halt jeden kanal einzeln von den servo buchsen am 
Empfänger abgreifen, weil am Empfänger rumlöten wollt ich eigentlich 
nicht, aber wenns nich anders geht dann halt so.
Das ganze soll in einen E-Heli der mir mal abgestürzt ist und den ich 
wieder flott machen möchte brauch nur 3 Motoren damit zu steuern 2 haupt 
(doppel rotor Koaxial heli) und weil die Taumelscheibenanlenkung sowie 
die komplette steuerelektronik des helis schrott ist, ein dritter 
kleiner motor der ihn nach vorn und hinten neigen soll. Nach Links und 
Rechts rollen fällt dann halt weg, aber er sollte trotzdem noch 
steuerbar sein durch die gegeläufigen hauptrotoren.

Autor: Grobi_g (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder kennt einer ne einfach möglichkeit um aus unter 0.3V nen TTL pegel 
zu machen vielleicht über nen transistor oder gibts da nen chip für???

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mhh .. kannst auch direkt den servo-impuls nehmen, geht schon, je 
nachdem wie der empfänger zugänglich ist, für dein vorhaben ist 
vermutlich der servo ausgang besser ...

ansonsten ist der rest recht "einfach" die 2 motoren musst du halt mit 
strom versorgen, je nachdem wieviel "gas" du gibst, wobei einer linear, 
der andere mit einer gaskurve gesteuert werden muss, da drehzahlabhäng 
getrimmt werden muss, die trimmung selbst kommt ja auf dem "seitenruder" 
gier heisst das glaube beim heli, die mischst du einfach in einen motor, 
bzw. generell seite, damit kannst du links/rechts fliegen, willst du 
noch vor/zurück geht das normalerweise über das nick servo, und roll 
servo sollte auch sein, aber wenn die taumelscheibe auch im eimer ist 
:-O
dann hinten ein motor dran (horizontal) und über drehzahl am besten 
links/rechtslauf, da die doppelrotoern sich ja aufheben vor/zurück, 
allerdings weiss ich nicht ob du dann noch das "koax-feeling" hast, das 
schöne dort ist ja alle hebel los und der bleibt stehen ...

das ganze musst du aber über ordentlich FET's jagen, pwm alleine schaft 
der AT nicht, die motoren ziehen ordentlich strom!

oder halt regler dahinter, wobei ein neuer LAMA V2 dann warscheinlich 
billiger wird ...


ansonsten 3 eingänge, 3 ausgänge, und 2 mischer, dann passt das ;-)

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaub nur die brauchst so oder so keinen TTL-Pegel, ansonsten legst 
du das ganze auf einen PNP transistor der schaltet bei 0 !0 und musste 
halt 0 durchschleifen, aber brauchst nicht, ich denke direkt in den 
atmel rein damit reicht völlig!

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann es sein, dass dein Oszi auf AC-Messung steht?
Egal!
Der Impuls ist zwischen ~1ms und ~2ms lang. Je nach Hersteller variieren 
die Werte etwas. Bei etwa 1,5ms ist die Mittelstellung.
Mehr braucht man eigentlich nicht zu wissen.
Bei einer PPM-Fernsteuerung (preiswerte Variante) werden die Impulse der 
Reihe nach an die Empfänger-Ausgänge geleitet - bei PCM-empfänger werden 
sie IMHO gleichzeitig ausgegeben.
Guck mal auf Hannes Lux Seite. Da hat er ein paar schöne Beispiele zu 
dem Thema (so, jetzt habe ich mal Werbung für Hannes gemacht! [Erster!])
http://www.hanneslux.de

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> [Erster!]

;-)

Gruß an die Küste...

...

Autor: Grobi_g (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.... sooo ich hab grad alles nochmal zusammengebaut n kleines 
Testprogramm gemacht, die Signalleitung an externen Interrupt, diesen 
auf rising edge eingestellt und sobald er ausgelöst wird  entsprechend 
dann auf falling edge oder rising edge umschalten je nachdem was er 
vorher war, wenn er bei falling edge triggert, was ja das ende des 
Servosignals bedeuten würde, hab ich ihn einfach ne Varibale erhöhen 
lassen, die dann über n seriellenport raus und siehe da wenn meine 
Fernbedienung einngeschaltet ist wird der Interrupt jetzt auf einmal 
getriggert und das auch dementsprechend oft wie es sich gehört, wenn sie 
aus ist dann wird er ca. 1 oder 2 mal pro Sekunde nur getriggert was 
aber wohl normal ist da sich der Empfänger wohl abschaltet wenn kein 
Sendersignal mehr da ist.
Also es funktioniert.... aber keine ahnung warum jetzt auf einmal! Wenns 
morgen immernoch geht kann ich ja endlich mit dem rest weitermachen.

Btw. für die Steuerung der 2 hauptmotoren wollte ich ein erzeugtes PWM 
signal auf einen 2n2222 legen der mir dann die logigspannung(5V) direkt 
auf nen IRF540N Fet schaltet (sollte dann entsprechend genug strom sein 
um den Fet zu schalten, Spannunsmäßig schaltet der wohl schon ob 3V) 
welcher dann die Akkuspannung direkt auf die Motoren schaltet. Für den 
NickRotor hinten wollte ich einfach nen L293D verwenden, der sollte für 
den kleinen Motor (Servomotor des abgestürzten Helis, die Sersos 
bestanden nur aus so einem Minimotor und nem poti) ausreichen um ihn 
drehzahlgesteuert links, rechts laufen lassen zu können. Das könnte doch 
soweit funktionieren, oder hat da jemand einwände?`


Vielen Dank für eure viele und schnelle Hilfe!!!!!!!!!!
Grobi

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du einen koax-heli hast, brauchst du keinen motor hinten. da du 
links/rechts   durch drehzahlunterschiede der 2 hauptrotoren 
bewerkstelligst, ich würde den hinteren motor gleich wie einen 
hauptrotoer einbauen, damit kannst du dann vor/zurück, wenn du keine 
taumelscheibe hast, ansonsten sind 2 servo besser als alles andere, und 
ne taumelscheibe rein ;-)

Autor: Blackbird (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"... Also es funktioniert.... aber keine ahnung warum jetzt auf einmal! 
..."

Naja, wenn der Oszi-Tastkopf einen 50 Ohm-Eingang hatte, bricht halt das 
Empfängerausgangssignal auf ganz kleine Spannungswerte zusammen.

Deine µC-Schaltung ist hochohmiger, wie die Servoeingänge auch. Deshalb 
funktionierts jetzt.

Das wäre meine Vermutung.

Blackbird

Autor: Grobi_G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...schon klar mit dem heckmotor das der so ausgerichtet werden muss wie 
die hauptrotoren damit das nicken auch funktioniert sonst würde die 
ganze koaxgeschichte auch keinen sinn mehr machen. Wollte nur sicher 
gehen bovor ich alles komplet zusammenbaue das die motorsteuerung auch 
so funktionieren kann mit den Fets usw...

Danke

Grobi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.