Aiuto aggiungere 2 finecorsa motore passo passo

Salve a tutti ho bisogno di aiuto, ho un codice funzionate dove riesco a muovere un motore passo passo , ho due pulsanti per muoverlo a destra e a sinistra e un potenziometro per regolare la velocità, vorrei aggiungere 2 finecorsa in modo che quando gira da una parte tocca il finecorsa e si ferma il motore, e lo stesso sull’altro pulsante, posto il codice se mi aiutate ad aggiungere questi 2 finecorsa al codice vi ringrazio anticipatamente…
Questo è il codice

#include <Stepper.h>

int forward = 2;
int reverse = 3;

Stepper motor(200, 10,11,12,13);            

void setup() {
 pinMode(forward,INPUT);
 pinMode(reverse,INPUT);
   Serial.begin(9600);
}

void loop() {
 int Speed = analogRead(A0);
 int RPM = map(Speed, 0, 1023, 0, 100);
 int f = digitalRead(forward);
 int r = digitalRead(reverse);
 if(f == 1 && r == 0 && RPM > 1){
 motor.step(1);
   motor.setSpeed(RPM);
   delay(.01);
 }
 if(r == 1 && f== 0  && RPM > 1){
   motor.step(-1);
   motor.setSpeed(RPM);
       delay(.01);
 }
 delay(5);
   Serial.println(RPM);
}

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.
Per favore edita il tuo post e usa il pulsante indicato. Grazie

#include <Stepper.h>

#define ForwardPin  2
#define ReversePin  3
#define ForFCPin    4
#define RevFCPin    5
#define SpeedPin    A0

int RPM = 0;
int Memo = 0;

boolean Forward = false;
boolean Reverse = false;
boolean ForFC = false;
boolean RevFC = false;

Stepper motor(200, 10, 11, 12, 13);

void setup() {
  pinMode(ForwardPin, INPUT);
  pinMode(ReversePin, INPUT);
  pinMode(ForFCPin, INPUT);
  pinMode(RevFCPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  Forward = digitalRead(ForwardPin);
  Reverse = digitalRead(ReversePin);
  ForFC = digitalRead(ForFCPin);
  RevFC = digitalRead(RevFCPin);

  RPM = map(analogRead(SpeedPin), 0, 1023, 0, 100);
  
  if (RPM != Memo) {
    motor.setSpeed(RPM);
    Memo = RPM;
    Serial.println(RPM);
  }
  
  if (RPM > 1) {
    if (Forward == true) {
      motor.step(1);
    }
    else if (Reverse == true) {
      motor.step(-1);
    }
  }
}

Grazie del codice ho provato il codice però non funzionano i finecorsa , e come se ci manca qualcosa nel codice, volevo chiedere se quando tocca il finecorsa, premendo il pulsante opposto posso far ritornare il motore e anche il contrario ovviamente...mi aiutate perfavore? :confused:

Hai ragione, mancavano un paio di condizioni:

#include <Stepper.h>

#define ForwardPin  2
#define ReversePin  3
#define ForFCPin    4
#define RevFCPin    5
#define SpeedPin    A0

int RPM = 0;
int Memo = 0;

boolean Forward = false;
boolean Reverse = false;
boolean ForFC = false;
boolean RevFC = false;

Stepper motor(200, 10, 11, 12, 13);

void setup() {
  pinMode(ForwardPin, INPUT);
  pinMode(ReversePin, INPUT);
  pinMode(ForFCPin, INPUT);
  pinMode(RevFCPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  Forward = digitalRead(ForwardPin);
  Reverse = digitalRead(ReversePin);
  ForFC = digitalRead(ForFCPin);
  RevFC = digitalRead(RevFCPin);

  RPM = map(analogRead(SpeedPin), 0, 1023, 0, 100);
  
  if (RPM != Memo) {
    motor.setSpeed(RPM);
    Memo = RPM;
    Serial.println(RPM);
  }
  
  if (RPM > 1) {
    if (Forward == true && ForFCPin == false) {
      motor.step(1);
    }
    else if (Reverse == true && RevFCPin == false) {
      motor.step(-1);
    }
  }
}

Grazie del codice, siccome ho cambiato driver per lo step motor adesso ho solo l'uscita Dir e Step ,e possibile fare lo stesso codice per questo driver e rimuovere potenziometro ed inserire la variabile dove posso inserire la velocità? Grazie tante in anticipo