Controling Engine with E18-D80NK Sensor

Hello,

I am working on a school project, and I want my engine to run, simulating the opening of a gate, and then to close. It could only start opening after receiving the sensor’s detect signal.
In this code, the engine starts when the sensor detects, but then it doesn’t turn the other way, and I’m having trouble with this.

#include <Stepper.h> // Incluindo a biblioteca do Motor de Passo
int pinosensor = 7; //Pino do Sensor
int leitura = 0;  //Armazena o valor lido
int leitura_anterior = 0;
int passos = 1000;
const int stepsPerRevolution = 65; // Numero de passo por volta

Stepper myStepper(stepsPerRevolution, 8,9,10,11); // Faz a inicialização da Biblioteca usando as portas 8,9,10,11
// setup (executado apenas uma vez)


void setup() {
        pinMode(pinosensor, INPUT);
        myStepper.setSpeed(310); // velocidade do motor definida em 300
}

void loop()
{
  //Gira o motor no sentido horario
  leitura = digitalRead(pinosensor);
 
  if (leitura == 0 && leitura != leitura_anterior)
  {
    myStepper.step(passos);   
  }

  if (leitura != 1000 && leitura != leitura_anterior)
  {
    myStepper.step(-passos);   
  }
 
  leitura_anterior = leitura;
}