Schrittmotor ansteuern mit Arduino + TB6600 In diesem Blogbeitrag möchte ich euch zeigen wir Ihr den Stepper Driver TB6600 an den Arduino Uno anschließt und betreiben könnt. Die kleinere Variante A4988 hatte ich auch schon mal in einem Beitrag gezeigt.
Beschaltung
In meinem Beispiel ist es wie folgt angeschlossen:
ENA - = GND (Masse)
ENA + = Pin 6 am Arduino
DIR - = GND
DIR + = Pin 4 am Arduino
PUL - = GND
PUL + = Pin 5 am Arduino
B - und B + Spule B vom Schrittmotor
A - und A + Spule A vom Schrittmotor
GND und VCC hier habe ich ein Netzteil mit 12 Volt angeschlossen. Hier sind Spannungen von 9 -42 Volt möglich.
Funktion
Über die roten Dipschalten wird der Steppertreiber so zu sagen Konfiguriert. Mit den Schaltern S1-S3 lassen sich die Mirosteps einstellen. Wenn die Schalter auf 1 stehen heißt das Vollschrittmodus und je höher man die Microsteps einstellt umso langsamer dreht sich der Motor. Hier hat der A4988 einen Vortteil, da diese Einstellungen über den Arduino gesteuert werden können. Man kann sich den TB6600 auch diesbezüglich umbauen, sprich Schalter aus und den Arduino angeschlossen grob gesagt.
Dann die Schalter S4-S6, hier wird die Stromstärke eingestellt für die der Schrittmotor ausgelegt ist. Achtung!!! nicht mehr einstellen was der Motor kann, sonst kann der Motor kaputt gehen.
Der Programmcode
Hier nur ein kleiner Beispielcode. Der Schrittmotor fährt 5000 Schritte in die eine Richtung und dann 5000 Schritte in die andere Richtung.
Der Code kann hier runtergeladen werden.
int Index; void setup() { pinMode(6, OUTPUT); //Enable pinMode(5, OUTPUT); //Puls pinMode(4, OUTPUT); //Direction digitalWrite(6,LOW); } void loop() { digitalWrite(4,HIGH); for(Index = 0; Index < 5000; Index++) { digitalWrite(5,HIGH); delayMicroseconds(500); digitalWrite(5,LOW); delayMicroseconds(500); } delay(1000); digitalWrite(4,LOW); for(Index = 0; Index < 5000; Index++) { digitalWrite(5,HIGH); delayMicroseconds(500); digitalWrite(5,LOW); delayMicroseconds(500); } delay(1000); }
Folgende Bauteile wurden verwendet:
1x Schrittmotor Nema 17HS4401S Stepper Motor - https://ap-url.de/17hs4401s1x Schrittmotor Nema 17HS3401S Stepper Motor - https://ap-url.de/17hs3401s
1x TB6600 Stepper Motor Driver - https://ap-url.de/tb6600
1x UNO R3 ATmega328P Board mit USB Kabel Arduino Uno R3 kompatibel - https://ap-url.de/arduinouno
2 Kommentare
Hallo,
wie würde der Sketch aussehen wenn ich zuvor einen Status Abfrage?
Habe nun das Programmiert.. allerdings fährt der Motor sehr schnell auf und zu ohne Abfrage des Analogeingangs…
int Index;
int statusJumper1 = 0;
void setup() {
pinMode(2, OUTPUT); //Schritt_Jumper1
pinMode(3, OUTPUT); //Richtung_Jumper1
pinMode(4, OUTPUT); //Freigabe_Jumper1
digitalWrite(4,LOW);
}
void loop()
{
statusJumper1 = analogRead(0);
{if (statusJumper1 == 1023);
digitalWrite(3,HIGH);
for(Index = 0; Index < 350; Index++)
{
digitalWrite(2,HIGH);
delayMicroseconds(200);
digitalWrite(2,LOW);
delayMicroseconds(200);
}
}
{if(statusJumper1 == 0);
digitalWrite(3,LOW);
for(Index = 0; Index < 350; Index++)
{
digitalWrite(2,HIGH);
delayMicroseconds(200);
digitalWrite(2,LOW);
delayMicroseconds(200);
}
}
}
Vielen Dank!
Viele Grüße
Fabian
Hallo gefällt mir und funktioniert auch.
Meine Frage :
Wo kann ich die Drehzahl ändern für einen Nema 23 ?
Hier ?
digitalWrite(5,HIGH);
delayMicroseconds(500);
digitalWrite(5,LOW);
delayMicroseconds(500);