/********************************************************* * Slow-counter.ino * * Another binary counter, but this one uses digitalWrite() * in a for loop, The longer it runs the slower it gets. *********************************************************/ unsigned long time[6]; //Holds time for each LED. int pin[6] = {8,9,10,11,12,13}; //Pin numbers for LEDs. int toggle[6] = {0,0,0,0,0,0}; //Toggles for LEDs. (0 or 1) /********************************************** * setup() function **********************************************/ void setup() { for(int i=0;i<6;i++) { pinMode(pin[i], OUTPUT); //Set LED pins as output. digitalWrite(pin[i], LOW); //All LEDs are off at start. time[i] = millis(); //Start timers for all LEDs. } } /********************************************** * loop() function **********************************************/ void loop() { int interval[6]={500,1000,2000,4000,8000,16000}; for(int i=0;i<6;i++) //For each LED in turn. { if((millis()-time[i]) > interval[i]) //Has time passed interval? { toggle[i] = !toggle[i]; //If so not toggle, time[i] = millis(); //reset time, digitalWrite(pin[i], toggle[i]); //and toggle LED, } } }