Controlar motor paso a paso bipolar con L293D

Hola, soy nuevo con arduino y necesito instalar un motor paso a paso en un telescopio, para controlar el ajuste de foco, por lo tanto debe tener un control de dirección con dos pulsadores, que gire el motor solo cuando los pulsadores están presionados, además de contar con un potenciómetro para ajustar la velocidad de giro, probe con este codigo pero tengo dos inconvenientes: 1-al presionar cualquier pulsador, el motor sigue girando sin parar. 2- la respuesta de cambio de giro es lenta y aveces no responde. Les agradezco cualquier ayuda.

#include <Stepper.h> //Importamos la librería para controlar motores paso a paso

#define STEPS 96 //Ponemos el número de pasos que necesita para dar una vuelta. 96 en nuestro caso

// Ponemos nombre al motor, el número de pasos y los pins de control
Stepper stepper(STEPS, 8, 9, 10, 11); //Stepper nombre motor (número de pasos por vuelta, pins de control)

int pot;  //Variable lectura potenciómetro
int derecha=3;  //Pulsador derecha
int izquierda=2;  //Pulsador izquierda
int direccion;  //Variable para indicar la direccón

void setup()
{
 pinMode(derecha,INPUT);
 pinMode(izquierda,INPUT);
}

void loop()
{
 pot=analogRead(A0); //Lectura potenciómetro
 pot = map(pot, 0, 1023, 5, 60); //Establecemos la velocidad entre 5 y 60 rpm

 stepper.setSpeed(pot); //Indicamos la velocidad al motor

 stepper.step(direccion); //Indicamos la dirección al motor

 if(digitalRead(izquierda)==HIGH)
 {
    direccion=96;  //Si pulsamos el pulsador izquierdo, el motor gira a la izquierda
 }

 if(digitalRead(derecha)==HIGH)
 {
    direccion=-96;  //Si pulsamos el pulsador derecho, el motor gira a la derech
 }
}

Hola Cybernauta77, prueba esto:

if(digitalRead(izquierda)==HIGH)
  {
     direccion = 96;  //Si pulsamos el pulsador izquierdo, el motor gira a la izquierda
  }
 
  else if(digitalRead(derecha)==HIGH)
  {
     direccion = -96;  //Si pulsamos el pulsador derecho, el motor gira a la derecha
  }
  
  else
  {
     direccion = 0; //Si no pulsamos nada, el motor se detiene
  }

No le decias en nigun momento que se parara, espero ayudarte :slight_smile: