Created
January 29, 2011 02:21
-
-
Save sli/801435 to your computer and use it in GitHub Desktop.
Prototype for fancy stair lighting.
This file contains hidden or 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
int pins[] = {11,10,9}; | |
int SPEED = 255; | |
int buttonA = 3; | |
int buttonB = 2; | |
int buttonStateA = LOW; | |
int buttonStateB = LOW; | |
int numleds = sizeof(pins)/sizeof(int); | |
byte ON = 0; | |
// toggles LEDs from top to bottom (high pins to low pins) | |
void t2b() { | |
if (ON == 0) { | |
for (int x=0;x<numleds;x++) { | |
for (int i=0;i<=255;i++) { | |
analogWrite(pins[x], i); | |
delay(SPEED); | |
} | |
} | |
ON = 1; | |
} else { | |
for (int x=0;x<numleds;x++) { | |
for (int i=255;i>=0;i--) { | |
analogWrite(pins[x], i); | |
delay(SPEED*2); | |
} | |
} | |
ON = 0; | |
} | |
} | |
// toggles LEDs from bottom to top (low pins to high pins) | |
void b2t() { | |
if (ON == 0) { | |
for (int x=numleds;x>=0;x--) { | |
for (int i=0;i<=255;i++) { | |
analogWrite(pins[x], i); | |
delay(SPEED); | |
} | |
} | |
ON = 1; | |
} else { | |
for (int x=numleds;x>=0;x--) { | |
for (int i=255;i>=0;i--) { | |
analogWrite(pins[x], i); | |
delay(SPEED*2); | |
} | |
} | |
ON = 0; | |
} | |
} | |
void setup() { | |
for (int x=0;x<numleds;x++) { | |
pinMode(pins[x], OUTPUT); | |
} | |
pinMode(buttonA, INPUT); | |
pinMode(buttonB, INPUT); | |
// make speed values make more sense | |
// higher setting = faster fading | |
// tl;dr 1 = 255, 255 = 1 | |
SPEED = map(SPEED, 1, 255, 255, 1); | |
} | |
void loop() { | |
// wait for input trigger | |
buttonStateA = digitalRead(buttonA); | |
buttonStateB = digitalRead(buttonB); | |
if (buttonStateA == HIGH) { | |
t2b(); | |
delay(2334); | |
t2b(); | |
} | |
if (buttonStateB == HIGH) { | |
b2t(); | |
delay(2334); | |
b2t(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment