Go Down

Topic: Il mio intervaluino non va (Read 2481 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

bibopm

E' quello...però adesso mi da questo

Code: [Select]
Binary sketch size: 1800 bytes (of a 30720 byte maximum)
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

leo72

Quello è un errore di avrdude, forse un errato collegamento.
Stai programmando un Atmega standalone o l'Arduino?

lollotek

hai controllato di avere impostato la com giusta?
hai impostato l'arduino corretto in tools->boards?

che ne pensi di questo intervallometro??

leo72


che ne pensi di questo intervallometro??


Che prodottaccio... fatto malissimo... ma chi l'ha assemblato? Uno che aveva bevuto un paio di grappini?

SCHERZO   XD XD

lollotek

uffa, dai, già nel post invece di beccarmi gente interessata mi sono beccato solo criticoni solo perchè ho pasticciato con l'attiny..
almeno lasciami fare dello spam mirato con chi potrebbe essere interessato !! :P

leo72


uffa, dai, già nel post invece di beccarmi gente interessata mi sono beccato solo criticoni solo perchè ho pasticciato con l'attiny..

Ma perché con gli Attiny non hai chiesto al gran maestro, cioè a me!  XD

Quote

almeno lasciami fare dello spam mirato con chi potrebbe essere interessato !! :P

Tu? Spam mirato?  :smiley-sweat:
Anche qui devi imparare dal signore supremo dello spam incastolato e pronto al consumo diretto  :D ]:D

bibopm

Già visto quell'intervallometro e il mio si avvicina parecchio.

Ho controllato tutto 10 volte ed è tutto ok. Potrebbe essere un problema sulla componentistica? Per non saper ne leggere ne scrivere ho cambiato anche il micro alla scheda ma niente. E' alimetato ma quando riceve i dati il led rosso non si accende

leo72

Ehm... riformula la domanda: stai programmando un chip standalone o un Arduino?
Nel primo caso, quale chip? Non è che hai impostato dei fuse sul micro? Hai programmato altre volte quel micro prima di ora?

uwefed

Se hai un Arduino hai collegato qualcosa ai PinDigitali  0 e 1 ?
Ciao Uwe

bibopm

Rispondo ad entrambi, programmo direttamente su arduino e l'ho fatto un sacco di volte così ed ha sempre funzionato. Tutti i pin sono liberi. Che cosa sono dei fuse sul micro?

Go Up