Hola
Un saludo desde Bogotá, Colombia
Les comento...
En un proyecto necesito utilizar dos motores, un servo y tambien un motor de pasos BYj48 con el controlador ULN2003
Quiero con un potenciómetro controlar la velocidad y sentido de giro del motor de pasos, pero cuando este se acerca a una velocidad 0 hasta que no termine de dar un paso no envía la instrucción al servo, cuando el motor de pasos trabaja a alta velocidad el servo se mueve fluidamente con cada instrucción que se le dé.
Leí lo siguiente en otra página:
step(steps)
Descripción:
Enciende el motor durante un número determinado de pasos, a una velocidad determinada por la llamada más reciente a setSpeed (). Esta función es bloqueante; es decir, se va a esperar hasta que el motor se haya terminado de mover para pasar el control a la siguiente línea en su programa. Por ejemplo, si se establece la velocidad de, digamos, 1 RPM y se llama a step(100) en un motor de 100 pasos, esta función podría tardar un minuto en resolver. Para un mejor control, mantenga la velocidad alta y sólo ir unos pasos con cada llamada a step().
Alguna forma de evitar que esto suceda?
O hay otro método para controlar la velocidad y dirección de giro del motor.
Agrego parte del código del proyecto.
Mil gracias.
if ((val>=520)&&(val<=530)){
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
}
if ((val >= 530)&&(val <= 1023)){
int speed_= map(val,530,1023,0,250);
stepper.setSpeed(speed_);
stepper.step(1);
}
if ((val >=0)&&(val <= 520)){
int speed_=map(val,0,520,250,0);
stepper.setSpeed(speed_);
stepper.step(-1);
}