Hi Ich experimentiere gerade mit der Servoansteuerung. Dabei stehe ich vor folgendem Problem: Ich möchte nach Erreichen eine Endposition die Versorgungsspannug (GND) am Servo abschalten. Ich lasse es z.B. von 1ms bis 2ms laufen. Also Endausschlag bis Endausschlag. Wenn es sich auf 1ms befindet sende ich einen Impuls von 2ms. Dadurch läuft es aber nicht in die Endstellung bei 2ms sondern bleibt vorher stehen. Es müssen also wiederholt alle 20ms die 2ms Impulse gesendet werden, bis endlich die Endposition erreicht wird. Wie bekomme ich heraus, wie oft ich die Impule senden muß ,bis das Servo eine beliebige Position aucht tatsächlich erreicht hat? Ist irgendwie scheinbar ein großes Problem, da ich die Servois eine Kurve abfahren lassen wollte, die Zielpunkte im 20ms Raster enthält. Die Laufzeit zwischen den Punkten wollte ich als x-faches von 20ms angeben und Zwischenwerte berechnen. Das funktinoniert aber nicht mit wiederholten Impulsen bei großen Impulslängenunterschieden :-( Gruß Thomas
Thomas W. schrieb: > Es müssen also wiederholt alle 20ms die 2ms Impulse > gesendet werden, Das ist das Servo-Signal und völlig korrekt so. http://www.mikrocontroller.net/articles/Modellbauservo_Ansteuerung Thomas W. schrieb: > Wie bekomme ich heraus, wie oft ich die Impule senden muß ,bis das Servo > eine beliebige Position aucht tatsächlich erreicht hat? Die Pulse müssen rund um die Uhr gesendet werden, und zwar so lange, bis das Servo stromlos ist. Thomas W. schrieb: > Ist irgendwie scheinbar ein großes Problem, da ich die Servois eine > Kurve abfahren lassen wollte, die Zielpunkte im 20ms Raster enthält. Das ist kein Problem. Ändere einfach das Nutzsignal (1...2ms-Puls) alle 20ms und gib dieses Signal alle 20ms aus. Davon abgesehen gibt es Servos, die einer zu starken Änderung des Signals nicht immer folgen können. Dann muss sich das Nutzsignal halt langsamer verändern.
Thomas W. schrieb: > Wie bekomme ich heraus, wie oft ich die Impule senden muß ,bis das Servo > eine beliebige Position aucht tatsächlich erreicht hat? wie wärs mit einem endschalter?
Thomas W. schrieb: > Wie bekomme ich heraus, wie oft ich die Impule senden muß ,bis das Servo > eine beliebige Position aucht tatsächlich erreicht hat? Schalter den das Servo betätigt > Ist irgendwie scheinbar ein großes Problem, da ich die Servois eine > Kurve abfahren lassen wollte, die Zielpunkte im 20ms Raster enthält. Die > Laufzeit zwischen den Punkten wollte ich als x-faches von 20ms angeben > und Zwischenwerte berechnen. Das funktinoniert aber nicht mit > wiederholten Impulsen bei großen Impulslängenunterschieden :-( Exakt. Erstes Zwischenziel: Die Pulsgenerierung von den Bahnpunkten trennen. Die Servoansteuerung muss völlig autonom die Servopulse erzeugen können. Wo dann die entsprechenden abzufahrenden Punkte herkommen und welchen Pulszeiten diese entsprechen ist ein davon losgelöstes Problem. Mit einer Verquickung dieser beiden Dinge, ala '5 Pulse mit 1.1ms, danach 7 Pulse 1.15ms' wirst du nicht glücklich werden, weil Servos auch unterschiedlich schnell fahren, je nachdem wie hoch die Versorgungsspannung noch ist (Akkubetrieb) bzw. welche Last sie dabei bewegen müssen. ALso: erst mal eine autonome Pulserzeugung für die Servos machen. Modellbauservo Ansteuerung
Oder ne eigene Halbbrücke und µC ins Servo und das poti auch an den µC. VCC und GND CLK DIO raus aus dem Servo und eine eigene Rgelung. Position über I2C senden und wenn Servo in Position ist dann sendest du das über I2C ein bin in Position.
Uwe schrieb: > Oder ne eigene Halbbrücke und µC ins Servo und das poti auch an den µC. Was glaubst Du, was ein Servo ist? Thomas W. schrieb: > das Servo > eine beliebige Position aucht tatsächlich erreicht hat? Wenn Du das Servo kennst, weisst Du auch dessen Position bei einer ganz bestimmten Pulslänge. Gerade digitale Servos einer bestimmten Baureihe sind untereinander reproduzierbar genau bei der Positionsbestimmung.
Thomas W. schrieb: > Wie bekomme ich heraus, wie oft ich die Impule senden muß ,bis das Servo > > eine beliebige Position aucht tatsächlich erreicht hat? Indem du die Stromaufnahme des Servos per Shunt-Widerstand überwachst und daraus auf die aktuelle Situation schließen kannst. Somit ist keine Änderung des Servos nötig.
Hi Das Problem ist wohl noch nicht ganz klar geworden: Einen Impuls zu senden, bedeutet noch lange nicht, daß das Servo die Position erreicht. Erst weiderholtes Senden, bis das Servo dort angekommen ist, ist nötig. EIn Schalter nutzt garnichts, da die Endposition ja variabel zwischen 1ms und 2ms liegen kann. Karl Heinz Buchegger schrieb: > Erstes Zwischenziel: > Die Pulsgenerierung von den Bahnpunkten trennen. Die Servoansteuerung > muss völlig autonom die Servopulse erzeugen können. Wo dann die > entsprechenden abzufahrenden Punkte herkommen und welchen Pulszeiten > diese entsprechen ist ein davon losgelöstes Problem. > > Mit einer Verquickung dieser beiden Dinge, ala '5 Pulse mit 1.1ms, > danach 7 Pulse 1.15ms' wirst du nicht glücklich werden, weil Servos auch > unterschiedlich schnell fahren, je nachdem wie hoch die > Versorgungsspannung noch ist (Akkubetrieb) bzw. welche Last sie dabei > bewegen müssen. > > > ALso: erst mal eine autonome Pulserzeugung für die Servos machen. > Modellbauservo Ansteuerung Hmm Die autonome Pulsgenerierung habe ich im Prinzip. Wenn ich aber das 20ms Raster nicht für die Servogeschwindigkeit nutzen kann, wie soll ich die dann unabhängig vorgeben? Also Ziel ist z.B. 4 Punkte anzufahren und die Werte und Zeitabstände dazu im EEPROM abzulegen: (IL=Impulslänge) Punkt 1 bei 1ms IL Punkt 2 bei 1,5ms IL Punkt 3 bei 1,5 ms IL Punkt 4 bei 1ms IL Zeit zwischen 1 und 2 = 100ms Zeit zwischen 2 und 3 = 1s Zeit zwischen 3 und 4 = 100ms Wenn ich die Impulslänge nicht linear ändere (also Zwischenwerte berechne), läuft das Servo auch nicht linear, sondern macht Sprünge. Wie triggere ich also die autonome Pulsgenerierung? Gruß Thomas
Thomas W. schrieb: > Wie triggere ich also die autonome Pulsgenerierung? Link lesen. Mit einem Timer die Servopulse erzeugen. Das muss erst mal grundsätzlich unabhängig von allem anderen und autonom ablaufen. > Zeit zwischen 1 und 2 = 100ms das hier kannst du mit Timer machen oder mit _delay_ms (wenn sonst nichts zu tun ist), oder wie du willst. Du kannst auch die 100ms in feinere Stufen aufteilen und das der Pulserzeugung zur Verfügung stellen. Wie du willst. Aber die Servopulserzeugung muss unabhängig für sich alleine die Servopulse erzeugen. Du kommst sonst mit deinem Timing nie auf einen grünen Zweig. Vor allen Dingen dann nicht, wenn dann irgendwann mehrere Servos im Konzert spielen sollen.
Thomas W. schrieb: > Das Problem ist wohl noch nicht ganz klar geworden: > Einen Impuls zu senden, bedeutet noch lange nicht, daß das Servo die > Position erreicht. Erst weiderholtes Senden, bis das Servo dort > angekommen ist, ist nötig. [ ] Du hast Dir die Beschreibung des Servosignals nicht angesehen
> Was glaubst Du, was ein Servo ist?
Im einfachsten fall zei Halbbrücken die an nem Operationsverstärker
hängen, der als Input Nen Soll- und nen Istwert vergleicht (mit nen paar
Cs und Rs und Dioden die das pseudo PWM in nen Analogwert wandeln). Die
Digitalen haben natürlich nen µC statt nen OP.
Also ein servo hat für mich per Definition eine Rückmeldung zu haben.
Modelbauservos haben diese natürlich intern. Da man aber dort nicht
herankommt sind das einfach sche** Servos. Aber man kann seine eigene
Elektronik reinmachen und was anständiges draus machen.
> Hmm > Die autonome Pulsgenerierung habe ich im Prinzip. Dann zeig mal. Aber wenn da kein Timer dafür vorkommt, kannst du es gleich wieder einpacken.
Thomas W. schrieb: > enn ich die Impulslänge nicht linear ändere (also Zwischenwerte > berechne), läuft das Servo auch nicht linear, sondern macht Sprünge. Aber nur in der technischen Auflösung des Servos. Wenn du das vermeiden möchtest müsstest du ein Servo haben bei dem du die Verfahrgeschwindigkeit stellen kannst. Keine Ahnung ob es sowas gibt, sicher nicht im 0815 Modellbaubereich.
Modelbau Servos haben normalerweise sowas wie ne garantierte Stellgeschwindigkeit bei bestimmter Betriebspannung bzw. Winkelgeschwindikkeit oder Maximalzeit für Stellwinkel im Datenblatt.
Thomas W. schrieb: > Die autonome Pulsgenerierung habe ich im Prinzip. Nein. Thomas W. schrieb: > Wenn ich aber das 20ms Raster nicht für die Servogeschwindigkeit nutzen > kann, wie soll ich die dann unabhängig vorgeben? Das Servosignal muss ständig wiederholt werden. Dies kann eine Timer-Interrupt-Serviceroutine erledigen. Auch wenn das Servo steht, muss das Signal gesendet werden, und zwar immer mit derselben Servopulslänge, also der positive Puls irgendwo zwischen 1...2 ms. Indem Du diesen Puls zur Laufzeit variierst, erhältst Du die Laufgeschwindigkeit des Servos. Stell Dir vor, Du sitzt im Auto: Eine flache Kurve fährst Du, indem Du (relativ zur Geschwindigkeit des Fahrzeuges) langsam am Lenkrad drehst. Eine steile Kurve erfordert entsprechend schnelles Drehen am Lenkrad. Drehst Du gar nicht, behält das Fahrzeug die gerade anliegende Kurvenbewegung bei. Trotzdem musst Du das Lenkrad festhalten.
Hi Wenn ich das Auto anhalte, dann kann ich doch aber irgendwann loslassen? Spaß beiseite. Der Vergleich hinkt, weil die Stellgeschwindigkeit der Räder nicht langsamer ist, als mein Impuls am Lenkrad. Bei vielen Schritten funktioniert mein Verfahren ja gut, da das Servo dann 1:1 den Impulsen folgt. Aber je größer die Schrittweite ist, umso schneller dreht das Servo (wie gewünscht), aber es erreicht halt nicht mehr die physikalische Position, die dem EINMALIG generierten Impuls entspricht. Ich werde nochmal weitertesten. Vielleicht nur den letzten Impuls einfach x-mal senden, bevor ich die GND abschalte. Das Abschalten machen übrigens viele, um ein Zittern der Servos bei gehaltener Position zu vermeiden. (Weiche Modellbahn) Impule werden bei mir übrigens per CCP also Timergesteuert erzeugt. Compare Modus. Vergleich mit Timer erzeugt fallende Flanke. Das ist schon ok... Gruß Thomas
Bin ich eigentlich der einzige, der sich so dunkel an einen Frager aus den letzten Tagen erinnert, der Servos mittels _delay_us() ansteuern wollte und diese Pulse entsprechend oft wieder holt hatte? Thomas Wenn du das bist: Das ist ein untaugliches Mittel!
> Vielleicht nur den letzten Impuls einfach x-mal senden, bevor ich > die GND abschalte. Du sollst das Servo überhaupt nicht abschalten! Ein Servo will ständig Pulse haben! > Das Abschalten machen übrigens viele, um ein Zittern der > Servos bei gehaltener Position zu vermeiden. Das ist Quatsch.
Karl Heinz Buchegger schrieb: >> Das Abschalten machen übrigens viele, um ein Zittern der >> Servos bei gehaltener Position zu vermeiden. > > Das ist Quatsch. Um da auszuholen: Wenn ein Servo ruckelt, dann ist entweder das Poti am Ende seiner Lebensdauer oder du hast das Servo in die mechanische Begrenzung (entweder die interne oder eine durch das Gestänge verursachte) gefahren. Da würden sich Modellflieger schön bedanken, wenn ihre Servos ruckeln würden.
Karl Heinz Buchegger schrieb: >> Vielleicht nur den letzten Impuls einfach x-mal senden, bevor ich >> die GND abschalte. > > Du sollst das Servo überhaupt nicht abschalten! > Ein Servo will ständig Pulse haben! > > >> Das Abschalten machen übrigens viele, um ein Zittern der >> Servos bei gehaltener Position zu vermeiden. > > Das ist Quatsch. Karl Heinz hat zu 100% recht! Was ein Servo macht wenn es keine gültigen Signale kriegt ist erst mal völlig undefiniert. Karl Heinz Buchegger schrieb: > Wenn ein Servo ruckelt, dann ist entweder das Poti am Ende seiner > Lebensdauer oder du hast das Servo in die mechanische Begrenzung > (entweder die interne oder eine durch das Gestänge verursachte) > gefahren. Oder er hat einen Jitter programmiert von wegen Benutzung von delay etc.
Thomas W. schrieb: > Das Abschalten machen übrigens viele, um ein Zittern der > Servos bei gehaltener Position zu vermeiden. (Weiche Modellbahn) Wer das macht, hat das Prinzip nicht verstanden. Wenn das Servo seine Position erreicht hat und von einem stehenden Signalpuls gesteuert wird, zittert da gar nichts. Das Servo verbraucht dann auch keinen nennenswerten Strom. Das Problem ist eher, wenn Du das Servo abschaltest, dass Du es irgendwan wieder einschalten musst. Dann geht das Geruckel erst los, weil sich das Servo erst initialisiert und dann versucht, sich auf einen hoffentlich schon angelegten Steuerpuls hin zu bewegen. Fehlt der Steuerpuls, macht das Servo im besten Fall nichts, ungünstigerweise kann es auch voll gegen einen Anschlag laufen. Billige Analog-Servos ruckeln beim Einschalten der Stromversorgung übrigens immer und verbrauchen kurzfristig viel Strom, so dass beim gleichzeitigen Einschalten von mehreren Servos sogar die komplette Stromversorgung einbrechen kann. Das ist ein unschöner Effekt!
Und GND (Ground == Masseleitung) wird auch nicht geschaltet, höchstens Vcc (die Betriebsspannung). Dann kann das Servo aber vom Gestänge (oder was da dran hängt) verstellt werden. Blackbird
Den Impuls kann man schon abschalten, wenn die Endstellung erreicht ist. Digitale Servos behalten meist die Position automatisch, analoge Servos verharren durch die Selbsthemmung des Getriebes in der Stellung. Wenn das nicht der Fall ist dann stimmt der mechanische Aufbau nicht, evtl. eine Untersetzung (Hebel) einbauen. Für den Einsatzfall Modellweiche ist das ok. Zumindest bis 1:87... Wird der Impuls nicht abgeschaltet versucht der Servo evtl. ständig minimale Abweichungen auszugleichen, unnötiger Stromverbrauch. (IN DIESEM ANWENDUNGSFALL) Betriebsspannung zuschalten sollte man erst wenn der Impuls sicher steht, dann hält sich auch das Ruckeln in Grenzen. Abschalten sollte man die Spannung nicht, sonst hat man wieder den Effekt des Ruckelns und vor allem nicht GND abschalten ! Wenn man den Servo mit sich langsam ändernden Positionen ansteuert weiss man auch, wo er sich befindet. Zum Schluß noch ein paar Impuls zusätzlich für die Endposition ausgeben. Hat sich so tausende Male bewährt. Holger
Hitec hatte doch mal spezielle Robotik-Servos, die zusätzlich zum normalen Servo-Signal noch einen Rückkanal mit einer Positionsinformation implementiert hatten. Sowas braucht der unbelehrbare TE ;-)
Holger W. schrieb: > Den Impuls kann man schon abschalten, wenn die Endstellung erreicht ist. > Digitale Servos behalten meist die Position automatisch, analoge Servos > verharren durch die Selbsthemmung des Getriebes in der Stellung. > Wenn das nicht der Fall ist dann stimmt der mechanische Aufbau nicht, > evtl. eine Untersetzung (Hebel) einbauen. > Für den Einsatzfall Modellweiche ist das ok. Zumindest bis 1:87... > Wird der Impuls nicht abgeschaltet versucht der Servo evtl. ständig > minimale Abweichungen auszugleichen, unnötiger Stromverbrauch. (IN > DIESEM ANWENDUNGSFALL) > Betriebsspannung zuschalten sollte man erst wenn der Impuls sicher > steht, dann hält sich auch das Ruckeln in Grenzen. > Abschalten sollte man die Spannung nicht, sonst hat man wieder den > Effekt des Ruckelns und vor allem nicht GND abschalten ! > Wenn man den Servo mit sich langsam ändernden Positionen ansteuert weiss > man auch, wo er sich befindet. Zum Schluß noch ein paar Impuls > zusätzlich für die Endposition ausgeben. > Hat sich so tausende Male bewährt. > > Holger Hi Holger So ist auch mein Stand momentan. Da ruckelt nichts, auch nicht, wenn ich die Servos mit einem 2803 gegen GND ab/an-schalte. Der Impuls liegt sowieso nur an dem Servo an, das gerade in der state machine dran ist. Also Servo langsam stellen lassen und zum Schluß noch ein paar Impuls zusätzlich für die Endposition ausgeben. Das war ja meine Ursprungsfrage, WIE VIELE Impulse noch drauf. Ich werd es halt für den worst case auslegen. Danke für die Antworten Thomas
Ich geb pro Position 2 Impulse aus, in der Endstellung dann noch 50 Impulse. Holger
Knut Ballhause schrieb: > Die Pulse müssen rund um die Uhr gesendet werden, und zwar so lange, bis > das Servo stromlos ist. Das stimmt nicht. Die meisten Servos bleiben einfach da stehen wo sie sind, wenn sie keine Impulse kriegen.
Karl Heinz Buchegger schrieb: >> Das Abschalten machen übrigens viele, um ein Zittern der >> Servos bei gehaltener Position zu vermeiden. > > Das ist Quatsch. Quatsch ist allenfalls die Begründung. Funktionieren tut es jedenfalls.
Modellbauer schrieb: >> Die Pulse müssen rund um die Uhr gesendet werden, und zwar so lange, bis >> das Servo stromlos ist. > > Das stimmt nicht. Die meisten Servos bleiben einfach da stehen Aha, die meisten. Und die anderen? Damit alle Servos funktionieren: 1. Pulse an 2. Servo V+ einschalten (wenn nötig) 3. Pulse variieren, Servo fahren . . . 4. Servo V+ abschalten (wenn nötig) 5. Pulse aus Für dauerhaft eingeschaltete Servos müssen die Pulse immer gesendet werden.
Modellbauer schrieb: > Karl Heinz Buchegger schrieb: >>> Das Abschalten machen übrigens viele, um ein Zittern der >>> Servos bei gehaltener Position zu vermeiden. >> >> Das ist Quatsch. > > Quatsch ist allenfalls die Begründung. Funktionieren tut es jedenfalls. Gibt es Links dazu? Wenn das so verbreitet ist müßte sich dazu ja eine Menge im Netz finden lassen.
Knut Ballhause schrieb: > Für dauerhaft eingeschaltete Servos müssen die Pulse immer gesendet > werden. Nein müssen sie nicht, zumindest mir bekannte Servos behalten die zuletzt eingestellte Position wenn der Impuls ausbleibt.
Holger W. schrieb: > Knut Ballhause schrieb: > >> Für dauerhaft eingeschaltete Servos müssen die Pulse immer gesendet >> werden. > > Nein müssen sie nicht, zumindest mir bekannte Servos behalten die > zuletzt eingestellte Position wenn der Impuls ausbleibt. Das gilt vielleicht für ein paar Digitalservos. Ein analoges Servo wird a.) Kraftlos und b.) wird in den meisten Fällen Zuckungen kriegen. gruß cyblord
Holger W. schrieb: > Ich geb pro Position 2 Impulse aus, in der Endstellung dann noch 50 > Impulse. > > Holger Hi Ok, dann hast Du also 40ms Abstände. 50 * 20ms am Ende sind 2s, bevor das Servo wieder zurückgestellt werden kann. Das sollte reichen... 25 würden sicher auch gehen. Gruß Thomas
cyblord ---- schrieb: > Das gilt vielleicht für ein paar Digitalservos. Ein analoges Servo wird > a.) Kraftlos und b.) wird in den meisten Fällen Zuckungen kriegen. kraftlos ja,da steht aber die Selbsthemmung des Getriebes dagegen, Zuckungen gibt es nicht. Und damit klinke ich mich aus der Diskussion um DIESEN Punkt aus. Holger Thomas: es kann eher wieder elektrisch zurückgestellt werden, ich muß ja nicht warten bis die Impulse alle gesendet wurden 1 Sekunde, pro Zwischenposition 2 Impulse, in der Endstellung dann nur 50
Übrigens, wenn man das Steuersignal abschaltet, bleiben die Servos ruhig. Eine Kraft, die das Haltemoment des Getriebes+Motors überwindet habe ich auf der Modellbahn auch nicht. Zuckungen kommen durch Einstreuungen auf den Zuleitungen zustande. Im Modellflugzeug versucht man sowas mit Ferritkernen abzufangen. Bei der Moba schaltet man einfach die Versorgungsspannung ab, egal ob GND oder Vss. Dann kann nichts zucken. Einschaltzucken habe ich noch nicht festgestellt, wenn man es richtig macht (Reihenfolge und Totzeiten einhält). Gruß Thomas
Typisches "Blackbox"-Denken, an ein paar Beispielen verifiziert und zum Gesetz erhoben. Ich bin raus. Blackbird
Blackbird schrieb: > Typisches "Blackbox"-Denken, an ein paar Beispielen verifiziert und zum > Gesetz erhoben. Jepp. Vor allem entzieht sich mir der Grund warum man die Servos nicht dauerhaft ansteuern sollte. Ausser: Thomas W. schrieb: > Der Impuls liegt sowieso nur an dem Servo an, das > gerade in der state machine dran ist. das Problem liegt in an mangelden Programmierkenntnissen alle Servos dauerhaft und jitterfrei mit Impulsen zu versorgen.
Udo Schmitt schrieb: > das Problem liegt in an mangelden Programmierkenntnissen alle Servos > dauerhaft und jitterfrei mit Impulsen zu versorgen. Jawoll, sehe ich auch so.
Meiner Meinung nach geht ihr mit dem TE ein bisschen (zu) hart ins Gericht. Der TE hat von CCP gesprochen, womit er vermutlich die die Compare/Capture/PWM Einheit eines PIC meint. http://ww1.microchip.com/downloads/en/devicedoc/31014a.pdf Es gibt also keine Gründe davon auszugehen dass er mangels Programmierkenntnissen unter Jitter leidet. Ich kenne mich mit PICs nicht aus, aber ich vermute mal dass man auf diesem Wege auch zu einem Interrupt alle 20ms kommen kann. Damit kann man dann auch ohne Probleme und schön synchron bei jedem Puls die Länge anpassen, falls man einen definierten Gradienten fahren will. Zumindest bei einem AVR ginge das ohne Probleme. Mehrkanälige Systeme sind ev. geringfügig komplizierter. Dass ein Servo bei Verlust der Pulse einfach nur sein Moment verliert, deckt sich auch mit meinen (bescheidenen) Erfahrungen. Ich habe den Eindruck dass zumindest billige analoge Servos bei jedem Puls die Pulslänge mit dem Signal vom Poti vergleichen und dann entsprechend einen kurzen Puls auf den Stellmotor geben. Wenn man die PWM Frequenz (aber nicht die Pulslänge) variiert, ändert sich damit auch das Moment und damit die Geschwindigkeit des Servos. Bei derartigen Servohacks muss man sich halt im Klaren darüber sein dass man sich außerhalb der vereinbarten Konvention bewegt. Was ein bestimmter Servo letztendlich macht ist daher implementierungsabhängig. Der Servo ist dann u.U. nicht mehr beliebig austauschbar. Ich habe mal vor einer Weile die Erfahrung gemacht dass Servos durchaus zittern. Das war nicht sichtbar (oder zumindest nicht gut) aber deutlich hörbar. Dass ein Servo in diesem Zustand auch unnötig viel Strom zieht, liegt da nahe. Die Pulsquelle war damals ein Infineon 80C537 und die Pulse wurden per Hardware (Compare Capture Unit) erzeugt. Der Takt kam von einem Quarz. Anders gesagt, der Jitter war es wohl nicht. Nebenbei bemerkt war das Zittern auf gewissen Stellungen ausgeprägter als bei anderen. Einen offensichtlichen Grund dafür habe ich damals nicht gefunden. Der Servo war nicht das Gelbe vom Ei, für eine Weiche hätte er aber gereicht - für Kunstflug in einem Helikopter eher nicht. Reinhard
Hi Reinhard. So siehts aus. Und bei ca. 120 Servos unter der Moba Anlage wird es interessant. Du hast recht, ich nutze das Capture Compare Modul des PIC 18F2620. Die 4 Servos werden alle alle 4ms auf den CCP Ausgang geschaltet, der dann eine interruptgesteuerte Impulslänge erhält. Alles funtioniert inzwischen perfekt. Ich schicke jetzt am Ende 25 Impulse mit der Endposition raus. Ich kann die 4 Servos jetzt unabhängig auf 8 unterschiedlichen Kurven (4hin 4zurück) mit beliebig vielen Positionen und Zeitintervallen steuern. Auch meine Entkuppler drücke ich damit hoch. Die Servos sind schon austauschbar, da ich die Software anpassen kann über Parameter, die im EEPROM liegen. Gruß Thomas
Ich hab nur eine Bitte. Wenn du das nächste mal Probleme mit einer Servoansteuerung hast, sag bitte gleich, dass es für die Modellbahn ist und ihr ganz eigene Vorstellungen davon habt, wie man ein Servo ansteuern sollte. Dann halt ich mich raus.
Mal interessehalber: Was bringt das eigentlich wenn man Servos für Entkuppler und statt Weichenstellantriebe nutzt?
Servo als Weichenstellantrieb: - "relativ" kostengünstig - langsame Bewegung - kraftvoll - sicher - leise und nicht zu vergessen den Spaß am programmieren
Udo Schmitt schrieb: > Was bringt das eigentlich wenn man Servos für Entkuppler und statt > Weichenstellantriebe nutzt? Sieht einfach echt aus. Man kann Servos auch so fahren, dass sie wie reale Mechanik nachfedern :-)
Ich habe gerade auch dieselbe Fragestellung gehabt, weil ich das Servo so schnell wie möglich die Positionen abfahren lassen möchte. Ich hab dann mal bei dem SG90 Micro Servo 1 Ohm in die Masseleitung gehängt und den Strom gemessen. Wenn das Servo seine Position erreicht hat, ist der Strom (ca. 200mA) während der 20ms mehr als 15 ms aus, der Rest ist das berühmte Zittern bei den Billigteilen. Wenn man nicht so exakt sein muss reicht es auch, die erste Stromlücke mit mehr als 11-13 ms zu detektieren.
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.