Schrittmotor ansteuern mit Arduino + TB6600

2 Kommentare
Schrittmotor ansteuern mit Arduino + TB6600

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/17hs4401s
1x 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
Arduino Wissen - Info

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

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);

Peter

Hinterlassen Sie einen Kommentar

Bitte beachten Sie, dass Kommentare vor der Veröffentlichung genehmigt werden müssen.