intervaluino con un motore DC?

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; } }

Il motore passo passo fa un passo a ogni impulso dato al suo integrato di pilotaggio.

Un motore DC gira quando gli da tensione con una velocitá che dipende dal carico; percui non sai di quanto gira. Una volta fermo non ha coppia e non puó contrastare un momento che viene applicato sul asse da un peso non equilibrato.

Per usare un motore DC che equivale a un motore passo passo serve oltre al motore un ingranaggio con una vite senza fine oppure un freno e un encoder o un sensore che legge i giri fatti dal motore.

Tutto questo comporta a un cambio sostanziale della logica del programma.

In poche parole lascia stare il motore DC e metti uno a passi.

Ciao Uwe

ok!! capito..

a questo punto dovrò cercarmi un altro motore passo passo!!