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 motorinoint wakeup = 300; //time to activate wakeup (focus)
int wakewait =200; //time between wake and shutterint 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 rounddelay(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;
}
}
