aiuto abbassare velocità motore passo-passo

ciao ragazzi, io ho un motore passo passo wantai da 2,5A comandato dal driver dvr8825 e come suggerito da brunello22 lo sto testando con questo codice:

/*     Simple Stepper Motor Control Exaple Code
    by Dejan Nedelkovski, www.HowToMechatronics.com
*/
// defines pins numbers
const int stepPin = 3;
const int dirPin = 4;

void setup() {
  // Sets the two pins as Outputs
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}
void loop() {
  digitalWrite(dirPin, HIGH); // Enables the motor to move in a particular direction
  // Makes 200 pulses for making one full cycle rotation
  for (int x = 0; x < 200; x++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
  delay(1000); // One second delay

  digitalWrite(dirPin, LOW); //Changes the rotations direction
  // Makes 400 pulses for making two full cycle rotation
  for (int x = 0; x < 400; x++) {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
  delay(1000);
}

però a me serve che faccia 90° molto a piano e mantenga la coppia di spinta.
per rallentarlo ho provato ad aumentare il tempo di delayMicrosecond portandolo a 11000 (che comunque è veloce per il mio scopo) ma lo riesco a fermare con la mano.
per la precisione sembra che io riesca ad arretrare nel periodo di delay.
cè un modo per avere un “tiro” continuo andando a piano?
grazie

Edit. Nelle guide online dicono che il microstepping serve ad aumentare la qualità di stampa (su stampanti 3d), per il mio caso potrebbe essere la soluzione o il problema della coppia costante rimane?

Prima di tutto nell’altro post parlavamo di un motore da 1.8A e non da 2.5A , altrimenti ti avrei consigliato un’altro driver.
Poi, questo da 2.5A, che resistenza ha sulle fasi e a che tensione lo alimenti ?
Poi, a che valore hai regolato la corrente sul DRV8825 Pololu - DRV8825 Stepper Motor Driver Carrier, High Current

Nello sketch puoi usare anche un normale delay() al posto della delayMicroseconds()

Si, se usi i microsteping lo rallenti ( fino a 32 volte ), però perdi di coppia, comunque prova

Ps. Il DRV8825 va’ raffreddato per queste correnti

brunello22:
Prima di tutto nell'altro post parlavamo di un motore da 1.8A e non da 2.5A , altrimenti ti avrei consigliato un'altro driver.
Poi, questo da 2.5A, che resistenza ha sulle fasi e a che tensione lo alimenti ?
Poi, a che valore hai regolato la corrente sul DRV8825 Pololu - DRV8825 Stepper Motor Driver Carrier, High Current

Nello sketch puoi usare anche un normale delay() al posto della delayMicroseconds()

Si, se usi i microsteping lo rallenti ( fino a 32 volte ), però perdi di coppia, comunque prova

Ps. Il DRV8825 va' raffreddato per queste correnti

Si, sto usando uno da 2.5 perché me lo sono fatto prestare da un mio amico per fare la prova di fattibilità e poi in caso lo compro.ed aveva solo quello.
Alimentato a 12v, e vref regolata a 0.8.
Questa sera cerco le resistenza.
Per il raffreddamento non penso che sia un problema perché devo fare un ciclo (90 gradi, - 90 gradi) a distanza di giorni

acuplush:
Per il raffreddamento non penso che sia un problema perché devo fare un ciclo (90 gradi, - 90 gradi) a distanza di giorni

è un problema perché i motori passo passo consumano indipendentemente dal loro movimento.

brunello22:
Si, se usi i microsteping lo rallenti ( fino a 32 volte ), però perdi di coppia, comunque prova

Non perdi coppia visto in assoluto. Visto che il cambiamento di corrente tra un microstep e il sucessivo é piccolo anche la forza per muovere il rotore é piccolo. Con un carico meccanico problematico puó succedere che "salti" alcuni microstep (il rotore é meccanicamente in ritardo rispetto il campo magnetico) ma in assoluto il motore gira e ha la coppia nominale in funzione della corrente e non perde steps.
Ciao Uwe

Mi sono un po' perso nel ragionamento ma questa sera provo così capisco meglio.
Quindi anche quando il sistema è a riposo il motore ha assortimento?
Se io agisco sul pin sleep posso risolvere?
O comando l'alimentazione supplementare tramite relè e lo eccito solo al bisogno.

Basta il pin di Sleep o Enable

dal datasheet

The nENBL pin is used to control the output drivers and enable/disable operation of the indexer. When nENBL is low, the output H-bridges
are enabled, and rising edges on the STEP pin are recognized.
When nENBL is high, the H-bridges are disabled, the outputs are in a high-impedance state, and the STEP input is ignored.

Driving nSLEEP low will put the device into a low power sleep state. In this state, the H-bridges are disabled, the gate drive charge pump is stopped,
the V3P3OUT regulator is disabled, and all internal clocksare stopped. In this state all inputs are ignored until nSLEEP returns inactive high.
When returning from sleep mode, some time (approximately 1 ms) needs to pass before applying a STEP input, to allow the internal circuitry to stabilize.
Note that nRESET and nENABL have internal pulldown resistors of approximately 100 kΩ .
The nSLEEP pin has an internal pulldown resistor of 1 MΩ. nSLEEP and nRESET signals need to be driven to logic high for device operation.

acuplush:
Mi sono un po’ perso nel ragionamento ma questa sera provo così capisco meglio.
Quindi anche quando il sistema è a riposo il motore ha assortimento?
Se io agisco sul pin sleep posso risolvere?
O comando l’alimentazione supplementare tramite relè e lo eccito solo al bisogno.

Dico la mia da profano

Se non è collegato a nessun ingranaggio che mantiene la posizione raggiunta,dipende da cosa vuoi che faccia,se vuoi che resti in posizione devi comunque mantenere alimentate 1 oppure 2 bobine.

niente da fare, non ha la coppia continua che serve a me, devo optare per utilizzare un 28BYJ-48 con un riduttore meccanico