Go Down

Topic: I know little about programming, and have a specific question. (Read 397 times) previous topic - next topic

Beatz1337

Mar 19, 2013, 01:17 am Last Edit: Mar 19, 2013, 01:25 am by Beatz1337 Reason: 1
My code is receiving an error, and I am using a tutorial.
The tutorial is located at this webpage: http://blog.tinyenormous.com/2009/09/30/17-arduino-nikon-ir-intervalometer-code/

The code that I need help with is as follows:
Code: [Select]

void snap(){
int i;
digitalWrite(PIN_STATUS,  1);  
         for(i=0;i");
         sequence[i] = (sequence[i] * FREQ) / (intervalle * 1000);
         Serial.println(sequence[i]);
     }
}


The error:
Code: [Select]

stray '/' in program

mistergreen


Beatz1337

Thank you, now how can I fix it? I am not familiar with this syntax, however, I know lua, and sometimes it gets confusing.

mistergreen



I thought you're going off a tutorial.
Here's instructions on for loop
http://arduino.cc/en/Reference/For

Beatz1337

I am, but the tutorial code is incorrect, so could you help me fix this one line of code?

mixania

#5
Mar 19, 2013, 01:52 am Last Edit: Mar 19, 2013, 01:55 am by mixania Reason: 1
Here is exactly how to do it:

Code: [Select]

for(i=0; i<100; i++){
    sequence[i] = (sequence[i] * FREQ) / (intervalle * 1000);
    Serial.println(sequence[i]);
}


The i<100 means it would repeat 100 times. Which is repeat until i is no longer smaller than 100. i++ means add one every time the for() function runs.

Read more about the for function:
http://arduino.cc/en/Reference/For
Arduino Uno R3
Mac OSX Lion

Beatz1337

Thank you, but now I get the error intervalle was not declared in this scope.
If needed, here is the full code:

Code: [Select]

// ----- C -------
/**
* arduino Nikon IR remote
* @license Creative commons: Attribution-Noncommercial-Share Alike 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
* @author Aurelien ANTOINE
* version 1
* date 20081217
* found by ross here http://ilpleut.be/doku.php/code:nikonremote:start
**/

#define PIN_STATUS 13
#define PIN_IR_LED 12
#define FREQ 38400  // IR frequence
int hyst=20;
int PotVal = 0;
int count = 0;
int oldVal=0;

//shutter sequence (on,off,on,off ... in microsecond)
unsigned long sequence[] = {2000,27830,390,1580,410,3580,400,63200,2000,27830,390,1580,410,3580,400,0};
int seq_l;

//oscd is a delay in microsecond used at each oscillation.
int oscd;

void oscillate(int pin, unsigned long n, int shine){
int ir_status=0;
while(n>0){
n--;
delayMicroseconds(oscd);
ir_status  =  !ir_status;
digitalWrite(pin,  ir_status && shine); 
}
}

void snap(){
int i;
digitalWrite(PIN_STATUS,  1); 
            for(i=0; i<100; i++){
           sequence[i] = (sequence[i] * FREQ) / (intervalle * 1000);
           Serial.println(sequence[i]);
    }
}

void setup() {
int min=1, max=100, i;
int last_oscd=0;
unsigned long before, intervalle;
oscd=max;

seq_l = sizeof(sequence)/sizeof(unsigned long);

pinMode(PIN_STATUS, OUTPUT);
pinMode(PIN_IR_LED, OUTPUT);
Serial.begin(28800);

//this "while" will process the best "oscd"
Serial.println("Ready");
while(last_oscd!=oscd){
last_oscd=oscd;
oscd=(min+max)>>1;

before=millis();
oscillate(PIN_STATUS, FREQ, 1);
intervalle=millis()-before;

if(intervalle >= 1000) max=oscd;
else min=oscd;

Serial.print(intervalle);
Serial.print(" : ");
Serial.print(min);
Serial.print("<->");
Serial.println(max);
}

Serial.print("oscd: ");
Serial.println(oscd);


//rewrite the sequence array, we replace all values in microsecond by the number of oscillation
for(i=0;i<seq_l;i++){

Serial.print(sequence[i]);
Serial.print("->");
sequence[i] = (sequence[i] * FREQ) / (intervalle * 1000);
Serial.println(sequence[i]);
}


}


void loop() {
//make a photo, wait 10 seconds

PotVal=0;
  for (count = 0; count < 10; count++) { //loops 10 times
    PotVal = (PotVal + analogRead(1))/100; //adds the pot readings together
  }
  //PotVal = (PotVal / 100); // finds average of readings
  Serial.print("Interval is ");
    Serial.print(PotVal);
    Serial.println(" seconds.");
   
snap();
delay(PotVal*1000);

}

Arrch

intervelle is declare in loop(), but you are trying to use it in snap(). It should be made global.

Beatz1337

Like I said, I have no coding experience besides lua, and so I will need help making this global. What do I need to change?

Arrch


Like I said, I have no coding experience besides lua


But you have Google, don't you?

Try googling C++ global scope to see some simple examples.

Beatz1337

Ok, and if it gets moved to become a global variable, will it still be able to change as the pot changes?

Arrch


Go Up