Je comprends pas pourquoi, je n’arrive pas à contrôler de manière rapide le NEMA 17 avec la librairie Accelstepper
Le moteursuit bien la direction du potar, mais lentement et de manière saccadé
, alors que j’arrive à le faire tourner très vite, le ralentir, l’accélérer sans libraire avec un potar.
#include <AccelStepper.h>
#define STEP 1 // 1 pas entier
#define motorPin1 9
#define motorPin3 8
AccelStepper stepper(STEP, motorPin1, motorPin3);
#define ANALOG_IN A0
int analog_in, positionX;
// the previous reading from the analog input
int previous = 0;
void setup()
{
Serial.begin (9600);
stepper.setMaxSpeed(5000);// max pas / seconde?
stepper.setAcceleration(2500); //max pas * sec-2
}
void loop()
{
// Read new position
analog_in = analogRead(ANALOG_IN);
positionX= map ( analog_in, 0, 1027, -200, 200); // 5V
// stepper.setMaxSpeed(500);// max pas / seconde?
// stepper.setAcceleration(250); //max pas * sec-2
stepper.moveTo(positionX);
stepper.setSpeed(500);
stepper.runSpeedToPosition();
// remember the previous value of the sensor
previous = positionX;
Serial.print ( "A0: " ) , Serial.println ( analog_in );
Serial.print ( "posX: " ) , Serial.println ( positionX );
Serial.print ( "previous" ) , Serial.println ( previous );
}
Et si vous enlevez les print qui vont vite saturer les 64 octets du buffer à 9600 bauds et devenir bloquants...
Mettez le stepper.setSpeed(500); dans le setup
Appelez stepper.moveTo(positionX); que si la position cible a changé
Dans le map utilisez 1023 (ou 1024 si vous voulez avoir +200 pas uniquement à 1023) mais pas 1027...
Et passez à 112500 ou plus pour le moniteur série pour tous vos sketch, dans l’échange avec votre mac/pc il n’y a aucune raison d’aller lentement