ayuda controlar motor a pasos con sensor ultrasonidos

Hola, soy nuevo en esto de arduino y mi idea es preparar una instalación artística en la que mediantes el sensor de ultrasonidos pueda asignar a un motor a pasos una séria de vuelta en ambos sentidos.
A partir de la idea principal he intentado hacer una mezcla entre las librerias de ultrasonic.h y stepper.h

Pongo el codigo que he creado y que para empezar es muy senzillo solamente quiero que cuando el valor en cm del sensor sea inferior a 20 el motor gire una vuelta completa en un sentido y luego vuelta a la posicion inicial.

El motor a pasos es el 28BYJ-48 con el driver ULN2003 y el sensor ultrasonidos es el HC-SR04.

#include <Ultrasonic.h>

#include <Stepper.h>

#define STEPS 200

int Distancia;

Ultrasonic ultrasonic(7,A0); 
Stepper stepper(STEPS, 8, 9, 10, 11);

void setup()
{
  Serial.begin (9600); 
 // Velocidad del motor en RPM
 stepper.setSpeed(100);
}
void loop(){  
 
   //leemos el sensor de ultrasonidos y guardamos el valor en una variable  
   Distancia = ultrasonic.Ranging(CM);  
 
   //si la distancia es menor de 20...  
   if(Distancia <= 20){ 
     //Girar una vuelta entera en un sentido
   
 stepper.step(200);
 delay(500); //Pequeña pausa

 //Girar una vuelta entera en sentido contrario
 stepper.step(-200);
 delay(500); //Pequeña pausa
}
}

La cosa es que me dice que está todo bien pero lo cargo y no funciona nada, alguien me puede hechar una mano? también estoy abierto a otras sugerencias para llegar al mismo resultado ( servo motor trucado, por ejemplo tmb lo he estado mirando)

MUchas gracias!!

saludos

Una consulta suelta no es un proyecto!
Lo muevo a Software, donde debiste haberlo posteado originalmente.
Pero antes de continuar escribiendo, por favor, lee la normas del foro y edita tu mensaje original.

xotis:
Hola, soy nuevo en esto de arduino y mi idea es preparar una instalación artística en la que mediantes el sensor de ultrasonidos pueda asignar a un motor a pasos una séria de vuelta en ambos sentidos.
A partir de la idea principal he intentado hacer una mezcla entre las librerias de ultrasonic.h y stepper.h

Pongo el codigo que he creado y que para empezar es muy senzillo solamente quiero que cuando el valor en cm del sensor sea inferior a 20 el motor gire una vuelta completa en un sentido y luego vuelta a la posicion inicial.

El motor a pasos es el 28BYJ-48 con el driver ULN2003 y el sensor ultrasonidos es el HC-SR04.

#include <Ultrasonic.h>

#include <Stepper.h>

#define STEPS 200

int Distancia;

Ultrasonic ultrasonic(7,A0);
Stepper stepper(STEPS, 8, 9, 10, 11);

void setup()
{
Serial.begin (9600);
// Velocidad del motor en RPM
stepper.setSpeed(100);
}
void loop(){

//leemos el sensor de ultrasonidos y guardamos el valor en una variable
Distancia = ultrasonic.Ranging(CM);

//si la distancia es menor de 20...
if(Distancia <= 20){
//Girar una vuelta entera en un sentido

stepper.step(200);
delay(500); //Pequeña pausa

//Girar una vuelta entera en sentido contrario
stepper.step(-200);
delay(500); //Pequeña pausa
}
}

La cosa es que me dice que está todo bien pero lo cargo y no funciona nada, alguien me puede hechar una mano? también estoy abierto a otras sugerencias para llegar al mismo resultado ( servo motor trucado, por ejemplo tmb lo he estado mirando)

MUchas gracias!!

saludos

Si buscas informacion de ese motor en google ,veras que en realidad tiene 8 pasos por vuelta mas una reductora de 1/64 ,por lo que para dar una vuelta entera en modo full step necesitas 8*64 = 512 pasos .la velocidad que pones es una burrada para ese motor por el mismo motivo,como mucho unas 13-15 rpm.La libreria stepper es bloqueante ,mientras el motor este girando ,no va a ejecutar nada mas.

hola y muchas gracias de antemano, pues realmente puse 4 pasos porque en un post de una página ponia que el frabicante de este modelo de motor recomienda el half pass por que el motor trabaja mejor.
Y en cuanto a que la libreria stepper bloquea el sistema mientras esta en funcionamiento, hay alguna otra libreria para motores a pasos que no bloquee mientras esta en funcionamiento??

Merci!

mira la libreria accelstepper.