Stepper mit TB6600 programmieren

Hallo zusammen,

Ich möchte wie im Titel genannt einen Stepper mit TB6600 programmieren und stehe aktuell auf dem Schlauch.

  1. Undzwar möchte ich den Motor so lange drehen lassen bis ein Taster gedrückt wird.
  2. Wenn dieser gedrückt wurde, soll er sich in die entgegengesetzte Richtung kurz drehen.

Hier habe ich versucht nur die Erste Bedingung zu programmieren.

int PUL = 7; //define PUL1se pin
int DIR = 6; //define DIR1ection pin
int ENA = 5; //define ENA1ble Pin
int Endschalter = 9;
int EndschalterStatus;


void setup() {
  pinMode (PUL, OUTPUT);
  pinMode (DIR, OUTPUT);
  pinMode (ENA, OUTPUT);
  pinMode (Endschalter, INPUT);
}

void loop() {
  digitalWrite (ENA, HIGH);
  digitalWrite(DIR,LOW);
  int EndschalterStatus;
  for (int i=0; i<(digitalRead EndschalterStatus); i++)    
  {
    digitalWrite(PUL,HIGH);
    delayMicroseconds(500);
    digitalWrite(PUL,LOW);
    delayMicroseconds(500);
  }

}

Habe mich zu Thema for-Funktion schon informiert, aber irgendwie komme ich noch nicht damit klar.
Ich hoffe mir kann jemand weiter helfen.
Danke
Gruß Stefan

Welchen Wert gibt "digitalRead EndschalterStatus" denn zurück?

Außerdem ist EndschalterStatus im loop() eine andere Variable als EndschalterStatus im sertup().

Ich rate Dir mal ein Buch oder Tutorials durchzuarbeiten da Du laut dem gezeigten Sketch null Ahnung von Programmierung bzw der Syntax von C hast.

Grüße Uwe

uwefed:
Ich rate Dir mal ein Buch oder Tutorials durchzuarbeiten da Du laut dem gezeigten Sketch null Ahnung von Programmierung bzw der Syntax von C hast.

Danke, kannst du mir da irgendwas empfehlen?

Hast Du Dir die Beispiele der Programmbibliothek AccelStepper schon mal angesehen? Der TB6600 sollte mit AccelStepper::DRIVER anzusprechen sein.

Die IDE enthält ein paar Beispiele zum Ausprobieren.

Nach einer Tasterentprellung könntest Du mit einer Schrittsteuerung (endlicher Automat, finite state machine) die Schritte

  • Drehen bis ein Taster gedrückt wird.
  • Anhalten.
  • Kurz in die entgegengesetzte Richtung drehen.
  • Warten auf Godot.

abarbeiten.

"Kurz" entspricht vermutlich einer Zeit, da kannst Du Dich mit millis() und der Nachtwächtererklärung hier im Forum beschäftigen.