PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo resetet Controller



kif
26.10.2010, 15:24
Hey,

ich habe an meinem Probot einen Servo angeschlossen. Das Programm ist kein Problem. Jedoch resetet der Controller jedes mal wenn ich den Servo ansteuere. Die Folge ist, das ich zwar eine Position ansteuern kann, der Servo sich aber nur kurz bewegt und mehrere "Pausen" einlegen muss bis er am Ziel ankommt. Nun meine Frage, weiß jemand wie ich das vermeiden kann?

Mfg Kif

BMS
26.10.2010, 15:38
Hallo,

die Resets können unterschiedliche Ursachen haben.
- Messe mal den Innenwiderstand deines Akkus, bei Belastung darf die Spannung nicht zu weit einbrechen
- Hast du die Betriebsspannung ausreichend gepuffert/abgeblockt mit Keramikkondensatoren UND Elkos (welche Kapazität?).
- Du könntest in die Versorgungsleitung des Servos ein LC-Tiefpassfilter einbauen, um die Rückwirkungen auf die Versorgung zu reduzieren. Der Servo würde dann bei Stromspitzen seine Energie hpts. aus dem Elko beziehen.
http://www.pentodepress.com/home/amplifier-calculators/LC-ripple-filter/LC-lowpass.gif
Tiefpassfilter
Bildquelle: http://www.pentodepress.com/home/amplifier-calculators/LC-ripple-filter/LC-lowpass.gif

Grüße,
Bernhard

kif
26.10.2010, 15:58
Danke schonmal für die schnelle Antwort.

Also ich bin mir ziemlich sicher das der Controller durch den Servo resetet wird (wenn ich den Servo entferne, läuft das Programm).

Würde auch ein RC-Tiefpass reichen? Ich habe keine Spule da. Und wie viel Farad bzw wie hoch müsste der Widerstand in der Schaltung sein?

BastelWastel
26.10.2010, 16:26
Ich fuer meinen Teil versuche immer Logik und Leistung getrennt zu versorgen.
Z.B. einen eigenen Spannungsregler der nur den uC versorgt

kif
26.10.2010, 16:36
Also würdest du mir empfehlen für den Servo eine getrennte Stromversorgung zu verwenden?

Ich geh mal davon aus das der uC des Probot einen Spannungsregler hat, also in dem Schaltplan kann ich ein LC-Tiefpassfilter erkennen.

BMS
26.10.2010, 16:37
Problem beim RC-Tiefpass ist, dass wenn der Servo Strom zieht, dass am Widerstand nach dem ohmschen Gesetz eine Spannung abfällt -> Spannung für den Servo bricht ein. Eine niederohmige Induktivität ist in jedem Fall besser, notfalls irgendwo ausschlachten oder selber wickeln.

Falls es doch ein RC-Tiefpass wird: hier mal geschätzte Bauteilwerte:
Elko: >1000µF ?
Widerstand: 5 Ohm ? Verlustleistung beachten!
(fg wären ca. 32 Hz)

Du kannst auch mal die Versorgung mit einem Oszilloskop messen. Da müsste ein evtl. auftretender ripple/Einbruch der Spannung erkennbar sein.

Grüße,
Bernhard

holzi
27.10.2010, 04:27
Guten morgen,
mach doch bitte einmal Angaben zur Hardware. Sollte es ein RN-Control sein, das mit Bascom programmiert wird? Genau in der Konstellation kann ich Dein Problem reproduzieren Jedesmal, wenn der Servo in einer Routine angesprochen wird, kommt ein Reset. Ohne Servo ist alles OK.

Grüße Peter

kif
27.10.2010, 16:59
Hey,

es handelt sich um den Probot128 und programmiert wird er mit Basic.

Um Stromspitzen zu vermeiden würde auch ein Spannungsregler funktionieren, oder? Ich hab gerade einen da, was ich von einem 5Ohm Widerstand und 1000µF Kondensator nicht behaupten kann.

Mfg Kif

BMS
27.10.2010, 17:34
Hallo,

Welche Spannung würdest du denn regeln wollen? Die vom Prozessor oder die vom Servo?
Zusätzliche Elkos brauchst du sowieso. Der Regler bräuchte nämlich auch welche.

