sto utilizzando uno stepper con uln2003 a 64 passi
Come si fa a capire la massima velocità RPM dal datasheet (qui in allegato).
Volevo farlo girare ad una velocità molto più elevata dei circa 16 RPM che riesco a raggiunge.
Superato il valore 500 della velocità myStepper.setSpeed(500) il motore vibra ma non gira più.
Premetto che lo sto alimentando con i 5v di Arduino
Dalla scatola si evince che possa variare tra i 5v e i 12 v.
Ho provato ad alimentarlo anche con una batteria da 9 V, scaldava un pochino e non aumentava la velocità
Ecco il codice ed il datasheet
#include <Stepper.h>
const int stepsPerRevolution = 64; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
void setup() {
// set the speed at 60 rpm:
myStepper.setSpeed(500);
// initialize the serial port:
Serial.begin(9600);
}
void loop() {
myStepper.step(1);
}
Guarda, non sono un esperto di stepper, ma, di sicuro, in quel modo tanto veloce NON vai ...
... tu stai avanzando di 1 step alla volta ... ci devi mettere il tempo che:
la for, che è a te nascosta nel main del "core", chiami la funzione loop()
Il tempo che la funzione loop() chiami il metodo step() della libreria per fare UN SOLO step
il tempo che fisicamente impiega quel metodo a fare ruotare di UNO step il motore
tutti i tempi di ritorno dalle suddette funzioni e la ripetizione del ciclo
Se vuoi avere velocità devi guardare gli altri esempi della libreria e NON quello per il movimento di uno step alla volta ...
Grazie per la risposta ma se aumento gli step a due ad esempio, non significa che fa due step insieme. Da quanto ho capito non si possono fare due step alla volta ma sempre uno alla volta ma con velocità maggiore. Cmq ho trovato questo che mi ha un po' illuminato.
Inoltre gli step non sono 64 ma fino a 2048 per un giro. Probabilmente il mio stepper è uno stepper di precisione. Non capisco però cosa significa 1/64
Io pensavo fossero i passi che ci volevano per fare un giro ed invece dal doc che ho allegato parla di riduttore
Io sono sempre dell'idea che definire stepper quegli affari è un azzardo
1/64 significa che il motore è da 64 step/giro, solo che c'è anche il riduttore integrato quindi per far fare un giro completo all'albero lento del riduttore devi moltiplicare per il rapporto di riduzione.
Velocità spinte non le otterrai mai con questi motorini, perché già di loro hanno una frequenza massima piuttosto bassa che devi poi dividere per il rapporto di riduzione.
Comunque finché si tratta di "giocare" vanno bene, ma se devi fare qualcosa di più serio io ti consiglio di usare degli stepper più performanti con relativo driver bipolare (A4988, DRV8825, TMC2208, TMC2209 etc etc)
ti ringrazio per la risposta ma potresti spiegarmelo un po' meglio
Nel mio codice devo mettere come stepsPerRevolution 64 oppure 2048.
Considera che se faccio myStepper.step(64); non fa un giro completo.
Per fargli fare un giro completo devo mettere myStepper.step(2048);
In ogni caso grazie del consiglio ed io non ne devo fare un utilizzo industriale.
Sapresti consigliarmi qualche motorino non troppo costoso che va un pò più veloce senza perdere troppa coppia
Devi considerare tutto l'assieme completo, quindi vanno messi 2048 passi per rivoluzione.
Per quanto riguarda stepper economici, ma un po' più decenti (molto di più in realtà) puoi guardare tra i ricambi per le stampanti 3D: nel 90% dei casi si tratta di stepper bipolari del tipo NEMA17 (è lo standard che definisce flangia e dimensioni) con corrente di fase da 1-2A e coppia di lavoro nell'ordine di grandezza dei 0.4/0.8 Nm (contro i 34 mNm, ovvero 34 milli-Netwon*metro = 0.034Nm molto teorici del 28BJY-48).
Dipende molto dallo store, ma motori con queste caratteristiche costano intorno ai 10€.