Forum: Mikrocontroller und Digitale Elektronik Servos ansteuern - Tiny13 überlastet?


von Namenslos (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich möchte mit einem Tiny13 zwei Servomotoren steuern. Es handelt sich 
hierbei um die 5-Euro-Billigservos von Conrad (sind vermutlich nicht die 
besten aber zum testen reicht es). Nun habe ich das Programm für den 
Tiny geschrieben und unbelastet (Servos abgesteckt) an den Pins zur 
Ansteuerung geschaut, ob die Impulse richtig sind - und das sind die 
(Periodendauer nahezu perfekt, um die 20.2 ms, Impulsdauer auch im 
zulässigen Bereich (1 bis 2 ms)).
Bei der Software werden die Servos zunächst als Initalisierung auf ihre 
maximale und dann auf ihre minimale Position gefahren (mit 1 Sek. Pause 
dazwischen) und nach einer weiteren Sekunde soll einer der Servos sich 
relativ häufig Bewegen (bei meiner Testanwendung wird die Position alle 
100ms etwas variiert).

Soweit so gut, solange die Servos abgesteckt sind, sehen die Signale 
auch prima aus und es verhält sich so, wie es sich verhalten soll.
Schließe ich allerdings die Servos an (bzw. es reicht auch nur der, der 
sich schnell bewegen soll), so arbeitet der Servo ein paar Sekunden und 
dann scheint der AVR neuzustarten, die Initalisierungsprozedur beginnt 
als wieder.

Nun vermute ich, dass der AVR überlastet ist und deswegen einen Reset 
ausführt... oder aber die Servos sonstige Störimpulse erzeugen. Nur was 
kann ich dagegen tun? Die Schaltung (sie ist recht minimalistisch 
gehalten, die drei Abblock C's sitzen zum einen am AVR und dann jew. 
einer am Servo-Stecker) befindet sich im Anhang.

Vielen Dank schon einmal.

von Daniel B. (inox5) Benutzerseite


Lesenswert?

Poste mal den Code, so kann man wenig sagen.

von Bernhard R. (barnyhh)


Lesenswert?

Da ist wohl nicht der TINY überlastet, sondern Vcc. Benutze mal 
testweise 2 separate 5V-Versorgungen; eine für den Tiny und eine für den 
Rest. Bitte auf saubere Masseführung achten!

Wenn das die Probleme löst:
- Stromversorgung stärker puffern (dicker Elko)
- Zuleitung zum Tiny mit zusätzlicher Drossel abblocken.

Viel Erfolg!
Bernhard

von Karl H. (kbuchegg)


Lesenswert?

Namenslos schrieb:

> Nun vermute ich, dass der AVR überlastet ist und deswegen einen Reset
> ausführt... oder aber die Servos sonstige Störimpulse erzeugen.

Servos können richtige Dreckschleudern auf der Versorgungsspannung sein. 
Wenn sie dir wirklich den Tiny ausser Tritt bringen, gibt es nur eine 
Möglichkeit: Die Versorgungsspannung der Servos vom AVR fernhalten bzw. 
möglichst gut sieben. 100nF an den Servoanschluessen werden da nicht 
reichen. Probier mal da einen etwas größeren Kondi jeweils parallel 
zuschalten.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ich würde mal vom Einbrechen der Spannungsversorgung oder von heftigen 
Störimpulsen auf der Versorgungsleitung durch den Servo ausgehen. 
Überprüfe diese mal, am besten mit einem Oszilloskop.

von Hallo1001 (Gast)


Lesenswert?

Hallo!

Ich schätze einmal dass bei Dir die Versorgungsspannung zusammen bricht. 
Ich hatte bei mir genau das gleiche Problem, wenn auch nicht mit einem 
Tiny. Und die Widerstände R2 und R3 sind auch viel zu Groß. Wenn Du die 
Tiny Ports schützen willst, dann reichen hier 500 Ohm bereits aus.

LG Jens

von Namenslos (Gast)


Angehängte Dateien:

Lesenswert?

Juhuuu es funktioniert :-)

Benutze weiterhin nur eine Spannungsquelle, allerdings bin ich etwas 
großzügiger mit Kondensatoren umgegangen und habe eine Drossel vor das 
VCC vom Tiny13 gesetzt. Nun läuft es ohne Zurücksetzer :-)

Im Anhang die Version, die Funktioniert. Die Induktivität der Drossel 
konnte ich nicht bestimmen, aber es ist eine Drossel aus einem alten 
PC-Netzteil.

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Trotzdem sollte der 100nF-Kondensator für den Tiny auf die andere Seite 
der Drossel, also direkt an den Tiny!

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
Noch kein Account? Hier anmelden.