salve,
ho comprato due motori 28YBT-48 e due driver uln2003:
http://www.miniinthebox.com/it/28ybt-48-dc-5v-motore-passo-a-passo-con-i-driver-uln2003_p903401.html?currency=EUR&litb_from=paid_adwords_shopping&utm_source=google_shopping&utm_medium=cpc&adword_mt=&adword_ct=104789748961&adword_kw=&adword_pos=1o4&adword_pl=&adword_net=g&adword_tar=&adw_src_id=1364803665_328602601_24197850241_pla-137285715136&gclid=CjwKEAjw0pa5BRCLmoKIx_HTh1wSJABk5F_4SFyc5GBU942a6f05Kq0p9skE7qnU3knO8s15Neen2RoCfl7w_wcB
funziona tutto, ma sono molto lenti, c’è un limite alla velocità cui riesco andare, sia che utilizzi uno sketch in cui uso la libreria Stepper.h, sia che non la utilizzi
Ho visto in rete che qualcuno collega il motor stepper ad un L298, il quale a sua volta è collegato ad un L297, che è collegato al controllore (arduino), ma non capisco bene come devo collegare le cose e soprattutto in questo modo c’è speranza di aumentare la velocità, oppure no.
Allego lo sketch che ho usato;
int motorDXPin1 = 2;
int motorDXPin2 = 3;
int motorDXPin3 = 4;
int motorDXPin4 = 5;
int motorSpeed = 750;
int lookup1[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};//8,12,4,6,2,3,1,9
int rchar ;
void setup() {
pinMode(motorDXPin1, OUTPUT);
pinMode(motorDXPin2, OUTPUT);
pinMode(motorDXPin3, OUTPUT);
pinMode(motorDXPin4, OUTPUT);
}
void loop() {
for(int i = 0; i <=7; i++){
setOutput(i, lookup1);
delayMicroseconds(motorSpeed);
}
}
void setOutput(int out, int array1 []){
digitalWrite(motorDXPin1, bitRead(array1[out], 0));
digitalWrite(motorDXPin2, bitRead(array1[out], 1));
digitalWrite(motorDXPin3, bitRead(array1[out], 2));
digitalWrite(motorDXPin4, bitRead(array1[out], 3));
}
nel codice assegno a motorSpeed il valore 750, che poi si tratta di microsecondi di ritardo tra le configurazioni successive, e questo mi risulta il valore limite, nel senso che un valore minore non riesco a darlo, perché il moore non gira più se gli do un valore minore.
La stessa cosa se uso la libreria:
#include <Stepper.h>
#define STEPS 100
Stepper stepperD(STEPS,2,3,4,5 );
void setup() {
stepperD.setSpeed(330);
}
void loop() {
stepperD.step(200);
}
in questo sketch si indica il valore di velocità 330 e non riesco a impostare un valore maggiore.
E’ una limitazione del motorino che è scarso, oppure ci sono modi per migliorare ???
grazie 1000