Bonjour, j'ai un moteur pas à pas 17HS4401 avec un DVR8825 en mode 1/32 step avec un Arduino Nano.
J'utilise ce code, mais le moteur tourne à env 200trs/min, si je descends en dessous de 10 le moteur ne tourne plus, il peut tourner plus vite ? Sur les im primantes 3D ils peuvent monter plus vite en 1/32 .
const int stepPin = 3;
const int dirPin = 2;
const int delayMoteur=10;
void setup() {
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
digitalWrite(dirPin,HIGH);
}
void loop() {
digitalWrite(stepPin,HIGH);
delayMicroseconds(delayMoteur);
digitalWrite(stepPin,LOW);
delayMicroseconds(delayMoteur);
}
Un 17HS4401 peut tourner à plus vite que 200tr/mn et le nombre de micro-pas n'a pas grand chose à voir avec la vitesse limite. Sauf qu'en mode pas, on peut avoir des résonnances qui limitent la vitesse beaucoup plus bas.
MAIS le moteur ne peut pas démarrer au delà d'une certaine vitesse, tu as mesuré 200tr/mn, c'est possible. Pour avoir des vitesses supérieures, il faut démarrer lentement puis accélérer. C'est ce que font plusieurs bibliothèques.
Pour la suite cela dépend de la carte utilisée.
Note: comment as-tu calculé la vitesse de rotation?
BasicStepperDriver.h et accelstepper.h utilisent toutes deux une extraction de racine carré pour calculer les pas, ce qui limite la vitesse d'envoi des pas.
BasicStepperDriver.h et accelstepper.h utilisent toutes deux une extraction de racine carré pour calculer les pas, ce qui limite la vitesse d'envoi des pas.
J'ai écris quickStep pour aller plus vite avec un seul moteur, on peut aller jusqu'à 9µs/pas soit 1000tr/mn (en 32 micro-pas) si le moteur le permet.
Pour compléter ce qu'à dit vileroi les moteurs pas à pas sont caractérisés par deux courbes de couples fonction de la vitesse.
a) le couple moteur arrêté
b) le couple moteur lancé.
Une image vaut mieux qu'un long discours
On ne peut démarrer que dans la zone qui est appelée "Plage de démarrage", une fois démarré il est possible de passer dans la "Plage d'accélération".