Aggiungiamo il collegamento alla fotocamera

Aggiungiamo ora il collegamento alla fotocamera.
Utilizzando degli optoisolatori è possibile separare elettricamente i circuiti della macchina fotografica e di Arduino. In questo modo, anche se dovessero esserci dei problemi sul circuito, non abbiamo il rischio di danneggiare la fotocamera.
Visto che i componenti iniziano ad essere numerosi, per aiutarci nel cablaggio possiamo usare una breadboard.
I componenti aggiunti sono:

  1. Una breadboard
  2. Un optoisolatore 4N35 (va bene anche il 4N25)
  3. Una resistenza da 100 / 120 ohm
  4. Un led di segnalazione

Possiamo modificare il circuito in questo modo:

Schema 03 Fotocamera_bb

Qui lo sketch modificato:

//definiamo i pin utilizzati
int MotoreDir=3;
int MotoreStep=4;
int MotoreEnable=5;
int Led=13;
int Scatto=2;
//definiamo le variabili che useremo
int NumeroPassi=200;//Il motore dovrebbe fare un giro 200×1,8°=360°
int Attesa=1000;//1 secondo tra un giro e l’altro
int Velocita=5;//Tempo di attesa tra uno step e l’altro. Più è basso questo valore più è veloce il motore
boolean Direzione = false;//variabile per gestire la direzione del motore
int NumeroFotoDaScattare = 300;//variabile per gestire il numero di foto da scattare
int NumeroFotoScattata = 0;
int AttesaDopoMovimento = 300;//per evitare vibrazioni, possiamo mettere una piccola pausa subito dopo il movimento
int DurataScatto=400;//Variabile per indicare quanto tempo (in millisecondi) deve essere simulata la pressione dello scatto
int AttesaDopoScatto = 300;//per evitare vibrazioni, possiamo mettere una piccola pausa prima di ricominciare a muovere
//con questi valori la fase di scatto dura 1 secondo.

void setup() {
      pinMode(MotoreDir, OUTPUT); // imposto il pin indicato come uscita
      pinMode(MotoreStep, OUTPUT); // imposto il pin indicato come uscita
      pinMode(MotoreEnable, OUTPUT); // imposto il pin indicato come uscita
      pinMode(Scatto, OUTPUT); // imposto il pin indicato come uscita
      pinMode(Led, OUTPUT); // imposto il pin indicato come uscita
}

void loop(){
      if (NumeroFotoScattata      Scatta();
         delay(Attesa);//attendiamo per il prossimo ciclo
         NumeroFotoScattata++;//Incrementiamo il numero di foto scattate. 
                           //Scritta in questo modo, questa riga equivale a 
                           //NumeroFotoScattata = NumeroFotoScattata + 1
      }        

}

void AccendiLed(void){
      digitalWrite(Led, HIGH);//accendiamo il led
}
void SpegniLed(void){
      digitalWrite(Led, LOW);//spegnamo il led
}

void Motore(void){
      if (Direzione==true) digitalWrite(MotoreDir, HIGH);//Abilitiamo un senso di rotazione
      if (Direzione==false) digitalWrite(MotoreDir, LOW);//Abilitiamo il senso opposto
      digitalWrite(MotoreEnable, LOW);//Abilitiamo la scheda passo passo abbassando il livello logico dell’uscita
      for (int ciclo=0;ciclo//diamo un impulso al motore
            digitalWrite(MotoreStep, LOW);
            delayMicroseconds(2);
            digitalWrite(MotoreStep, HIGH);
            delayMicroseconds(2);
            delay(Velocita);//attesa per il prossimo impulso
      }
      digitalWrite(MotoreEnable, HIGH);//Disabilitiamo la scheda passo passo alzando il livello logico dell’uscita
}

void Scatta(void){
  delay(AttesaDopoMovimento);
  digitalWrite(Scatto, HIGH);//Iniziamo a simulare la pressione dello scatto
  delay(DurataScatto);
  digitalWrite(Scatto, LOW);//terminiamo lo scatto
  delay(AttesaDopoScatto);
}

Aggiustiamo il tempo di intervallo tra uno scatto e l’altro

Leave a Reply

Your email address will not be published. Required fields are marked *

Donate

Support TLTools, Make A Donation

Please make a donation if you enjoy using our software and believe in the importance of what the ciemmesoft is working to accomplish.

PayPal Donate Button

Fai una donazione!

Sostieni il progetto, fai una donazione TLTools è un progetto gratuito. Fai una donazione se ti piace utilizzare il nostro software e se credi nell'importanza di ciò a cui il progetto lavora.

PayPal Donate Button