Zitat Zitat von Zeitsklave Beitrag anzeigen
Um das jetzt mal vom anderen Thema abzuheben (Die Ansteuerung an sich funktioniert ja einwandfrei) erstelle ich mal ein neues Thema im richtigen Forum

Ich steuere mit einem Arduino Nano einen L293D an, der wiederum einen kleinen Elektromotor antreibt. Der Motor ist ein recht kleiner und einfacher, der saugt gerademal so 20mA. Der Motor wird über einen PWM-Ausgang Drehzahlgeregelt.
Mit der Beschaltung habe ich mich streng an diesen Schaltplan gehalten, zusätzlich noch einen Elko mit 47uF an die Spannungsversorgung des L293D gehängt und einen Folienkondensator mit 47nF an den Motorausgang.
Welche Schaltung aus dem Link?
Die Obere ist Quatsch und eigentlich unbrauchbar.
Die Untere weist in die richtige Richtung bei der Entstörung!
Da sind zu den 100µF noch 100nF (Keramik) parallel geschaltet.

Was ist nun der Unterschied zwischen 100.0µF und 100.1µF wobei die 100µ sowieso eine Toleranz von +/-20%, oder noch schlechter, haben?

So ein Kondensator ist ein recht kompliziertes Bauteil, das kann man am Ersatzschaltbild sehen:
http://upload.wikimedia.org/wikipedi...i-07-02-08.svg
ESR und ESL bilden zusammen mit C schon einen Tiefpass! Hochfrequente Impulse werden also gar nicht gefiltert.
Die Werte für ESR und ESL werden durch den mechanischen Aufbau des Kondensators bestimmt!
Bei einem Nass-Elko kommt ESL hauptsächlich von den aufgewickelten Folien, einen geringen Anteil liefern auch noch die Anschlussdrähte. Dem Strom ist es egal ob Drähte oder Folien gewickelt sind, wenn's im Kreis geht ist es eine Spule!
Der Keramikkondensator, insbesonders die Mehrschichttypen, haben keine gewickelten Platten.

ESR kommt beim Nass-Elko vom Elektrolyten, den Folien und den Anschlussdrähten.
Beim Keramikkondensator gibt es keinen Elektrolyten, beim Mehrschicht-Typ sind viele kleine Platten parallel geschaltet. Beim Nass-Elko sind die Anschlüsse meistens am einen Ende der Folie, da ist es dann ein ganzes Stück bis zum anderen Ende.

Nun hat aber jede Bauart auch ihre Nachteile. Keramikkondensatoren bekommt man nur bis zu etwa 10µF, dafür aber auch nur mit einigen pF. Elkos fangen meist so bei 0.1µF an und gehen bis zu einigen F (GoldCap).

Also bleibt einem nichts anderes übrig als die beiden Eigenschaften zu kombinieren.
Der Elko liefert die langsamen grossen Ströme und der Keramik ist für die kleinen schnellen Stromspitzen zuständig.

Und deine CPU bekommt man schon mit kleinen kurzen Störspitzen aus dem Takt!

Zitat Zitat von Zeitsklave Beitrag anzeigen
Das ganze funktioniert auch soweit recht gut, mit dem einen Problem, dass der Motor scheinbar so stört, dass ständig der Arduino abstürzt. Das äußert sich unterschiedlich, mal macht er einen Reset, mal bleibt er einfach hängen.
Interessanterweise offensichtlich immer wenn der Motor rechts dreht, das kann aber auch Zufall sein.
Ganz Zufällig wird es nicht sein. Praktisch gibt es kleine Unterschiede im Verhalten zwischen den Drehrichtungen. So ein Motor ist nie ganz symmetrisch aufgebaut, da gibt es immer Fertigungstoleranzen. Oder die Bürsten schleifen sich auf eine Drehrichtung ein und bei der Umkehr der Drehrichtung holpern sie dann etwas, was ein ganz anderes Störsignal ergibt.

Zitat Zitat von Zeitsklave Beitrag anzeigen
Ich habe schon einiges versucht um den Motor zu entstören, momentan hab ich 100nF zwischen den Anschlüssen und das Gehäuse auf GND. Ich hatte aber auch schon die andere Variante so wie im Wiki beschrieben und dasselbe auch schon mit kleineren und größeren Werten variiert.
Die Spule musste ich etwas improvisieren, mit einem recht großen Ferritring (aus dem Kabel eines Netzteils geklaut), da ich nix besseres da hatte....
Dein Problem steckt immer noch im Aufbau
Stell hier mal ein Foto von deinem Aufbau rein!
Jeder Draht ist auch ein Widerstand. Fliesst da ein Strom, hat man einen Spannungsabfall.

Schliesst du z.B. links an deinem Steckbrett den Akku an und ganz rechts dann den Arduino, der Motor kommt dann irgendwo in der Mitte an die Schiene. Zieht nun der Motor Strom, gibt es einen Spannungsabfall zwischen Akku und Motoranschluss auf der Schiene, welcher auch am Arduino anliegt. Hängst du jetzt den Arduino um, sodass er direkt neben dem Akkuanschluss liegt, bekommt er von dem Spannungsabfall auf der Schiene fast nichts mehr mit!
Im Schema ergibt sich dabei keine Änderung!

Obiges betrifft sowohl den Masse-Anschluss als auch die Versorgungsspannung. Bei Störungen auf der Masse bekommt dann z.B. dein L293D komische Pegel vorgesetzt. Nehmen wir mal an, du hast 1V Spannungsabfall auf der Masse, Statt 0V bekommt dann der L293D -1V oder +1V am Pin geliefert. Bei -1V spricht dann aber die Schutzschaltung im Eingang des L293D an (Typisch um die 0.7V) und die Schutzdiode lässt einen grossen Strom gegen Masse fliessen ....

Zitat Zitat von Zeitsklave Beitrag anzeigen
Ich hatte auch schon probeweise einen anderen Motor angeklemmt, aus einem kleinen Modellauto, der dann immerhin schon 160-260mA gezogen hat, nur mit dem gleichen Ergebnis (nur dass es hier sogar noch schlimmer war).
In dem Moment, in dem kein Motor am Treiber hängt, funktioniert alles problemlos.
Das entspricht alles meinen Erwartungen: Fehler im Aufbau!

Zitat Zitat von Zeitsklave Beitrag anzeigen
Softwaretechnisch hab ich auch schon alles probiert. im Normalfall lasse ich das PWM-Signal drauf, schalte den einen Ausgang auf LOW, warte ein paar Millisekunden um dem Motor Zeit zum Anhalten zu geben (die Zeitspanne ist im übrigen vollkommen bedeutungslos, die Sache stürzt mit 0ms genauso ab wie mit 1000ms), und schalte dann den anderen Ausgang auf HIGH.
Der Fehler steckt im Aufbau, also der Hardware, da ist die Software der falsche Ansatz!

MfG Peter(TOO)