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.
MfG
- - - Aktualisiert - - -
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.
- - - Aktualisiert - - -
Du solltest unbedingt einen Schaltplan zeichnen, mit Arduino, A4988, div. Widerständen drin, Mäuseklavier etc. Sonst kann man wirklich nicht sagen, warum was bei Dir an der Schaltung nicht funktioniert.
- - - Aktualisiert - - -
Motor Geschwindigkeit steigern
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.
MfG
- - - Aktualisiert - - -
vorgehen beim starten:
- taste drücken, damit wird eine schaltung aktiviert, die von dem akku aus ein RC-glied lädt
- wenn geladen geht eine LED an
- hauptschalter an
- arduino schaltet kleinen akku ab (RC-glied ladeerkennung)
Dann kannst Du auch die Logikspannung der Platinen mit dem Arduino bereitstellen. Falls Du Angst hast, die vier A4988-Platinen würden zu viel Strom benötigen, kann man einen BC547B mit dem Arduino-Ausgang ansteuern. Dann nimmt man den BC547B in Open-Collector-Schaltung, verbindet VDD, des A4988, mit 5V und GND, des A4988, schaltet man über den Transistor. Das Schöne dabei: man kann auch einfach 2 BC547B parallel schalten, um auf insgesamt 200mA Max-Strom zu kommen, das reicht für die vier A4988 allemal aus (eigentlich sollten 100mA ausreichen). Der Effekt: Solange der Arduino hochohmige Ausgänge hat, schaltet der Transistor nicht durch und die A4988 bekommen keinen Strom. Wenn die ohne Logikspannung sind, bewegt sich der Motor nicht. So kann man auch immer die Logikspannung der Treiber mit dem Arduino abschalten und anschalten. - Das wäre mein Joker
Zur Not wäre so auch jeder Treiber einzeln zuschaltbar, bloß bräuchte es dann vier Arduino-Ausgänge, allerdings kann dann der BC547B gespart werden, weil so viel Strom, wie ein A4988 benötigt, kann ein Arduino-Ausgang bereitstellen.
Lesezeichen