Forum: Mikrocontroller und Digitale Elektronik Mysterium bei Motor-Richtungswechsel mit Mikrocontroller


von Max (Gast)


Angehängte Dateien:

Lesenswert?

Hallo allerseits und in Hoffnung auf unterstützende Beratung,

ein gerade von mir gebauter Automat besitzt einen 12 V DC Motor. Mit dem 
Arduino möchte ich diesen Motor nicht drehen, vorwärts drehen oder 
rückwärts drehen lassen. Die explizite Schaltung rund um jene 
Motorfunktionen, wie ich sie bisher realisierte, findet sich im 
Schaltplan unten rechts.

Beim Test meiner Platine geschehen nun eigenartige Phänomene: Messe ich 
die Verbindungen, die durch die Relais mit den zwei Motoranschlüssen 
eingegangen werden, ist in den Phasen, in denen sich der Motor drehen 
soll, liegt immer an einem Anschluss sowohl 12 V als auch GND. Ich würde 
nun gerne angeben, dass dieses Phänomen immer am Motoranschluss 1 oder 2 
besteht, tatsächlich aber kann sich nach einem Reset des Arduinos 
manchmal das Anliegen von 12 V und gleichzeitig GND auf den anderen 
Motoranschluss verschieben. Am jeweils anderen Anschluss liegt dann 
entweder nur GND oder nur 12 V an.

Aus der Tatsache, dass sich dieser Kurzschluss verschiebt schließe ich, 
dass ich auf meiner Platine keine ungewollte Verbindung zwischen 12 V 
und GND irgendwo produziert habe. Leider bin ich nunmehr mit meinem 
Latein am Ende und würde mich über Ideen diesbezüglich freuen.

Ein weiteres Begleitphänomen hierbei: Schließe ich den Motor an und 
schalte das Netzteil ein, das an die Supplyklemmen 12 V anlegt, macht 
dieser Motor ca. 2 Sekunden die erste Bewegungsrichtung mit - um danach 
zu verharren und nichts mehr zu tun. Gleichzeitig gibt die Platine einen 
leisen Pfeifton ab - wobei ich den Arduino Nano im Verdacht habe.

Ich danke allerseits schonmal für die Mühe des Durchlesens und freue 
mich auf Anregungen.


PS: Zum besseren Verständnis des Schaltplans noch ein Wort... unten 
links ist die Kopplung mit einer Nebelmaschine zu sehen. Oben rechts ist 
die Schaltung eingezeichnet um meinen hier zu bauenden Automaten auf DMX 
Signale reagieren zu lassen wobei die DMX Adresse mit dem Dipswitch 
mittig im Bild eingestellt werden soll.

von Gisbert K. (e_stromer)


Lesenswert?

Anschlüsse Steuereingang Motorelais 2 vertauscht (+ und -)

MfG Gisbert

von Max (Gast)


Lesenswert?

Danke lieber Giesbert für den Tipp! Habe die Kontakte vertauscht, nur 
leider bleibt das Problem weiterhin bestehen.

von Max (Gast)


Lesenswert?

Falls ich damit noch zusätzliche Informationen beisteuern kann: Bei den 
Relais handelt es sich um "SRD 5V DC SL-C" mit folgendem Datenblatt...

http://pdf-datasheet.datasheet.netdna-cdn.com/pdf-down/S/R/D/SRD-12VDC-xx-x_ETC.pdf

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Haben die Basiswiderstände rechts unten wirklich nur 4,7 Ohm?
Nach welchen Kriterien hast du diese dimensioniert?

Grüßle
Volker

P.S.: Der Schaltplan ist eine Zumutung! Als Suchspiel in der Rätselecke 
könnte ich das "Kunstwerk" ja noch akzeptieren...

von Gisbert K. (e_stromer)


Lesenswert?

Ansteuerung Motorrelais überprüfen:

Beide Relais = 1 oder = 0 Motor steht
nur Relais 1 = Drehrichtung 1
nur Relais 2 = Drehrichtung 2

von Max (Gast)


Lesenswert?

Die Basiswiderstände habe ich auf 4,7 kOhm dimensioniert: Mein Fehler, 
ist im Schaltplan falsch vermerkt. Ich fürchte, noch nicht genügend 
komplexere Schaltpläne gesehen zu haben um ein Gefühl für ansprechendere 
Darstellung bekommen zu können, bzw. habe ich versucht mit Aufteilung in 
Baugruppen die Lesbarkeit zu erhöhen.

Die Ansteuerung stimmt soweit: Die Relais schalten wie sie sollen. Der 
Motor dreht sich richtig wenngleich auch natürlich sehr langsam, wenn 
das Netzteil nicht angehängt ist, und in diesem Fall tritt das Problem 
nicht auf. Daher muss es irgendwas mit dem Betrieb unter 12 V zu tun 
haben.

von Flo G. (flolix)


Lesenswert?

Max schrieb:
> Motor dreht sich richtig wenngleich auch natürlich sehr langsam, wenn
> das Netzteil nicht angehängt ist,

