Created
July 27, 2019 01:38
-
-
Save surfin009/4a6e9b15272ac1ec79ef6e8d206c81a4 to your computer and use it in GitHub Desktop.
LED Chase
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <MsTimer2.h> | |
#define OUT_MIN 0 | |
#define OUT_MAX 20 | |
#define SPEED_MS 100 | |
byte luminance[20]; | |
byte lumi[20] = {}; | |
int BASE = 0 ; // the I/O pin for the first LED | |
int NUM = 20; // number of LEDs | |
int ledDelay(25);// Delay | |
int ledDelay2(10);// 2nd Delay | |
void setup() | |
{ | |
for (int i = BASE; i < BASE + NUM; i ++) | |
{pinMode(i, OUTPUT); // set I/O pins as output | |
} | |
} | |
void loop() | |
{ | |
for (int i = BASE; i < BASE + NUM -1; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “high”, turn on LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(19, HIGH); | |
for (int i = BASE; i < BASE + NUM-2; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “high”, turn on LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(19, HIGH); | |
digitalWrite(18, HIGH); | |
for (int i = BASE; i < BASE + NUM-3; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(19, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
for (int i = BASE; i < BASE + NUM-4; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(19, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
for (int i = BASE; i < BASE + NUM-5; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(19, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
for (int i = BASE; i < BASE + NUM-6; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(19, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
for (int i = BASE; i < BASE + NUM-7; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(19, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
for (int i = BASE; i < BASE + NUM-8; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(19, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
for (int i = BASE; i < BASE + NUM-9; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
digitalWrite(11, HIGH); | |
for (int i = BASE; i < BASE + NUM-10; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
digitalWrite(11, HIGH); | |
digitalWrite(10, HIGH); | |
for (int i = BASE; i < BASE + NUM-11; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
digitalWrite(11, HIGH); | |
digitalWrite(10, HIGH); | |
digitalWrite(9, HIGH); | |
for (int i = BASE; i < BASE + NUM-12; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
digitalWrite(11, HIGH); | |
digitalWrite(10, HIGH); | |
digitalWrite(9, HIGH); | |
digitalWrite(8, HIGH); | |
for (int i = BASE; i < BASE + NUM-13; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
digitalWrite(11, HIGH); | |
digitalWrite(10, HIGH); | |
digitalWrite(9, HIGH); | |
digitalWrite(8, HIGH); | |
digitalWrite(7, HIGH); | |
for (int i = BASE; i < BASE + NUM-14; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
digitalWrite(11, HIGH); | |
digitalWrite(10, HIGH); | |
digitalWrite(9, HIGH); | |
digitalWrite(8, HIGH); | |
digitalWrite(7, HIGH); | |
digitalWrite(6, HIGH); | |
for (int i = BASE; i < BASE + NUM-15; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
digitalWrite(11, HIGH); | |
digitalWrite(10, HIGH); | |
digitalWrite(9, HIGH); | |
digitalWrite(8, HIGH); | |
digitalWrite(7, HIGH); | |
digitalWrite(6, HIGH); | |
digitalWrite(5, HIGH); | |
for (int i = BASE; i < BASE + NUM-16; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
digitalWrite(11, HIGH); | |
digitalWrite(10, HIGH); | |
digitalWrite(9, HIGH); | |
digitalWrite(8, HIGH); | |
digitalWrite(7, HIGH); | |
digitalWrite(6, HIGH); | |
digitalWrite(5, HIGH); | |
digitalWrite(4, HIGH); | |
for (int i = BASE; i < BASE + NUM-17; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
digitalWrite(11, HIGH); | |
digitalWrite(10, HIGH); | |
digitalWrite(9, HIGH); | |
digitalWrite(8, HIGH); | |
digitalWrite(7, HIGH); | |
digitalWrite(6, HIGH); | |
digitalWrite(5, HIGH); | |
digitalWrite(4, HIGH); | |
digitalWrite(3, HIGH); | |
for (int i = BASE; i < BASE + NUM-18; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
digitalWrite(11, HIGH); | |
digitalWrite(10, HIGH); | |
digitalWrite(9, HIGH); | |
digitalWrite(8, HIGH); | |
digitalWrite(7, HIGH); | |
digitalWrite(6, HIGH); | |
digitalWrite(5, HIGH); | |
digitalWrite(4, HIGH); | |
digitalWrite(3, HIGH); | |
digitalWrite(2, HIGH); | |
for (int i = BASE; i < BASE + NUM-19; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
delay(ledDelay2); | |
digitalWrite(i + 1, HIGH); | |
digitalWrite(i, LOW); | |
delay(ledDelay2); // delay | |
} | |
digitalWrite(20, HIGH); | |
digitalWrite(18, HIGH); | |
digitalWrite(17, HIGH); | |
digitalWrite(16, HIGH); | |
digitalWrite(15, HIGH); | |
digitalWrite(14, HIGH); | |
digitalWrite(13, HIGH); | |
digitalWrite(12, HIGH); | |
digitalWrite(11, HIGH); | |
digitalWrite(10, HIGH); | |
digitalWrite(9, HIGH); | |
digitalWrite(8, HIGH); | |
digitalWrite(7, HIGH); | |
digitalWrite(6, HIGH); | |
digitalWrite(5, HIGH); | |
digitalWrite(4, HIGH); | |
digitalWrite(3, HIGH); | |
digitalWrite(2, HIGH); | |
digitalWrite(1, HIGH); | |
for (int i = BASE + NUM; i >= BASE; i --) | |
{ | |
digitalWrite(i, LOW); | |
delay(ledDelay*2); | |
} | |
delay(ledDelay*3); | |
int total= BASE*2 + NUM-1; | |
for (int i = BASE; i < BASE + NUM/2; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “high”, turn on LEDs one by one | |
digitalWrite(total - i, HIGH); | |
delay(ledDelay); // delay | |
digitalWrite(i, LOW); | |
digitalWrite(total - i, LOW); | |
} | |
for (int i = BASE + NUM/2; i >= BASE; i --) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “high”, turn on LEDs one by one | |
digitalWrite(total - i, HIGH); | |
delay(ledDelay); // delay | |
digitalWrite(i, LOW); | |
digitalWrite(total - i, LOW); | |
} | |
for (int i = BASE; i < BASE + NUM/2; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “high”, turn on LEDs one by one | |
digitalWrite(total - i, HIGH); | |
delay(ledDelay); // delay | |
} | |
for (int i = BASE; i < BASE + NUM/2; i ++) | |
{ | |
digitalWrite(i, LOW); // set I/O pins as “high”, turn on LEDs one by one | |
digitalWrite(total - i, LOW); | |
delay(ledDelay); // delay | |
} | |
for (int i = BASE + NUM/2; i >= BASE; i --) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “high”, turn on LEDs one by one | |
digitalWrite(total - i, HIGH); | |
delay(ledDelay); // delay | |
} | |
for (int i = BASE + NUM/2; i >= BASE; i --) | |
{ | |
digitalWrite(i, LOW); // set I/O pins as “high”, turn on LEDs one by one | |
digitalWrite(total - i, LOW); | |
delay(ledDelay); // delay | |
} | |
for (int i = BASE; i < BASE + NUM; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
} | |
delay(ledDelay*5); | |
for (int i = BASE; i < BASE + NUM; i ++) | |
{ | |
digitalWrite(i, LOW); // set I/O pins as “low”, turn off LEDs one by one. | |
} | |
delay(ledDelay*5); | |
for (int i = BASE; i < BASE + NUM; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
} | |
delay(ledDelay*5); | |
for (int i = BASE; i < BASE + NUM; i ++) | |
{ | |
digitalWrite(i, LOW); // set I/O pins as “low”, turn off LEDs one by one. | |
//Serial.println(i);// Show val variable. | |
//delay(ledDelay); // delay | |
} | |
delay(ledDelay*5); | |
for (int i = BASE; i < BASE + NUM; i ++) | |
{ | |
digitalWrite(i, HIGH); // set I/O pins as “low”, turn off LEDs one by one. | |
} | |
delay(ledDelay*5); | |
for (int i = BASE; i < BASE + NUM; i ++) | |
{ | |
digitalWrite(i, LOW); // set I/O pins as “low”, turn off LEDs one by one. | |
} | |
delay(ledDelay*5); | |
for(int i=0;i<3;i++){ | |
for (int i = BASE; i < BASE + 2; i ++) | |
{ | |
digitalWrite(i, HIGH); | |
digitalWrite(i+2, HIGH); | |
digitalWrite(i+4, HIGH); | |
digitalWrite(i+6, HIGH); | |
digitalWrite(i+8, HIGH); | |
digitalWrite(i+10, HIGH); | |
digitalWrite(i+12, HIGH); | |
digitalWrite(i+14, HIGH); | |
digitalWrite(i+16, HIGH); | |
digitalWrite(i+18, HIGH); | |
delay(ledDelay*15); // delay | |
digitalWrite(i, LOW); | |
digitalWrite(i+2, LOW); | |
digitalWrite(i+4, LOW); | |
digitalWrite(i+6, LOW); | |
digitalWrite(i+8, LOW); | |
digitalWrite(i+10, LOW); | |
digitalWrite(i+12, LOW); | |
digitalWrite(i+14, LOW); | |
digitalWrite(i+16, LOW); | |
digitalWrite(i+18, LOW); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment