Zitat Zitat von Moppi Beitrag anzeigen
Ich probiere das jetzt mit dem ENABLE aus. Ich hab ja den Aufbau vor mir liegen. Verstehe nicht, warum das nicht funktionieren soll, es sei denn, es gibt intern eine Beschaltung. Davon habe ich aber nichts gelesen.
ich hab jetzt sogar den arduino ausgetauscht, es rattert. Ich weiss langsam, welchen fehler ich gemacht habe, aber in den kleinen verhältnissen war das gar nicht anders möglich. Ich hab ja quasi ein kabelbaum, der läuft an den wänden entlang, schön aufgeräumt, um nicht noch mehr strippen und durcheinander in der kiste zu haben. So weit so gut, nur laufen dort die 12V leitungen (versorgung der motoren), die 5V leitungen (versorgung motortreiber, arduino...) und fast alle signalleitungen mit ihren paar mA alle schön parallel. Hätte es eigentlich wissen müssen , diese problematik war von 30 jahren mein täglich brot... Da helfen keine paar widerstände am leitungsende...

Ich muss es mit dem hilfsakku machen, sonst sehe ich kein land...

Zitat Zitat von Moppi Beitrag anzeigen
Also mit 5k bzw. 4.7kOhm am ENABLE-Pin des A4988 funktioniert es, wie erwartet. Ohne Widerstand liegen dort vom Arduino her 5V oder 0V an. Mit Widerstand zwischen ENABLE und Vdd des A4988 liegen 5V oder 0.02V an und der Arduino kann diesen ENABLE-Pin auch steuern. Nur, wenn der Arduino-Ausgang noch nicht initialisiert ist, liegen am ENABLE-Pin (wie erwartet) auch keine 5V an, was normal ist und daran liegt, dass die Ausgänge des Arduino nach Neustart zunächst im hochohmigen Zustand sind. Somit bringt der 4.7k / 5k-Widerstand genau das, was er soll, nämlich für einen definierten Pegel sorgen, wenn der Arduino-Ausgang noch hochohmig ist.
Allerdings ändert dieser Widerstand am ENABLE nichts daran, dass der Motor beim Anschalten der Versorgungsspannung des Treibers kurzzeitig in Bewegung ist, also Strom fließt. Aber vermutlich liegt das Ganze ja sowieso an der Spannungsversorgung.
hier verstehe ich auch, was Du da machst und misst, mit einem unterschied, Du hast alles schön frei auf dem tisch vor Dir liegen, bei mir ist alles etwas schwerer zugänglich und dort auch schwer zu messen...

Zitat Zitat von Moppi Beitrag anzeigen
Um den Motor auf Maximalgeschwindigkeit zu bringen, lasse ich im FULL-STEP-Modus diese Testschleife laufen:

Code:
int j=2000;
//-----------------------------------------------------------------------------
void loop() {


  if(j>280)j--;
  for(int i=0;i<3;i++){
    digitalWrite(Step, LOW);
    delayMicroseconds(j);
    digitalWrite(Step, HIGH);
    delayMicroseconds(j);
  }


}
Sollte jetzt selbsterklärend für Dich sein, inka.
ist es auch, klar...