Alternativ:
Hier gibt es ja den Schaltplan (http://www.c-control-pro.de/c-robotics/PRO-BOT128%20Circuit%20diagram.zip) - Im Bild Supply.jpg:
Du kannst die Versorgungsleitung des Servos vor die Diode D4 hängen (den Jumper nicht setzen!), und hinter der Diode einen noch größeren Elko einbauen.
Durch die Diode kann sich der Servo die Stromspitzen dann direkt aus dem Akku holen, der Prozessor würde sich kurzzeitig mit der Energie aus dem Elko begnügen :)

Und teste bitte wirklich mal die Akkus/Batterien. Auch wenn die Spannung am Akku ohne angeschlossenen Verbraucher noch "gut" aussieht, kann sie unter Belastung einbrechen.
Einfach mal z.B. einen Motor/eine Glühlampe o.ä. anschließen und mit einem Messgerät währenddessen die Spannung des Akkus messen. Kannst uns ja mal Spannungswerte des Akkus angeben, nämlich die im Leerlauf (ohne Verbraucher) und eine Spannung wenn der Akku belastet wird.

Ansonsten: kennst du dich mit Fuses bei Atmel-Mikrocontrollern aus? Könntest den "BODLEVEL" herunter setzen. Damit kann man die Spannung einstellen, bei der der Prozessor einen Reset macht.

Grüße,
Bernhard

holzi
27.10.2010, 17:46
Hallo, ich habe ja nun auch dieses Problem gehabt, dass dann aber etwas ganz anderes war. Sobald ich zwei Servos aus dem Programm heraus angesteuert habe, gab es einen Reset. Ich habe dann, bevor ich in die Servoroutine gegangen bin, die Interrupts abgeschaltet und nach der Servoroutine wieder eingeschaltet. So komisch wie es sich anhört, aber das war bei mir das Problem. Es waren Analoge Servos, die ich über den AD-Wandler angesteuert habe.
Peter

kif
28.10.2010, 18:58
Hey,

ich habs geschafft. Mit extra Spannungsversorgung des Servo funktioniert alles wie es soll.

Aber wie geh ich jetzt am besten vor wenn ich keine extra Spannungsversorgung will? Den Spannungsregler hätte ich vor dem Servo angschlossen, würde das was bringen, wenn ich die nötigen Elkos auch noch verwende?

Danke schonmal für eure Hilfe

Mfg Kif

oberallgeier
28.10.2010, 20:42
... geschafft. Mit extra Spannungsversorgung des Servo funktioniert alles wie es soll ...Prima, Glückwunsch.


... wie geh ich jetzt am besten vor wenn ich keine extra Spannungsversorgung will ...Wollen ist ja ein technisch eher unpraktischer Terminus. Aber manchmal muss man eben.

Bei meinem Dottie (z.B. hier) (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=390196#390196) hatte ich nach Problemen mit dem Controller - genau wie Du eben - meine Lärmmacher: Ser vo, Sharpsensor und Antriebsmotoren=gehackte Ser vos separat versorgt. Sprich: von einer 6xAAA-Batterie weg mit zwei Spannungsreglern (klick) (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=390565#390565) einmal zum Controller und das andere Mal zu den Lärmmachern (elektronischer Lärm *ggg*). Danach funktionierte alles wunderbar. Es war eben im Gesamtaufbau gerade noch genug Platz, (http://oberallgeier.ob.funpic.de/r_basis_03.jpg) hinter der Platine in zwei 4xAAA-Haltern. Deutlich weniger Platz hatte ich in meinem MiniD0 (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=432909#432909) - viel weniger als 1/2 Bauvolumen im Vergleich zu vorher, hatte ich keinen Platz mehr für diese zwei Spannungsregler. Deshalb hatte ich es dort mit zwei Kondensatoren versucht - die beiden größten Elkos, die ich gerade lagernd hatte, je 220 µF/16V. Und es geht auch. Allerdings ist es sicher eine gewagte Sache - deshalb habe ich besonders sorgfältig die Entstörung DIREKT am Controller und an der Motorplatine mit den üblichen, schnellen kleinen KerKos 100 nF durchgeführt, sprich: so nah wie möglich. Für diese Lösung gibts natürlich keine Garantie - es ist - eine Notlösung. Allerdings würde ich beim nächsten Mal vermutlich etliches in SMD bauen - und dann kann man wieder die Spannungsregler-Variante nehmen.