DETENER MOTOR PASO A PASO


buenas tardes, lo que sucede es que estoy queriendo un ascensor y uso pues muchas condiciones para controlarlos, utilizo sensores led infrarrojo en cada piso, el caso es que creo que no se esta deteniendo cuando el pulso es alto como lo envió acá y sigue derecho con esta parte del código
 
void loop()
{
  if(serial1.available());
  {
    pisodestino=serial1.parseint();
if(pisoactual>pisodestino)
{
   while(pisoactual>pisodestino)
    {
      mover(0);
      sensores();
    }
}
   else if(pisoactual==pisodestino)
   {
     stepper.step(0);
   } 
   else if(pisoactual<pisodestino)
   {
   
     mover(1);
     sensores();
     
   }
   
   serial1.println(pisodestino);
  }
}
 
si ven cuando pisoactual es igual piso destino se debe detener pero no lo hace, mi pregunta es si la libreria <stepper.h> maneja de esta manera la interrupción directa un motor paso paso o se debe hacer de otra manera...?

programa incompleto. pega todo el código.
falta esquema de tu proyecto. hazlo mano alzada pero que visualice la idea para que otro la entienda.

si trabajas con un stepper no requieres sensores que te digan en que piso estas porque un stepper hace lo que tu le pides. traducido, cada paso del stepper sera un desplazamiento en tu ascensor, sea para arriba o para abajo.
supongamos que moverse un piso sean 20 pasos (por dar un ejemplo), entonces 3 pisos seran 60.
y solo giras izq o derecha para ir arriba o abajo.

no hacen falta sensores de ningun tipo.
ahora si forma parte de la tarea usar un stepper como un motor bobo, que se mueve y debe esperar al sensor tal como suele ocurrir en un ascensor, entonces si.

introduces el piso por el puerto serie. detectas el número entero con parseint.
como no pones todo el código no sabemos como sensores modifica pisoactual para luego detenerse o seguir.

asi que de nuevo : código completo


Arduino Forum > International > Español > Software (Moderators: surbyte, Hector_A) > DETENER MOTOR PASO A PASO


arduino

Comments