Go Down

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

#### Beatz1337

##### Mar 19, 2013, 01:17 amLast 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

#1
##### Mar 19, 2013, 01:20 am
Code: [Select]
`    for(i=0;i");`

#### Beatz1337

#2
##### Mar 19, 2013, 01:21 am
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

#3
##### Mar 19, 2013, 01:24 am

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

#### Beatz1337

#4
##### Mar 19, 2013, 01:49 am
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 amLast 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.

http://arduino.cc/en/Reference/For

#### Beatz1337

#6
##### Mar 19, 2013, 01:57 am
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 frequenceint 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 secondsPotVal=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

#7
##### Mar 19, 2013, 02:00 am
intervelle is declare in loop(), but you are trying to use it in snap(). It should be made global.

#### Beatz1337

#8
##### Mar 19, 2013, 02:11 am
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

#9
##### Mar 19, 2013, 02:18 am

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

#10
##### Mar 19, 2013, 02:21 am
Ok, and if it gets moved to become a global variable, will it still be able to change as the pot changes?

#### Arrch

#11
##### Mar 19, 2013, 02:29 am

will it still be able to change as the pot changes?

It doesn't do that now.

Go Up