Go Down

Topic: Il mio intervaluino non va (Read 2 times) previous topic - next topic

bibopm

Ciao a tutti, ho un problema con il mio intervaluino. Cerco di caricare questo codice

Code: [Select]
    // 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)
    // 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 = (40 * full_time / short_time) - shutter_on - wakeup - wakewait; //time to wait between shutter releases;

    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 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)

    /////////// 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

    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
    }

    }


Ma mi riporta l'errore 
Code: [Select]

intervaluino:22: error: stray '\' in program
intervaluino:22: error: stray '\' in program
intervaluino:22: error: stray '\' in program
intervaluino:22: error: expected ',' or ';' before 'u2013'


non so cosa voglia dire. In più in non riesco a caricare lo sketch e mi da l'errore
Code: [Select]
Binary sketch size: 1728 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51


Cosa vuol dire?

Posto qualche foto nel caso fossero utili.
Grazie

lollotek

il problema sta alla riga 22, cioè :
Code: [Select]
long shutter_off = (40 * full_time / short_time) - shutter_on - wakeup - wakewait; //time to wait between shutter releases;
ma onestamente le sto provando tutte per capire il motivo per cui non vuole digerire questo calcolo, ma non ne vengo fuori..

leo72

Mettendo così va:
Quote

    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

   
    long shutter_off; //time to wait between shutter releases;

    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 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)

    /////////// Setup ////////////

    void setup() {
    pinMode(outpin, OUTPUT); //outpin gives output
    pinMode(switchpin, INPUT); //switchpin receives input
    pinMode(wakepin, OUTPUT); //wakepin gives output
    shutter_off=(40 * full_time);
    shutter_off/=short_time;
    shutter_off-=shutter_on;
    shutter_off-=wakeup;
    shutter_off-=wakewait;
    buttonState = digitalRead(switchpin); //read value of the button
    }

    shutter_off-=wakewait;

Forse troppe operazioni su una singola riga

lollotek

trovato !!!

prova a sostituire la riga incriminata con questo:
Code: [Select]
long shutter_off = (40 * full_time / short_time) - shutter_on - wakeup - wakewait; //time to wait between shutter releases;
Anche se all'apparenza è identico, ho riscritto i meno !! praticamente il carattere ascii (forse unicode) non era quello del meno standard, ma il compilatore non lo interpretava come meno, andando ad incasinare tutto !!

vedi che succede a fare copia-incolla !?

uwefed

Penso che sia quello.
I "meno" del codice sono 0x96 mentre i "meno" scritto da tastiera sono 0x2d.
Ciao Uwe

Go Up