Salve, per la prima volta ho la necessità di usare dei motori passo passo. Ho acquistato 3 di questi motori. Nell'inserzione dice di usare solo due pin per comandare i motori, ma come dovrei fare precisamente?
Inoltre sulla scheda del driver ci sono 4 pin: " - + 5-12v " gli ultimi due sono ponticellati, perchè? L'alimentazione va su - e + giusto?
Scusate se le domande possono sembrare banali, ma come già detto è la prima volta che li uso.
nid69ita:
??? nell'inserzione dice:
"Sono presenti 7 ingressi ma per il motore andranno sfruttati solo gli ingressi da IN1 a IN4," percio IN1,IN2,IN3,IN4
Si si, ho sbagliato a leggere. Comunque questi 4 pin corrispondono alle rispettive fasi del motore giusto? Per pilotarlo mi basta mandare livelli alti sulle fasi da azionare?
C'è qualche guida che mi spieghi per bene come gestire le fasi?
nella pagina c'e' un link "data download" che ti scarica uno zip con degli esempi,
ma ti consiglio di usare la libreria standard che viene messa già con Arduino
Posso alimentare la scheda del driver a 12v?
Quel jumper a cosa serve?
Inoltre è possibile sapere la posizione in cui si trova un motore?
Come faccio a sapere la velocità massima del motore?
Con 500Hz hai 500 passi al secondo che corrispondono a 500/4096= 0,122 giri al secondo e 500*60/4096= 7,32 Giri al minuto.
Con 900Hz hai 0,219 Giri al secondo e 13,18 Giri al minuti
uwefed:
Con 500Hz hai 500 passi al secondo che corrispondono a 500/4096= 0,122 giri al secondo e 500*60/4096= 7,32 Giri al minuto.
Con 900Hz hai 0,219 Giri al secondo e 13,18 Giri al minuti
Se applicassi una ruota dentata grande al motorino ed una piccola all'asse della ruota, otterrei dei buoni risultati?
Altrimenti che motori mi consiglieresti?
Perchè in questo video riesce a raggiungere la velocità di 14rpm?
Usando il suo stesso codice, ovvero:
#include <Stepper.h>
const int stepsPerRevolution = 2037; // 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,11,9);
int stepCount = 0; // number of steps the motor has taken
void setup() {
// nothing to do inside the setup
}
void loop() {
// read the sensor value:
int sensorReading = analogRead(A0);
// map it to a range from 0 to 100:
int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
// set the motor speed:
if (motorSpeed > 0) {
myStepper.setSpeed(motorSpeed);
// step 1/100 of a revolution:
myStepper.step(stepsPerRevolution/100);
}
}
Il motorino vibra molto velocemente ma non si muove. Come mai a me ruota in modo irregolare, cioè gira un attimo poi si ferma, poi riparte, ecc?
Sicuro che siano gli stessi motori? Prova a modificare la costante stepsPerRevolution come indicato dallo stesso autore magari lui ha un numero di step diversi per ogni rotazione (prova a mettere 900).
Si avevo fatto la prova a mettere 900 e già ora le cose vanno meglio. Però ho due domande:
Ma i led delle fasi attiva non dovrebbero accendersi in sequenza? Perchè usando la funzione stepper() i led (e quindi credo anche le fasi) si accendono in modo disordinato.
Con la costante stepsPerRevolution a 900 il motorino si scalda moltissimo. E' normale?
--- EDIT ---
Ho settato i pin in questo modo:
Stepper myStepper(stepsPerRevolution, 8,10,9,11);
adesso i led delle fasi si accendono in sequenza:
A S S A
A A S S
S A A S
S S A A
--- EDIT2 ---
Settando stepsPerRevolution a 900 e motorSpeed a 33 ottengo la velocità massima del motorino. Oltre questi valori il motorino non gira ma vibra solamente. Inoltre ha anche abbastanza forza, con le mani non riesco a bloccarlo.
#include <Stepper.h>
const int stepsPerRevolution = 900;
Stepper myStepper(stepsPerRevolution, 8,10,9,11);
void setup() {
}
void loop() {
// int sensorReading = analogRead(A0); // fotores
int motorSpeed = 33;//map(sensorReading, 0, 1023, 0, 100);
if (motorSpeed > 0) {
myStepper.setSpeed(motorSpeed);
myStepper.step(stepsPerRevolution/100);
}
Però resta il problema che scalda molto! E' normale? Come posso risolvere?
È normale che scaldi molto ed non é un problema se alimenti il motore a 5V.
Ritornado a una domanda precedente: Non ha senso che aggiungi dei ingranaggi per far girare piú veloce la ruota accoppiata al motore. Se il motore Ti gira troppo lento perché ha un ingranaggio demoltiplicatore con un rapporto troppo grande é meglio che prendi altri motori senza o con un rapporto del ingranaggio minore.
Quei motorini sono degli stepper del cavolo. Van bene solo per fare delle piccole prove ed imparare a muovere i primi passi con gli stepper.
Su ebay ne trovi migliaia che li vendono anche a cifre ridicole schedina+stepper 5v (io ne ho uno comprato in cina).
Inoltre non sempre lo sketch standard funziona perchè la shield che vendono non è sempre uguale.
Su quella che ho io dovetti cambiare i parametri nello sketch.