Forum: Mikrocontroller und Digitale Elektronik Probleme mit Servo am AVR Atmega8


von Jörg W. (hucky3000)


Lesenswert?

Hallo,
Ich bin mit meinen Ideen so ziemlich durch.
Meine Schaltung wird mit einem getakteten Netzteil (5V/5A)
Versorgt. Parallel zur Spannung hab ich noch einen 4700uF Elko sitzen.
Servo und Atmel hängen an einer Spannungsquelle.
Das Programm läuft soweit ganz gut.
Stecker rein, Servo läuft nach Position A - paar Sekunden später nach B 
- für die Anwendung die Ausgangsposition.
Nach Sensorbetätigung fährt der Servo brav nach A - nach ein paar 
Sekunden wieder zurück nach B.

Ziehe ich in der Ausgangsposition den Stecker vom Netzteil und steck es 
wieder rein (Stromausfall simuliert)
fährt der Servo zu einer Position X.  Positionen A und B sind dann 
verschoben ?!
Resete ich den Atmega über Bascom (ISP Kabelverbindung)
Läuft der Servo wieder brav nach A, nach ein paar Sekunden zurück nach 
B.

Stöpsel ich die 5V vom Netzteil ab - also die Sekundärseite fährt der 
Servo in 90% der Fälle wieder nach A und dann nach B - manchmal spinnt 
er auch wieder und fährt nach X um dann wieder mit verschobenen A und B 
Werten zu arbeiten.

Ich bin leider zu doof das zu verstehen - evtl. hat ja jemand eine Idee 
wie ich es verhindern kann dass das Ding nach X fährt.
X ist komischerweise auch immer gleich.

Ich habe nur noch die Idee am Rsseteingang des Atmega eine 
Kondensator/Widerstand Kombi anzuschliessen, sodass der Servo erst 
Spannung bekommt und der Atmega später startet.
Vielleicht hilft es ja.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Jörg W. schrieb:
> Ziehe ich in der Ausgangsposition den Stecker vom Netzteil und steck es
> wieder rein (Stromausfall simuliert)
> fährt der Servo zu einer Position X.  Positionen A und B sind dann
> verschoben ?!

Ich kann mir vorstellen, dass das an deiner Programmierung des µC liegt, 
insbesondere an der Brown-Out Auswertung.

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Wird das Servo vom µC versorgt?
(Wobei ein Servo normal 6V haben will, vom µC aber nur 5V bekommen würde 
- von den Ampere ganz zu schweigen und den armen Port-Treibern)
Abblock-Kondensatoren verbaut?
Spannungswandler, Dessen Kondensatoren?

MfG

von Frickelfritze (Gast)


Lesenswert?

Jörg W. schrieb:
> Ich bin mit meinen Ideen so ziemlich durch.

Dann wird "man" wohl mal deinen Schaltplan anschauen müssen.

von Klaus (Gast)


Lesenswert?

Patrick J. schrieb:
> (Wobei ein Servo normal 6V haben will, vom µC aber nur 5V bekommen würde
> - von den Ampere ganz zu schweigen und den armen Port-Treibern)

Eigentlich nicht. Sie wurden erfunden um an 4 NiCad Zellen zu 
funktionieren. Mit 6V ist man da schon ganz nah an den Maximum Values 
der gängigen Servo-ICs. Der Steuereingang ist typisch TTL kompatibel 
(>2V high, <0,8V low), unabhängig von der Versorgung.

MfG Klaus

von Christian K. (Gast)


Lesenswert?

Bau mal einen richtigen Reset Controller ein.

von Frickelfritze (Gast)


Lesenswert?

Christian K. schrieb:
> Bau mal einen richtigen Reset Controller ein.

Weil Millionen von AVR Controllern ohne Reset Controller
auskommen soll er jetzt einen verwenden?

von Stefan F. (Gast)


Lesenswert?

Es scheint, dass dein Mikrocontroller sich nach dem simulierten 
Stromausfall nicht resetted sondern das Programm an einer zufälligen 
Stelle fortsetzt. Dann enthalten variablen zufällige Werte und auch die 
Konfiguration der PWM Ausgänge ist ungewiss.

Häufig genügt es schon, eine LED zur Anzeige der Stromversorgung 
hinzuzufügen, wie das z.B. bei den meisten Arduino Modulen der Fall ist. 
Einfach LED+Vorwiderstand an das Netzteil hängen.

Diese bewirkt, dass die Restladung der dicken Kondensatoren schneller 
abgebaut wird. Außerdem kannst du an der LED schön sehen, dass noch 
Restladung vorhanden ist und wie lange das Entladen dauert.

Der Automatische Reset im µC funktioniert nur, wenn die Spannung tief 
genug absinkt. Die Schwellenspannung einer roten LED passt dazu ganz 
gut.

Durch das Aktivieren des Brown-Out Detektors (in den Fuses) kannst du 
eine Höhere Schaltschwelle bestimmen, unterhalb der ein Reset Signal 
erzeugt wird. Zum Beispiel 4,3 Volt. Allerdings solltest du dann deine 
Servos mit einem separaten Netzteil bzw. Spannungsregler betreiben, denn 
ihre zeitweise hohe Stromaufnahme kann sonst leicht dazu führen, dass 
die Versorgungsspannung kurz unter 4,3V absackt und dein µC dann einen 
unerwünschten Reset macht.

Bei meinen Versuchen mit Servos an einem ATtiny kamm ich ziemlich 
schnell zu der Erkenntnis, dass man die Servos besser nicht mit den 
selben 5V versorgt, die auch den Mikrocontroller versorgen.

Was völlig Ok ist, ist die Spar-Variante in den R/C Modellautos: ein 
7,2V Akku und dahinter ein 3,3V Spannungsregler für die Elektronik sowie 
ein 6V Spannungsregler für die Servos.

Oder du betriebst die Servos an 4 Mignon Zellen (Akkus oder Alkaline) 
und den µC an einer separaten Batterie (z.B. 3 Micro Zellen oder eine 
Lithium Zelle). Dann brauchst du gar keine Spannungsregler.

von Jörg W. (hucky3000)


Lesenswert?

Vielen Dank für die Antworten :)
Ich musste erstmal nach Brown-Out googlen - der Tipp war Gold wert !
Ich hab die entsprechenden Fusebits für 4V gesetzt. Es funktioniert 
jetzt so wie es soll :)
Wieder was gelernt.

Danke :)

Hucky

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.