PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verrückte DC-Motoren?



Rassel05
13.02.2018, 15:34
Hallo,

ich bin total verwirrt und hoffe auf eure Hilfe.
Ich steuere über Arduino UNO und dem SanSmart L293 MotorShield drei DC-Getriebemotoren (Igarashi 20G-150, Betriebsspannung 4-16V, Stromaufnahme 0,11 A) an. Die Stromversorgung erhält das MotorShield getrennt vom Arduino Board über einen 11,1 V-LiPo-Akku mit 500mAh. Die Motoren werden per Bluetooth gestartet (HC-06). Die Motoren sind an den Anschlüssen M1 bis M3 des MotorShields angeschlossen.

IM PRINZIP läuft alles. Die Motoren lassen sich an- und ausschalten, in Arduino prorgammierte Motor-Sequenzen laufen problemlos. Die Motoren laufen auch alle gleichzeitig, wenn gewünscht, vorwärts und rückwärts. Die Ansteuerung und Befehle etc. - alles scheint richtig. Die Motoren laufen nicht mit PWM sondern nur an / aus (setSpeed(255)).
NUR: Häufiger bleibt mal einer der Motoren stehen (nicht immer derselbe), manchmal wird eine Sequenz abgebrochen, manchmal läuft sie durch, aber die nachfolgende Sequenz wird nicht gestartet. Völlig unberechenbar, wann was aus welchem Grund passiert. Das Schlimmste: ich kann kein System darin erkennen.

Das ist natürlich dann auch dürftig, was ich an Infos geben kann. Ich habe die Hoffnung, dass jemandem so etwas bereits einmal begegnet ist und vielleicht Abhilfe weiß. Habt ihr Ideen?!?

Besten Dank!!

hbquax
13.02.2018, 16:54
Was glaubst du denn, liegt es eher an den Motoren oder an dem, was der Arduino macht?

Rassel05
13.02.2018, 20:54
Das ist schwierig zu sagen, wie könnte ich es unterscheiden? Eigentlich scheint es so zu sein, dass Signale die per Bluetooth gegeben werden, mitunter falsch ankommen oder falsch interpretiert werden.
Um dem nachzugehen, habe ich die im Programm stehenden Steuerungssequenzen von Hand per Bluetooth übertragen, mit verschiedenen Terminalprogrammen. Daher kann ich ausschließen, dass es an der Übertragung liegt. Ergo muss es bei der Verarbeitung der Steuerungsbefehle liegen.

Mein Verdacht ist, dass sich im MotorShield nach mehreren Steuerungsbefehlen Schaltzustände aufbauen (Spannungsresiduen?), die dann den vom Arduino kommenden Befehlen "im Weg stehen". Alles sehr anschaulich gesprochen, ich weiß. Das MotorShield auszutauschen wäre vielleicht eine Option. Allerdings musste ich da einige Kontakte vom Arduino für das Bluetooth per Steckerleiste durchschleifen, die müsste ich dann neu löten (notfalls ginge das natürlich).

Die Frage wäre also: kann es sein, dass sich das L293 nach einigen Schaltbefehlen irgendwie irregulär verhält? Die H-Bridge nicht mehr richtig schaltet?
An den Motorausgängen liegen, unabhängig wie viele Motoren in Betrieb sind, 10,2 - 10,3 V an. Wenn die Spannung anliegt, dann laufen die Motoren. Wenn nicht, dann nicht (insofern sind es nicht die Motoren selbst, die das Problem sind).

Rabenauge
14.02.2018, 09:20
Miss mal die Stromaufnahme deiner Motoren.
Je nachdem, wie die belastet werden, liegt die Stromaufnahme nämlich über einem Ampere (sagt das Datenblatt)- das stemmen die H-Brückchen nur kurzzeitig.

Hubert.G
14.02.2018, 13:52
An den Eingang des L293 und am Ausgang je eine LED mit entsprechendem Vorwiderstand anschalten. Damit siehst du sofort den Zustand ohne lange mit Meßgerät herummachen zu müssen.

White_Fox
18.02.2018, 10:42
Du könntest die Motoren mal komplett durch jeweils zwei antiparallel geschaltete Dioden verschiedener Farbe (und passendem Vorwiderstand) ersetzen.
Also LEDs rein - Motoren raus.
Verschiedenfarbige LEDs, damit du auch die Drehrichtung des Motors sehen kannst.

Wenn jetzt alles korrekt funktioniert ist dein Programm soweit in Ordnung und dein Hardware-Aufbau versaut dir den Tag. Dann wird es interessant.