mikrocontroller.net

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


Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian Erker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

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

...

Autor: STK500-Besitzer (Gast)
Datum:

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

Auch wieder wahr.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Zwölf Mal Acht (hacky)
Datum:

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

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Pulldown sollten reichen.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.