stepper e shield: come imposto i jumper?

ciao ragazzi, ho questo sketch, e dovrei collegarci un motore stepper. Ho una shield per motori stepper, ma se la collego non funziona. Il motore è a 5v, e lo alimento con un alimentatore 5v 2a, ed è collegato correttamente.

Alimento tutto e la shield non si accende, se però sfioro i contatti dei jumper si accendono i led e il motore fa qualche passo, poi si ferma!

Ripeto, è collegato e saldato correttamente, dove sbaglio?

//per variare il tempo di stop del motore, cambiare il valore "delay" tra parentesi (è in millisec) nella stringa void loop, alla fine..//

// nella stringa successiva, chiamata void rotate3, aggiungendo o eliminando le stringhe "rotate (); " il motore aggiunge o elimina movimenti//

int shutter_on = 200; //tempo di pressione per attivare la cam, da settare intorno i 100 e 300
int shutter_off = 1500; // tempo di attesa prima di attivare il motorino

int wakeup = 300; //time to activate wakeup (focus)
int wakewait =200; //time between wake and shutter

int outpin = 13; //uscita per lo scatto
int wakepin = 12; //uscita per la messa a fuoco

// init motorino
int motorPin1 =8;
int motorPin2 =9;
int motorPin3 =10;
int motorPin4 =11;
int delayTime = 500;

int step = 1;

void setup() {
// init dei pin per lo scatto
pinMode(outpin, OUTPUT); //outpin gives output
pinMode(wakepin, OUTPUT); //wakepin gives output

// tempistiche per lo scatto, modificare in base alle esigenze
shutter_on = 200;

// init dei pin per il motorino
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);

}

/////////// Loop ////////////

void loop(){
digitalWrite(wakepin, HIGH); //turn wakeup/focus on
delay(wakeup); //keep focus
digitalWrite(wakepin, LOW); //turn wakeup off
delay(wakewait); //wait
digitalWrite(outpin, HIGH); //press the shutter
delay(shutter_on); //wait the shutter release time
digitalWrite(outpin, LOW); //release shutter
delay(shutter_off); //wait for next round

delay(1000); // riga nuova - questo è il tempo di attesa prima di ripartire dopo lo scatto

rotate();

delay(2000); // qui metti in millisendi quanto vuoi attendere prima di scattare
}

void rotate(){
switch (step) {
case 1:
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
break;
case 2:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
break;
case 3:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
break;
case 4:
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
break;
}
delay(delayTime);
step --;
if (step <= 0){
step = 4;
}
}

Sbagli di usare il QUOTE al popsto del CODE per mettere lo sketch.
Ciao Uwe

grazie per la segnalazione! Ma sicuramente non mi aiuterà!

Il secondo errore che fai é non dare abbastanza informazioni.
Che tipo di motore Passo Passo usi ( unipolare o Bipolare) Che Shield usi?

Quel Sketch é per un motore unipolare con un driver a 4 transistori o un ULN2003 o ULN2803 (non un motore Bipolare con ponte H).

Ciao Uwe

ok!

il motore è un 6 fili, modello 23LM-C263. Credo sia unipolare, ma non ricordo se è un 5V o 12 o 24, se non sbaglio è un 5V, ma non trovo informazioni!

Lo shield è questo di futuraelettronica: https://www.futurashop.it/shield-controllo-motori-per-arduino-kit-7100-motorshieldfe?filter_name=motor%20shield

Cmq se non sbaglio un anno fa lo collegai ad un ULN 2003 con 5V e andava con questo sketch!

Istruzioni --> https://www.futurashop.it/Allegato_PDF_IT/7100-MOTORSHIELD_FE.pdf
Sketch --> FuturaNet: Il portale per makers ed elettronica by Futura Group

Devi impostare i 4 jumper dei segnali in base ai piedini che usi nello sketch.
Se hai anche una alimentazione esterna imposta il jumper JP1 su ext altrimenti lascialo su int.

Per il collegamento devi usare solo 4 dei sei fili.
Devi in pratica individuare i comuni e non usarli.
In questa immagine sono i verdi.

Grazie Paolo!

le istruzioni le avevo già lette, ed è proprio per questo motivo che chiedevo a voi se riuscite a capire come settare i jumper!!

Purtroppo dallo sketch non lo capisco!

uwefed:
Sbagli di usare il QUOTE al popsto del CODE per mettere lo sketch.
Ciao Uwe

robyr11:
grazie per la segnalazione! Ma sicuramente non mi aiuterà!

Beh, se la segnalazione l'hai letta allora perchè non modifichi il primo post ?

Perchè non si legge lo sketch?

I jumper sono la direzione sono solo questi: 2,4,7,8,12,13. Mentre per il pwm sono: 3,5,6,9,10,11.

sul mio sketch mi ritrovo questi dati:

// init motorino
int motorPin1 =8;
int motorPin2 =9;
int motorPin3 =10;
int motorPin4 =11;
int delayTime = 500;

come setto i jumper per la direzione e come quelli del pwm?

O suoni direttamente il pianoforte o fai il direttore d'orchestra. Non puoi mischiare le due cose.

Il tuo sketch pilota direttamente le fasi del motore unipolare, la board invece pilota lo stepper tramite l'integrato a cui dai i comandi di avanzamento con passo e direzione.
Il tuo sketch non è adatto a gestire la board.

ahah!!

caspiterina siamo messi bene!!

allora ci siamo: via la shield, collego tutto ad un ULN 2003A su una breadboard e funziona alla grande!

Ora però, visto che di volta in volta le esigenze cambiano, senza collegarmi sempre al pc per variare i valori (tempi di scatto ecc) vorrei sapere come posso collegare un potenziometro per variarli sul posto, avete qualche idea?

Collega uno o più potenziometri come in figura. Ovvero con il pin centrale ad un ingresso analogico (A0...A5)
Usa la funzione analogRead (analogRead() - Arduino Reference) e la map (map() - Arduino Reference) per inserire su una variabile il valore che vuoi impostare.

ok thanks ci provo!

10kohm vanno bene?