Skip to content

Instantly share code, notes, and snippets.

@surfin009
Created July 27, 2019 01:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save surfin009/4a6e9b15272ac1ec79ef6e8d206c81a4 to your computer and use it in GitHub Desktop.
Save surfin009/4a6e9b15272ac1ec79ef6e8d206c81a4 to your computer and use it in GitHub Desktop.
LED Chase
#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