Warum dreht sich der Motor denn ohne Netzteil?
Vielleicht ist das das erste Problem. Laut Schaltplan sollte der 
stillstehen wenn die 12V nicht anliegen...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Max schrieb:
> Die Basiswiderstände habe ich auf 4,7 kOhm dimensioniert:

Naja, das ist jetzt wieder ganz schön gross. Nimm da mal 680 Ohm - 1k 
Ohm, dann werden die Transistoren sauber durchgesteuert.
Stelle sicher, das die 12V Versorgung so wenig wie möglich mit der 
Versorgung des Rests zu tun hat. Es wäre z.B. nicht nötig, die Masse der 
Motorversorgung und die der Steuerung zu verbinden, denn du benutzt ja 
Relais.
Blocke die Motorspannung auch ein wenig ab. Wir wissen nicht, was das 
für ein Motor ist, aber ein Elko mit 100µF-470µF auf den 12V kann sicher 
nicht schaden.
Auch die 5V können in der Nähe der Relais sicher etwas Stützung 
brauchen. Also ruhig da noch einen 10µF - 100µF Elko spendieren.
Relais kann man übrigens mit ihrem Schaltsymbol einzeichnen, dann wird 
es ein wenig klarer und für den Schaltplanleser übersichtlicher.

von Der Andere (Gast)


Lesenswert?

Max schrieb:
> Beim Test meiner Platine geschehen nun eigenartige Phänomene: Messe ich
> die Verbindungen, die durch die Relais mit den zwei Motoranschlüssen
> eingegangen werden, ist in den Phasen, in denen sich der Motor drehen
> soll, liegt immer an einem Anschluss sowohl 12 V als auch GND. Ich würde
> nun gerne angeben, dass dieses Phänomen immer am Motoranschluss 1 oder 2
> besteht, tatsächlich aber kann sich nach einem Reset des Arduinos
> manchmal das Anliegen von 12 V und gleichzeitig GND auf den anderen
> Motoranschluss verschieben. Am jeweils anderen Anschluss liegt dann
> entweder nur GND oder nur 12 V an.

Den Absatz muss man erst mal verstehen.

Was misst du an den Pin D4 und D5?
Ich tippe hier aurf Softwarefehler!

Hänge dir Leds an die Portausgänge (mit Vorwiderstand von 1-2k) dann 
siehst du ob beide Ports aus oder eingeschaltet sind.

Je ein 22k Widerstand von den Basen auf Masse bei T3 und T4 sorgen dafür 
daß sie sicher ausgeschaltet sind wenn der Port hochohmig ist.

Ansonsten beachte was Matthias S. gesagt hat.

von MaWin (Gast)


Lesenswert?

Max schrieb:
> liegt immer an einem Anschluss sowohl 12 V als auch GND

Grundlagen der Physik (8. Klasse) sollten dir klarmachen, dass das nicht 
geht.

Entweder zeitlich nacheinander, oder ein Anschluss ohne Potential der 
nur beim Messen beeinflusst wird.

Aber deine Schaltung hat 2 Probleme:

Keine Freilaufduoden auf Motorseite, das funkt gewaltig und stört den 
uC.

Und es wird der Motor im Stillstand kurzgeschlossen, das führt zum 
schnellen Bremsen, geht aber auf die Mechanik. Es ist nur sinnvoll, wenn 
man abrupt bremsen muss.

von Max (Gast)


Lesenswert?

Also erstmal dankeschön allerseits.

Zunächst habe ich mich jetzt mal mit der Tatsache beschäftigt, dass sich 
der Motor dreht obwohl nicht das Netzteil angeschlossen ist, sondern der 
Mikrocontroller nur via USB mit dem Laptop verbunden ist. Habe die 
Verbindung zwischen Netzteil und Vin gekappt und die Schaltung mal nur 
via USB am Arduno mit 5 V versorgt und konnte am Vin 4,3 V messen. Daher 
würde ich sagen liegt der Grund für die Speisung der Motorklemmen ohne 
angeschlossenes Netzteil im Arduino selbst - und das wiederum führt mich 
zu deinem Tipp, lieber Matthias S: Du hast recht, ich sollte versuchen, 
Versorgung der Steuerung und Versorgung des Motors zu trennen. Doch - 
mal blöd gefragt - was bleibt mir außer der Verwendung eines zweiten 
Netzteils, wenn ich sowohl Microcontroller als auch Motor mit 12 V 
versorgen muss und beide damit auch eine gemeinsame Masse brauchen? Bei 
dem Gedanken komme ich leider gerade nicht weiter.

Die Nachrüstung mit Elkos und Freilaufdioden werde ich aber in Angriff 
nehmen, danke schonmal an Euch zwei für die Tipps.

D4 und D5 Pin habe ich übrigens vor meinem Forumseintrag schon 
überprüft: Beide funktionieren wie sie sollen, sprich softwareseitige 
Fehler habe ich versucht auszuschließen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Max schrieb:
> Doch -
> mal blöd gefragt - was bleibt mir außer der Verwendung eines zweiten
> Netzteils, wenn ich sowohl Microcontroller als auch Motor mit 12 V
> versorgen muss und beide damit auch eine gemeinsame Masse brauchen? Bei
> dem Gedanken komme ich leider gerade nicht weiter.

