Ich verwende den Pololu DRV8825 Schrittmotortreiber , um einen NEMA 17 Schrittmotor mit einem Arduino Uno zu steuern . Laut der Pololu-Website sollte die Schaltung wie folgt verdrahtet sein:
Ich bin jedoch ein wenig von dieser genauen Skizze abgewichen:
- Der Arduino (Mikrocontroller) wird über ein an den Computer angeschlossenes USB-Kabel mit Strom versorgt
- Ich habe den 5V Pin am Arduino mit der + Schiene auf einem Steckbrett verbunden. Ich habe dann zwei Drähte auf dieser Schiene mit den RESET- und SLEEP- Pins am Treiber verbunden.
- Ich benutze eine 9V Batterie, um den Motor anzutreiben.
- Ich habe die DIR- und STEP- Pins mit den Arduino Uno-Pins 12 und 13 verbunden.
Folglich habe ich die folgende Skizze codiert und hochgeladen:
int stp = 13; //connect pin 13 to step
int dir = 12; // connect pin 12 to dir
int a = 0; // gen counter
void setup()
{
pinMode(stp, OUTPUT);
pinMode(dir, OUTPUT);
}
void loop()
{
if (a < 200) //sweep 200 step in dir 1
{
a++;
digitalWrite(stp, HIGH);
delay(10);
digitalWrite(stp, LOW);
delay(10);
}
else
{
digitalWrite(dir, HIGH);
a++;
digitalWrite(stp, HIGH);
delay(10);
digitalWrite(stp, LOW);
delay(10);
if (a>400) //sweep 200 in dir 2
{
a = 0;
digitalWrite(dir, LOW);
}
}
}
ERGEBNIS
Der Schrittmotor dreht sich nicht. Stattdessen zischt es nur mit hoher Tonhöhe. Nach kurzer Zeit wird der Fahrer sehr heiß.
Dinge, die ich versucht habe
- Ich habe noch einmal überprüft, ob die angeschlossenen Schrittdrähte ordnungsgemäß mit den Stiften "A" und "B" des Treibers verbunden sind.
- Ich habe versucht, das A1-A2-Paar und das B1-B2-Paar in allen möglichen Kombinationen umzukehren. Alle Kombinationen ergeben das gleiche Ergebnis wie oben.
- Ich habe versucht, die Motorstromversorgung auf 12 V (8 AA-Alkalibatterien) zu erhöhen. Das gleiche Ergebnis tritt auf.
- Ich habe zweimal überprüft, ob der 100-Mikro-FF-Radialelektrolytkondensator mit dem langen Ende an die positive Motorversorgung und dem kurzen Ende an die negative Motorversorgung angeschlossen ist (natürlich auf einer anderen Steckbrettschiene als die logische Stromversorgung).
- Ich habe versucht, den 3,3-V-Pin anstelle des 5-V-Pins zu verwenden, um eine Verbindung zu SLEEP und RESET am Treiber herzustellen. Wiederum tritt das gleiche Ergebnis auf.
Ich bin mir nicht sicher, was ich als nächstes versuchen soll, um meine Schaltung zu debuggen.
Meine Vermutung:
Ich habe jedoch einen Verdacht, der auf einem kleinen Warnfeld auf der pololu-Website beruht, das lautet:
Achtung: Wenn Sie die Kopfstifte so installieren, dass die Siebdruckseite nach oben und die Komponenten nach unten zeigen, kann dies den Bewegungsbereich des Trimpots einschränken, mit dem die Strombegrenzung eingestellt wird. Wenn Sie die Verteilerstifte in dieser Ausrichtung installieren möchten, stellen Sie bitte die Strombegrenzung ein, bevor Sie die Stifte einlöten.
Die Art und Weise, wie ich die Header auf den Treiber gelötet habe, sieht wie in der unteren linken Ecke des Bildes unten aus:
Meine Frage:
Kann ich angesichts der Tatsache, dass mein Schrittmotor einen Strom von 1,7 A benötigt, irgendetwas tun, um diese Schaltung zu verbessern, damit sie funktioniert? Habe ich irgendwelche Fehler gemacht? Gibt es noch etwas, das ich versuchen oder überprüfen sollte? Habe ich den Header falsch gelötet?
digitalWrite(stp, HIGH);
und niedrig? das taktet es. Ich denke, es will, dass du es hoch lässt.