Go Down

Topic: I know little about programming, and have a specific question. (Read 497 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

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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy