Dazu hatte ich ganz viel geschrieben.
Um es einfach auszuprobieren:
1. nimm die Leitung vom Arduino zum ENABLE-Pin, am ENABLE-Pin, weg.
2. Verbinde den ENABLE-Pin mit GND.
3. Trenne die Verbindung von Vdd, des A4988, zu +5V.
4. Nimm die Leitung, die vom ENABLE-Pin weggenommen wurde und verbinde sie mit Vdd (Logikspannung) des A4988.
5. Nimm für jeden A4988 einen Arduino-Ausgang. Im MEGA-Datenblatt steht was von nur 40mA, das ist gut für EINEN A4988 (normal könnte man 4 Treiber damit versorgen, könnte aber zu knapp werden).
Jetzt kannst Du jeden A4988 extra einschalten, nachdem der Arduino gestartet ist. Solange der A4988 keine Logikspannung bekommt, gibt der Motor Ruhe.
A4988#1 anschalten - 2s Pause - A4988#2 anschalten - 2s Pause - A4988#3 anschalten - 2s Pause - A4988#4 anschalten
Pausen können dann verkürzt werden, bis die Probleme erneut auftreten, dann die Pausen wieder etwas verlängern.
Gilt natürlich alles nur, wenn es Einschaltspitzen sind, die den Akku zu sehr belasten, in welcher Form auch immer.
- - - Aktualisiert - - -
Wenn ich das richtig sehe, können die 12V für die Motorspannung ruhig von Anfang an am A4988 anliegen. Die DMOS-Bridge wird solange nicht gesteuert, wie keine Logikspannung am A4988 anliegt. Also bekommen auch die Motoren keinerlei Strom.
- - - Aktualisiert - - -
Man soll die Motorspannung nicht abklemmen, wenn der A4988 in Betrieb ist. Normal ist das kein Problem, wenn die Treiberstufe des A4988 keinen Strom zu den Motorwicklungen leitet, machst Du da aber einen Fehler im Programm, könntest Du den Treiber zerstören, wenn Du die Motorspannung nach der Logikspannung anlegst.
- - - Aktualisiert - - -
Falls Du einen Riesenelko (4700µF, 10000µF, 22000µF) hast, könntest Du auch den noch mit in die Versorgung hängen, vielleicht behebt es das Problem schon (wäre vielleicht weniger aufwendig).
Lesezeichen