Forum: Mikrocontroller und Digitale Elektronik Servo am AVR- knallt beim Einschalten und beim Programmieren an Endanschlag


von Ralf (Gast)


Lesenswert?

Hallo,

ich betreibe zwei Modellbauservos am einem Mega128 (Bascom). 
Funktioniert auch alles, allerdings schlagen die Servos beim Einschalten 
und beim Programmieren des Controllers an die Endausschläge, eins ist 
dabei schon kaputtgegangen.
Jetzt habe ich mich dazu entschlossen, nachträglich ein Relais 
einzubauen und die Betriebsspannung der Servos durch den Mega128 
zeitverzögert einzuschalten.
Kann das aber überhaupt klappen, welchen Zustand haben die IO Pins beim 
Einschalten und beim Programmieren sind sie undefiniert, oder hochohmig, 
dann könnte es ja klappen. Ansonsten würde ich die Zeitverzägerung durch 
einen NE555 oder ähnlich realisieren.
Vielleicht hat ja jemand noch eine ganz andere Lösung.

Gruß Ralf

von Christian Erker (Gast)


Lesenswert?

Beim Einschalten sind es Eingänge ohne Pullup, also hochohmig. Das wird 
das Servo als Dauer-High und damit >2ms interpretieren.

Ev. helfen Pulldowns.

Gruß,
Christian

von Ralf (Gast)


Lesenswert?

Hallo Christian,

danke für die schnelle Antwort.
Wenn die Eingänge hochohmig sind, dann könnte es ja mit den Relais 
funktionieren, also ich schalte die Spannung erst ein, wenn das 
Steuersignal anliegt.
Das mit den Pulldowns werde ich auch mal probieren.


Gruß Ralf

von STK500-Besitzer (Gast)


Lesenswert?

>allerdings schlagen die Servos beim Einschalten
>und beim Programmieren des Controllers an die Endausschläge,

Ist mir noch nie passiert. Anderen vermutlich auch nicht.
Dein Programm hat einen massiven Fehler.

von Ralf (Gast)


Lesenswert?

>>allerdings schlagen die Servos beim Einschalten
>>und beim Programmieren des Controllers an die Endausschläge,

>Ist mir noch nie passiert. Anderen vermutlich auch nicht.
>Dein Programm hat einen massiven Fehler.

Tritt auch nicht bei allen Typen aufm mein Graupner C2041 habe ich mit 
heute damit zerschossen.

von STK500-Besitzer (Gast)


Lesenswert?

>Tritt auch nicht bei allen Typen aufm mein Graupner C2041 habe ich mit
>heute damit zerschossen.

Um es mal präziser zu sagen: Zeig uns deinen Code. Der hat einen Fehler!

von Ralf (Gast)


Lesenswert?

Weiß zwar nicht, was das bringen soll, aber:

(Auszug)
$regfile = "m128def.dat"
$crystal = 14745600
$hwstack = 32
$swstack = 10
$framesize = 40

Config Servos = 2 , Servo1 = Portc.0 , Servo2 = Portc.2 , Reload = 5
Config Portc.0 = Output
Config Portc.2 = Output
Enable Interrupts

Servo(1) = 190

das Problem tritt auch auf, wenn der Servo Befehl nicht drin ist.

Gruß Ralf

von Klaus W. (mfgkw)


Lesenswert?

Wenn das Problem auch beim Programmieren auftritt, wird es
kaum am Programm liegen.

Mit Pulldown wird dann vermutlich halt die andere Richtung
eingeschlagen.

Wahrschinelich hilft nur, Servos zu nehmen, die es vertragen,
oder wie gehabt ihnen keinen Saft zu genehmigen, solange der MC
nicht läuft.

von Hannes L. (hannes)


Lesenswert?

Widerstand (gegen parasitäre Stromversorgung des Servos) in die 
Impulsleitung und dicken Transistor in die Stromversorgung der Servos. 
Dann sollte das gehen.

...

von STK500-Besitzer (Gast)


Lesenswert?

>Wenn das Problem auch beim Programmieren auftritt, wird es
>kaum am Programm liegen.

Auch wieder wahr.

von Oliver (Gast)


Lesenswert?

>Mit Pulldown wird dann vermutlich halt die andere Richtung
>eingeschlagen.

Was zu probieren wäre. Dauer-Null dürfte eigentlich kein Servo an den 
Anschlag fahren, das kommt schließlich auch bei normalen Fernsteuerungen 
vor, ohne das was passiert.

Oliver

von Purzel H. (hacky)


Lesenswert?

Beim Programmieren sind die Pins hochohmig. Dh. da sollte man etwas mit 
einem Pulldown machen.

von STK500-Besitzer (Gast)


Lesenswert?

Die Pulldown sollten reichen.

von Ralf (Gast)


Lesenswert?

Hallo,

ich habe das Problem mit einem PNP Transistor gelöst.(BD912) Ein 220 Ohm 
Wiederstand in die Basisleitung geschaltet, das müßte der Mega128 ja 
verkraften. Über die Servos(2 Nanos) habe ich noch eine Schutzdiode 
geschaltet.
Was mir aufgefallen ist, es fällt kaum Spannung über dem Transistor ab, 
ich hätte da mit 200 bis 300 mV gerechnet, wenn er durchgesteuert ist.
Mit den Pulldown Wiederständen, das habe ich nicht versucht, wenn es 
funktioniert fährt das Servo ja an eine Grenze seines Schwenkbereiches, 
der wird bei meiner Mechanik aber bei Weitem micht ausgenutzt, so das es 
gegen eine mechanische Begrenzung fahren würde.

Jetzt funktioniert es jedenfalls ohne Probleme.

Vielen Dank für eure Unterstützung!

Gruß Ralf

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.