Wenn du da einen Gobo oder sowas baust, dann ist es evtl. keine dumme 
Idee, ein Netzteil mit 2 unabhängigen Spannungen zu verwenden - vor 
allem, wenn da noch mehr Motoren dazu kommen. Gleichwertig sind 2 
Netzteile, eines für 5V und eines für 12V. Dabei musst du die Massen 
nicht verbinden, denn der 12V Kreis läuft ja nur über die 
Relaiskontakte.

Die zweitbeste Wahl ist die eines Netzteils, das sowohl 5V als auch 12V 
ausgibt. So ein Netzteil hat intern schon die Masse verbunden (wie z.B. 
ein PC Netzteil)
Dabei sind die Massen wieder verbunden und du musst den Motor auf jeden 
Fall per Freilaufdiode und Abblockkondensatoren davon abhalten, die MC 
Versorgung zu versproddeln.

Die schlechteste ist ein 12V Netzteil, aus dem du per Regler 5V 
gewinnst. Der Regler darf sich dabei nämlich nicht durch den Motor 
durcheinander bringen lassen. Wieder sind Freilaufdiode und Abblockung 
zwingend notwendig.

von MilchKellerEi (Gast)


Lesenswert?

Fange an zu MESSEN !

von Max (Gast)


Lesenswert?

Und damit ist das Problem gelöst: Ich habe nun sowohl die Verbindung 
zwischen Arduino Vin mit Spannungsversorgung vom Netzteil als auch 
Arduino GND mit Netzteil GND gekappt, den Arduino provisorisch über USB 
mit Strom versorgt, damit er seine Steueraufgaben erledigen kann und das 
Netzteil nur noch zur Versorgung der Motoren und des Magneten 
eingesetzt. Und siehe da: Es läuft wie geplant. Jetzt muss ich mich nur 
noch entscheiden ob ich zwei Netzteile mit 12 V und 5 V einsetze oder 
eines, das beide Spannungen ausgeben kann, genau wie Du es mir 
erklärtest, Matthias.
Vielen lieben Dank damit für die Hinweise und die Möglichkeit neu auf 
seine Arbeit schauen zu können!

von Max H. (mhatweb)


Angehängte Dateien:

Lesenswert?

Um nun schlussendlich die Nachrüstung mit Elkos in Angriff zu nehmen 
habe ich zur Sicherheit die drei Elkos, die die 5V an den Relais 
stabilisieren sollen, noch in meinen Plan eingezeichnet (rechts unten). 
Sie werden, wie mir geraten wurde, ca. 100 Mikrofarad haben.
Zudem werde ich ein Elko ca. 400 Mikrofarad einlöten direkt parallel zu 
den Pins der Platine, an denen ich VCC und GND der Spannungsversorgung 
anlege. Könnt Ihr mir sagen, ob ich die Tipps somit also richtig 
verstanden habe?
Beste Grüße!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Einer der drei (C10, C11, C12) wird reichen, nimm so 47µF-100µF. 
Wichtiger ist, das du in der Nähe der Motorrelais noch einen Elko auf 
die 12V legst, z.B. 330µF-470µF.

von npn (Gast)


Lesenswert?

Volker B. schrieb:
> P.S.: Der Schaltplan ist eine Zumutung!

Das Beste daran sind die Bohrsymbole (wichtig für den Schaltplan) :-)

von H.Joachim S. (crazyhorse)


Lesenswert?

-die 2 LEDs unten links parallel sind Mist, aber mit 150k Vorwiderstand 
eh rel. sinnfrei :-)

-die Motoransteuerung mit den 2 Relais hat den Nachteil, dass du den 
Motor nicht "ausrollen" lassen kannst. D.h. aus dem Lauf heraus kannst 
du den nur kurzschliessen zum stoppen. Gibt nen rel. harten Schlag.

von Bastler (Gast)


Lesenswert?

Max schrieb:
> und die Schaltung mal nur
> via USB am Arduno mit 5 V versorgt und konnte am Vin 4,3 V messen.

Ist das Mysterium warum der Motor 4.3V Spannung hat, obwohl die 12V 
Motorspannung abgeklemmt sind, verstanden?

Wenn das über Deine Schaltung passiert ist da noch etwas faul. Über die 
Relais kann keine Spannung rüberkommen! Und dann kann mit einem anderen 
Netzteil das Problem wieder auftauchen.

von Max H. (mhatweb)


Lesenswert?

Danke allerseits - wird so heute Abend in die Tat umgesetzt. Das 
Mysterium konnte ich damals, als der Tread aktuell war, schon lösen, 
nämlich indem ein separater Stromkreis für 12 V und für 5V exisitert mit 
je einem eigenen Netzteil, und nicht die 5V vom Arduino geliefert 
werden.
Und die Bohrlöcher werden definitiv im Schaltplan benötigt, sonst würde 
der Schaltplan ja hier nicht als Anhang halten. Irgendwo müssen Anhänge 
schließlich auch befestigt sein ;)!

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.