Go Down

Topic: Simple counting/increment per iteration (Read 796 times) previous topic - next topic

yost87

Hello, thanks for taking the time to even read my post with the expectation of offering help!

I am trying to simply light 10 LEDs in sequence from low to high, DONE
I am trying to simply light 10 LEDs in sequence from high to low, DONE
I am trying to change the timing/delay of each afore mentioned events, DONE
I am trying to make any part of this stop after n times (n is the number of times I will choose) FAIL
-also, how do I get more than one LED to light simultaneously?

So, I got the sequencing but cannot get a DO, WHILE, DO WHILE, or FOR to stop the looping, EVER.

I declared an integer [loops] and tried to increment/decrement using loops++, loops--, ++loops, --loops, loops +1, loops - 1, loops = loops -1, loops = loops +1, loops != 1, loops !0 (I read that when the WHILE becomes FALSE is when the event is recognized)

here is the last attempt with some of the bad code commented out

//int thisPin = 0;
int timer = 100;           // The higher the number, the slower the timing.
int pinCount = 10;        // using 10 LEDs
//  int loops = 3;          //FAIL
//  int thisPin;
void setup() {
  // use a for loop to initialize each pin as an output:
  for (int thisPin = 1; thisPin < pinCount; thisPin++)  {
    pinMode(thisPin, OUTPUT);     
  }
}

void loop() {
int loops = 3;   //FAIL
while ( loops != 1 ){  //fAIL
  // loops - 1;
    for (int thisPin = 1; thisPin < pinCount; thisPin++) {
  // turn the pin on:
    digitalWrite(thisPin, HIGH);   
    delay(timer);                 
  // turn the pin off:
    digitalWrite(thisPin, LOW);   
}
}
}

Nick Gammon

Please edit your post, select the code, and put it between [code] ... [/code] tags.

You can do that by hitting the # button above the posting area.

Nick Gammon

This will certainly fail:

Code: [Select]

int loops = 3;   //FAIL
while ( loops != 1 ){  //fAIL


What about:

Code: [Select]
for (int loops = 0; loops < 3; loops++)
  {
  // do something
  }

robtillaart

use CTRL-T in the IDE to auto layout the code

Code: [Select]

void loop()
{
 int loops = 3;
 while ( loops != 1 )
 {
   loops = loops - 1;
   for (int thisPin = 1; thisPin < pinCount; thisPin++)
   {
     digitalWrite(thisPin, HIGH);  
     delay(timer);                  
     digitalWrite(thisPin, LOW);
     delay(timer);
  }
 }
 while(1); // block forever
}
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

yost87

Quote
Nick Gammon
Global Moderator

This will certainly fail:

Code:

int loops = 3;   //FAIL
while ( loops != 1 ){  //fAIL


Thanks for pointing that out, but why will it certainly fail?

Go Up