ciao a tutti!! Grazie a Lollotek ho realizzato il mio intervallometro con un motore passo passo..e questo funziona perfettamente!!
Ora vorrei utilizzare il mio motore 12v DC per unirlo al famoso "intervaluino", quindi vorrei che facesse esattamente quello che fa lo sketch di lollotek con il motore passo passo, ma con un motore DC. Cosa dovrei modificare?? ecco lo sketch con il motore passo passo!
//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 ++;
step --;
if (step == 0){
step = 4;
}
}