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
öhmmm wäre durchaus möglich, aber warum zeigt dann das Voltmeter auch nur 0.3V maximal an?
habs auch schon mit nem pullup am Signalpin probiert, hat aber auch nix gebracht..
> 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?
Ääääää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!
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..
Hast Du die Versorgungsspannung (Servo, Empfänger) mal nachgemessen?
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
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
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 ...
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.
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???
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 ;-)
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!
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
.... 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
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 ;-)
"... 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
...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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.