Bonsoir,
Je possède une paire de moteurs bipolaires 28BYJ-48, que je fait tourner grâce avec ma Arduino Uno. Actuellement je décortique la librairie stepper.h fournie avec l'IDE ardui, et je me pose la question suivante :
Quel est ce curieux calcul que subit step_delay dans la méthode SetSpeed ? step_delay est sensé représenter le délai entre les pas, en ms.
Dans les exemples donnés le paramètre passé est identifié comme étant le nombre de rpm (rotation per minutes?)...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 /*Sets the speed in revs per minute*/ void Stepper::setSpeed(long P_whatSpeed) { this->step_delay = 60L * 1000L / this->number_of_steps / P_whatSpeed; //number_of_steps vaut ici 64 }
Si je rentre en paramètre 128 je me retrouve avec this->step_delay = 7.3ms, et sachant que step_delay est une valeur entière de type unsigned long... bah la valeur est tronquée a 7... Drôle de méthode... Pour ne pas dire drôle de librairie...
Je ne comprend pas le sens de ce calcul... pourquoi ne pas demander une vitesse directement, pourquoi triturer step_delay à coup de divisions et de multiplications... pourquoi 60 * 1000...
Partager