# How to use Stroboscope with Timer 1 w/ ESP8266 and Arduino?

Hello,

I have created a strobe light that uses hardware timers to be very accurate on Arduino UNO.

I’ve created preset ‘programs’ that the light runs through (flash for 10 seconds at 30hz, then take 30 seconds to go from 10hz to 20hz, for example).

The way these adjust the speed is using an int for frequency, and incrementing a step counter with each run of the loop.

Now that I am looking to implement Blynk, I have moved the program into its own function.

However, when I try this, the variables to not increment, and the frequency doesn’t change.

How can I increment inside of a function, or is there a better way to accomplish this? Thank you!

An example custom program:

``````void menuItem2() { // Function executes when you select the 2nd item from main menu
int activeButton = 0;

lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Gamma Meditation");
//Custom Program 1//
//Custom step 1 and template for static frequency

if (stepNumber==1) {  // If you are on 'Step 1' in Program 1
startFreq = 20 ; // Starting Frequency in hz
endFreq = 22;    // End frequency in hz
segTime = 5;    // Length of segment in seconds
segTime = (segTime*1000); // seconds into milliseconds
stepCount = ++stepCount; // Add 1 to the stepOne counter
if (stepCount == 1){            // If this is the first time through, set the frequency to the start Frequency
freq = startFreq*10;
}

if (endFreq-startFreq >= 0 ) {         // If the End Frequency is greater than the Start Frequency, increment the frequency up.
stepTotal = (endFreq-startFreq)*10;
freq = ++freq; // increase the frequency by .1hz}
}

else {         / If the End Frequency is less than the Start Frequency, decrement the frequency down.
stepTotal = (startFreq-endFreq)*10;
freq = --freq; // increase the frequency by .1hz}

}
delayTime = segTime/stepTotal;
change=true;

// calculated above
if (stepCount == stepTotal){  //If this is the last time running the step...
stepCount = 0;
stepNumber = ++stepNumber;
}  // Change to next step starting frequency
}
//Custom step 2 and template for static frequency

if (stepNumber==2) {  // If we are on step 1, and step 1 has NOT run 20 times...
startFreq = 8 ; // Starting Frequency in hz

segTime = 8;    // Length of segment in seconds

}

if (change) setfreq(freq,len);
while (activeButton == 0) {
int button;
delay(100);
}
switch (button) {
case 4:  // This case will execute if the "back" button is pressed
button = 0;
activeButton = 1;
break;
}
}
}

``````

You should post your complete sketch.

Pete.