ich habe jetzt auch einen test gemacht, ich kann kein stoppen des Stepper im video sehen...

https://youtu.be/2idyEs3677M

hier der testcode

Code:
// DIR und STEP pins definieren

#define dirPin_HR 4 //8
#define stepPin_HR 5 //9

//enable pins definieren

#define enbl_HR 43

//resett pin definieren
#define PIN2RESET 10

//steps pro umdrehung definieren:
#define stepsPerRevolution 200 //1600

#define microstep_pin_S1 42
#define microstep_pin_S2 44
#define microstep_pin_S3 46


uint8_t taste = 0;

uint8_t s_vor = 0;
uint8_t s_rueck = 0;
uint8_t s_stop = 0;
uint8_t s_parken = 0;


void setup()
{

  //pins als output:

  pinMode(dirPin_HR, OUTPUT);
  pinMode(stepPin_HR, OUTPUT);
  pinMode(enbl_HR, OUTPUT);

  //resett pin zustand definieren
  pinMode(PIN2RESET, INPUT);

  //stepper full step
  digitalWrite (microstep_pin_S1, LOW);
  digitalWrite (microstep_pin_S2, LOW);
  digitalWrite (microstep_pin_S3, LOW);


  Serial.begin(115200);
  Serial1.begin(115200);
  Serial.println("code----- /home/georg/Arduino/outdoor_robo/stepper/test_ein_stepper/ohne_lib/outdoor_FB_switch_richtung_stop_HR_bluetooth_1");

  Serial.println("bluetooth übertragung!");

  //enable pins deaktivieren:

  digitalWrite(enbl_HR, LOW);

  //resett pin aktivieren
  digitalWrite(PIN2RESET, HIGH);
}


void loop()
{
  if (Serial1.available())
  {
    taste = Serial1.read();
    Serial.println(taste);

    tasten_abfrage();
  }


  richtung_abfrage();
}

/***********************************************************/
void richtung_abfrage(void)
{
  if (s_vor == 1) vorwaerts();
  if (s_rueck == 1) rueckwaerts();
  if (s_stop == 1) alle_stepper_stop();
  if (s_parken == 1) parken();
}

/***********************************************************/
void tasten_abfrage(void)
{
  switch (taste)
  {


    case 116:// fahre vor - FB quer smartphone
      {

        vorwaerts();
        break;
      }

    case 115:// fahre rückwärts - FB quer smartphone
      {

        rueckwaerts();
        break;
      }

    case 49: //alle Stepper stop - FB quer smartphone
      {

        alle_stepper_stop();
        break;
      }

    case 51: //parken - FB quer smartphone
      {

        parken();
        break;
      }

    case 53: //half step - FB quer smartphone
      {

        half_step();
        break;
      }

    case 118: //quarter step - FB quer smartphone
      {

        quarter_step();
        break;
      }

    case 98: //eight step - FB quer smartphone
      {

        eight_step();
        break;
      }

  }

}

/***********************************************************/

void full_stepp (void)
{
  digitalWrite (microstep_pin_S1, LOW);
  digitalWrite (microstep_pin_S2, LOW);
  digitalWrite (microstep_pin_S3, LOW);
}

void half_step (void)
{
  digitalWrite (microstep_pin_S1, HIGH);
  digitalWrite (microstep_pin_S2, LOW);
  digitalWrite (microstep_pin_S3, LOW);
}

void quarter_step (void)
{
  digitalWrite (microstep_pin_S1, LOW);
  digitalWrite (microstep_pin_S2, HIGH);
  digitalWrite (microstep_pin_S3, LOW);
}

void eight_step (void)
{
  digitalWrite (microstep_pin_S1, HIGH);
  digitalWrite (microstep_pin_S2, HIGH);
  digitalWrite (microstep_pin_S3, LOW);
}

void sixteen_step (void)
{
  digitalWrite (microstep_pin_S1, HIGH);
  digitalWrite (microstep_pin_S2, HIGH);
  digitalWrite (microstep_pin_S3, HIGH);
}


void parken(void)
{
  //enable pins deaktivieren

  digitalWrite(enbl_HR, LOW);

  s_vor = 0;
  s_rueck = 0;
  s_stop = 0;
  s_parken = 1;
}

void alle_stepper_stop(void)
{
  //enable pins deaktivieren

  digitalWrite(enbl_HR, HIGH);

  s_vor = 0;
  s_rueck = 0;
  s_stop = 1;
  s_parken = 0;

  //  reboot();
}

/***********************************************************/
void vorwaerts(void)
{
  if (s_vor == 0)
  {
    // enable pins aktivieren:

    digitalWrite(enbl_HR, HIGH);

    //richtung bestimmen

    digitalWrite(dirPin_HR, HIGH);

    s_vor = 1;
    s_rueck = 0;
    s_stop = 0;
    s_parken = 0;
  }
  else {

    digitalWrite(stepPin_HR, HIGH);
    delayMicroseconds(500);

    digitalWrite(stepPin_HR, LOW);
    delayMicroseconds(500);
  }
}
/**********************************************************/
void rueckwaerts(void)
{
  if (s_rueck == 0)
  {
    // enable pins aktivieren:

    digitalWrite(enbl_HR, HIGH);

    //richtung bestimmen

    digitalWrite(dirPin_HR, LOW);

    s_vor = 0;
    s_rueck = 1;
    s_stop = 0;
    s_parken = 0;
  }
  else {

    digitalWrite(stepPin_HR, HIGH);
    delayMicroseconds(500);

    digitalWrite(stepPin_HR, LOW);
    delayMicroseconds(500);
  }
}

/***********************************************************/


/*
  void links_drehen(void) //mit beschleunigung und sound
  {
  //enable pins aktivieren
  digitalWrite(enbl_VL, HIGH);
  digitalWrite(enbl_HL, HIGH);
  digitalWrite(enbl_VR, HIGH);
  digitalWrite(enbl_HR, HIGH);

  //richtung bestimmen
  digitalWrite(dirPin_VL, HIGH);
  digitalWrite(dirPin_HL, HIGH);
  digitalWrite(dirPin_VR, HIGH);
  digitalWrite(dirPin_HR, HIGH);

  //"j = 2000": der Anfangswert für das Delay in Microsekunden

  for (int i = 0, j = 2000; i < stepsPerRevolution; i++)
  {
    //"j > 500": der Endwert für das Delay in Microsekunden - bestimmt auch die Endgeschwindigkeit (mindestens 250 bis 300)

    if (j > 300) j--;
    //"z < 3": wieviele Schritte mit dem eingstellten Delay "j" gemacht werden sollen, bevor es reduziert wird

    for (int z = 0; z < 3 && i < stepsPerRevolution; z++)
    {
      digitalWrite(stepPin_VL, HIGH);
      digitalWrite(stepPin_HL, HIGH);
      digitalWrite(stepPin_VR, HIGH);
      digitalWrite(stepPin_HR, HIGH);
      delayMicroseconds(j);
      digitalWrite(stepPin_VL, LOW);
      digitalWrite(stepPin_HL, LOW);
      digitalWrite(stepPin_VR, LOW);
      digitalWrite(stepPin_HR, LOW);
      delayMicroseconds(j);
      i++;
    }
  }
  }
*/
/***********************************************************/