Hallo,
im moment Programmiere ich eine Motorensteuerung für einen Roboter
(kommt noch mehr dazu momentan ist aber nur die Motorensteuerung
wichtig). Hierzu habe ich ein Testprogramm geschrieben (im Anhnang).
Verwendet wird ein ATMega 32 und also Motortreiber ein L293D.
Spannungsversorgung über den 7805 mit 7V über Konstanter. Die Motoren
ziehen bei 5V und keiner Strombegrenzung ca. 400 mA aus dem Konstanter.
Nun habe ich aber das Problem, dass sobald ich einen Motor versuche
laufen zu lassen (Mit der Regelung des ATs) (alle Werte von 1 - 254
getestet) der AT abstürzt und neu startet.
Einzig bei dem OCR1A Wert von 255 dreht der Motor mit Vollgas los und
der AT stürzt nicht ab.
Habt ihr vielleicht eine Idee woran das liegen könnte?
(im 2.ten Post werde ich dann noch den Schaltplan als Bild posten)
Grüße
Sebastian
Er stürzt ab, weil Du recht viel vergessen hast:
1. Motor nicht aus der stabilierten Spannung speisen
2. Elko vor dem Spannungsregler
3. Blockkondensatoren 100nF
Otto
Hi
>Einzig bei dem OCR1A Wert von 255 dreht der Motor mit Vollgas los und>der AT stürzt nicht ab.
Bei der Schaltung normal. Deine Entstörmassnahmen sind praktisch Null.
Sieh dir mal das Datenblatt vom L293 und die entsprechenden AppNotes von
Atmel an.
MfG Spess
Hallo,
danke für deine schnelle antwort.
zu 1.: Habe ich bereits geändert (ist aber noch nicht im schaltplan...
hängt jetzt vor dem Spannungsregler)
zu 2.: Bei C1 handelt es sich um einen normalen Elko mit + und - (nicht
Bipolar). Bei C2 habe ich einen weiteren Elko verwendet. Hier mal die
Werte der Elkos (vielleicht hilft das weiter)
C1: 25V 1000uF
C2: 33V 10 nF
zu 3.: Wo genau müssten die Blockkondesatoren denn hin?
Grüße
Sebastian
Hab mir gerade nochmal die Datenblätter vom ATMega 32 und vom L293
angeschaut. Leider kann ich bei keinem von beiden etwas von
Blockkondensatoren finden.
Bin also voll auf eure Hilfe angewiesen :)
Grüße
Sebastian
Hallo,
>C2: 33V 10 nF
Das als Elko gleube ich Dir nicht.
Die 100n gehören dahin, wo es in jdem Beispiel, in jeder Applikation, in
jeder Beschreibung und in 1000 Forumbeiträgen empfohlen wird:
an jedes IC so dicht als mögliche an die Anschlüsse für Spannung und
GND.
Wenn es mehrere gibt (beim Mega32 z.B., gehört an jeden Anschluß ein
100n.
Zum L283D kann ich jetzt nichts weiter sagen, da sollte es aber auch
hinweise im Datenblatt geben, auch zur Leitungsführung.
PS: man kann in Eagle im Schaltplan auch einfach den Mega16 in Mega32
umbenennen...
Gruß aus Berlin
Michael
ok danke für die Tipps. Werde ich gleich mal testen und mich dann
nochmal melden
Die kerkos zwischen V+ und GND am ATMega hab ich noch nie verwendet...
Hab aber auch noch nie was mit Motoren gebastelt. Hoffe dass das das
Problem löst.
Grüße
Sebastian
So habe jetzt 2 Kerkos mit 100nF zwischen VCC und GND und zwischen AVCC
und GND geschalten. Funktioniert leider immer noch nicht.
Gibt es noch weitere vorschläge?
siehe oben:
===========
ausreichenden Elko vor den Regler verwenden (>1000µF)
Motor nicht aus der stabilisierten Spannung versorgen....
100nF von Reset gegen Masse
> Spannungsversorgung über den 7805 mit 7V über Konstanter.
Das ist knapp genug für den 7805. Da kann er kaum regeln :-o
Unter 8V würde ich da mal nicht gehen...
danke nochmal für deine antwort.
Punkt 2 und 3 hab ich bereits gemacht
Genauso wie die Kerkos zwischen VCC und GND
Punkt 1 werde ich gleich testen (Geht für den >1000uF auch ein genau
1000 uF zwischen VCC und GND des L293D)?
Super
Thanks at all
Der 1000uF zwischen VCC und GND beim L293D war die Lösung
Jetzt funktioniert es und ich hab was dazu gelernt: Immer die Spannungen
mit Elkos und Kerkos Puffern ^^
Danke 1000 mal
Grüße
Sebastian
Mist zu früh gefreut...
Es funktioniert leider immer noch nicht. Er stürzt immer noch ab. Jetzt
hab ich aber alles so gemacht wie von euch beschrieben.
Kann es vielleicht noch am Programmcode liegen?
oder sonst noch irgendwas.
Folgende Änderungen von euch habe ich bereits übernommen:
1. Stromversorgung für L293D direkt (ohne 7805 dazwischen)
2. 100nF Kelkos zwischen VCC und GND sowie AVCC und GND
3. 1000uF Elko zwischen VCC und GND bei dem L293D
Ja das wars... Das habt ihr vorgeschlagen, dass hab ich gemacht.
Hoffe ihr wisst vielleicht noch ein paar Tipps.
Grüße
Sebastian
Das Programm kannst Du gerne anhängen - schadet nie.
Wie hoch ist die Belastbarkeit Deiner Spannungsversorgung ?
Speist Du mittlerweile eine Spannung von mindestens 8V in den 7805 ?
Also:
Code is im ersten Post... Kann ihn aber auch gerne noch einmal Posten.
Meine Stromversorgung (= Konstanter) geht bis 5A. Sollte also gut
reichen.
Ja habe mitlerweile auch 8V erhöht. Bringt aber auch nix :(
Die Ausgänge braucht man beim L293D nicht mit Dioden beschalten, da
dieser bereits die Dioden drin hat (deshalb vermutlich auch das D wie
Diode)
Grüße
Sebastian
Hi
>Die Ausgänge braucht man beim L293D nicht mit Dioden beschalten, da>dieser bereits die Dioden drin hat (deshalb vermutlich auch das D wie>Diode)
Die Stelle im Datenblatt musst du mir aber zeigen.
MfG Spess
Jo wenn der Motor nicht dran ist (oder zum Beispiel nur ne LED) dann
stürzt dass Programm nicht ab...
Ist also iwie ein Fehler in der Hardware...
Es funktioniert immer kurz bevor es abstürzt. Aber immer unterschiedlich
lang :(
Kein Problem :)
Hätte ja auch sein können das ich mich täusche...
Dann wäre wenigstens klar warum es nicht läuft.
Hab jetzt nochmal die Elkos und Kelkos gemessen (Kapazität) ob da
vielleicht einer dabei ist der kaputt ist. Sind aber alle in Ordnung.
Gibts noch Ideen?
Okay. Darf ich fragen was die Diode dann bewirkt?
Werde ich dann morgen probieren.
Motoren sind Motoren aus einem alten Modellauto, dass zum Roboter
umfunktioniert werden soll. Entstört sind sie mit einem Kondensator.
Hi
>Okay. Darf ich fragen was die Diode dann bewirkt?
Induktivitäten (Motor) neigen beim Abschalten dazu hohe Spannungen zu
erzeugen. Durch die Dioden werden die kurzgeschlossen.
>.... Entstört sind sie mit einem Kondensator.
kann bei schlechten Motoren etwas wenig sein.
Das ganze kann natürlich au an deinem Layout liegen.
MfG Spess
Aber...
Sollte die Diode dann nicht bei den Motoren sein? Ich hoffe ich verstehe
dich richtig, dass die über den Elko soll, der zwischen VCC und GND von
dem L293D ist ?
Otto schrieb:
> ausreichenden Elko vor den Regler verwenden (>1000µF)> Motor nicht aus der stabilisierten Spannung versorgen....> 100nF von Reset gegen Masse
SebmaxH schrieb:
> Jetzt hab ich aber alles so gemacht wie von euch beschrieben.
(...)
> Folgende Änderungen von euch habe ich bereits übernommen:>> 1. Stromversorgung für L293D direkt (ohne 7805 dazwischen)> 2. 100nF Kelkos zwischen VCC und GND sowie AVCC und GND> 3. 1000uF Elko zwischen VCC und GND bei dem L293D>> Ja das wars... Das habt ihr vorgeschlagen, dass hab ich gemacht.
Und was ist mit dem Kondensator an RESET?
Sauber ich bedanke mich erstmal für heute...
Den 100nF zwischen V+ beim Reset und GND werde ich morgen einbauen und
dann schau ma mal.
Danke für eure Geduld und Hilfe.
Hoffe ihr seid vielleicht morgen wieder da, damit ich noch mehr fragen
stellen kann (fals notwendig)
Wünsche euch ne gute Nacht
SebmaxH schrieb:
> Vollgas geht ja auch. Also kann es eher weniger daran liegen
Der Controller wird wohl immer dann abstürzen, wenn der Motor
abgeschaltet wird.
> Ah ok... den hab ich noch nicht>> dann werde ich den noch einbauen. Soll ich da auch einen 100nF nehmen?
Kannst du machen. Wie groß ist eigentlich der Widerstand (R1) am
Reset-Pin?
Häng an den reset pin nen 1k nach v+ und einen 470nF nach gnd.
Schau dir mal die v+, den reset pin, motorstrom und motorspannung mit
dem Oszi an. Ich würde evtl. auch 100nF (sehr nahe am Atmega)an die
Leitungen zwischen Atmega und Treiberstufe hängen. So wie ichs auf die
schnelle gesehen hab, sind das keine Kommunikationsleitungen dann gehen
100nF schon.
Die Leitungsverlegung trennen Motorstrom und Steuerleitungen nicht nahe
bei sammen.
Also: Neuster Stand:
Ohne belastung Funktioniert es jetzt wunderbar. Unter belastung stürzt
er immer noch ab.
ABER: Dies scheint wohl an dem L293D zu liegen, da der nur 600 mA pro
Ausgang verträgt, die Motoren aber mehr als die 600mA unter belastung
verbrauchen :(
Naja jetzt werde ich mal schaun wie ich es alternativ mache