Intervaluino: non mi funziona!

Ho copiato esattamente il circuito, con l' aggiunta del potenziometro come ha fatto Massimo. Sono certo che il circuito è fatto bene, tra l' altro sono solo pochi componenti, e per me è stato facile. Purtroppo, carico lo sketch, premo il pulsante e non succede nulla! Questa mattina, appena terminato la mia 500D scattava a raffica, ma ora non fa proprio niente!

Ora vorrei provare a intervenire sullo sketch, innanzitutto vorrei ridurre i tempi di scatto, vorrei scattare ogni 2 secondi, e vorrei sapere se è possibile usare il codice di Massimo eliminando il potenziometro, semplicemente non collegandolo!

Ecco tutto: // Intervaluino // this code programs the Arduino as an intervalometer for a Canon EOS camera, using two relays and a push button // this enables you to create time-lapse movies with your camera. // change the variables “full_time” and “short_time” to automatically calculate the right time interval (based on 25 frames per second) // upload the code via USB, fire up the Arduino, plug it into your camera’s remote shutter release, and press the Intervaluino push button. // press the button another time to stop the sequence (doesn’t work that well if your interval is long) // make sure to turn on single shoot // (c) Lord Yo 2008 (intervaluino a_t sporez do:t com) // modified by Massimo Banzi 2010 // Licensed under a Creative Commons (Attribution Non-Commercial Share-Alike) license

/////////// Change these variables according to your needs

long full_time = 14400; //full length time to cover (in seconds) long short_time = 120; //length of time-lapse movie (in seconds)

int shutter_on = 200; //time to press shutter, set between 100 and 300 int shutter_wait = 5000; //initial time to wait to begin sequence int wakeup = 300; //time to activate wakeup (focus) int wakewait =200; //time between wake and shutter

/////////// Further Variables ////////////

long shutter_off = 0;

int outpin = 11; //output for shutter relay from pin 11 int wakepin = 8; //output for focus relay from pin 8 int switchpin = 2; //input from button from pin 2 int potPin = 0; //where

int val; //value of button press int buttonState; //check variable for change of button press int on_off = 0; //state of sequence (turned on, turned off) int potVal = 0; // Holds the value of the potentiometer /////////// Setup ////////////

void setup() { pinMode(outpin, OUTPUT); //outpin gives output pinMode(switchpin, INPUT); //switchpin receives input pinMode(wakepin, OUTPUT); //wakepin gives output

buttonState = digitalRead(switchpin); //read value of the button }

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

void loop(){

val = digitalRead(switchpin); // read button value and store it in val

potVal = analogRead(potPin);

if (potVal > 5) { //if the value of the pot is more than 0 use it as the "short_time" shutter_off = (40 * full_time / potVal) - shutter_on - wakeup - wakewait; //time to wait between shutter releases; } else { // else use the default value shutter_off = (40 * full_time / short_time) - shutter_on - wakeup - wakewait; //time to wait between shutter releases; }

if (val != buttonState) { // if the button state has changed… if (val == LOW) { // check if the button is pressed… if (on_off == 0) { // if the sequence is currently off… on_off = 1; // turn the sequence on delay(shutter_wait); // wait the initial period } else { on_off = 0; // turn the sequence off } } }

buttonState = val; //switch the button state

if (on_off == 1) { //while the sequence is turned on…

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 }

}

Se all inizio funzionava e poi non piú a paritá di codice vuol dire che si é guastata il circuito, il collegamento alla macchina fotografica o la macchina fotografica stessa. Ciao Uwe

si ma scattava a raffica!! mentre nel codice (e lo dice anche Massimo nel tutorial) dovrebbe scattare ogni 120 sec!

Un' altra domanda, il jack è composto da gnd, fuoco e shutter, con quale criterio li collego al circuito??

Siccome il circuito è regolato esternamente con un POT, magari hai sbagliato a collegarlo e legge solo il valore che dà il minimo intervallo.

controllato, è ok! l' unica cosa che m fa dubitare è il funzionamento dei 4n25, sono collegati bene, ma forse sono rotti. Che tensioni dovrei avere ai capi di questi fotoaccoppiatori?

Prova attivando il diodo emettitore di luce: dall'altra parte dovresti avere passaggio di corrente e quindi poter misurare una tensione (semplificando, sono un interruttore).

Ecco, era un fotoaccoppiatore! thanks!!

Ora vorrei modificare un pò il codice, per esempio vorrei fare uno scatto ogni minuto, e settare come numero massimo di scatti da fare 30000, cosa modifico?

Forse questa stringa?

long shutter_off = (350 * full_time / short_time) - shutter_on - wakeup - wakewait; //time to wait between shutter releases;

il numero 350 indica i secondi?

e per il numero massimo di scatti quest'altra?

long full_time = 14400; //full length time to cover (in seconds)

In quello sketch non ci ho mai capito nulla perché non sapendo la logica di funzionamento, non capisco ad esempio la variabile "shutter che cosa rappresenti.

Cmq non è difficile, si tratta di usare la millis per calcolare il passare del tempo.

E' Strano, perchè Massimo all' inizio del video parla di 120 secondi, alla prima stringa, e non millisecondi. O forse la prima è espressa in secondi e le altre in millisecondi?

Ci sono dei calcoli che non so cosa tirino fuori, non ho mai usato questo Intervaluino né so come funziona. Andrebbe capito cosa fa e come lo fa.d

ok cmq grazie lo stesso per il tuo intervento!