Created
March 22, 2016 18:46
-
-
Save tecnocat/6c4163dbf9d44f443078 to your computer and use it in GitHub Desktop.
Arduino KnightRider effect more realistic and accurate with 8 Leds and 1 Pot
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
/** | |
* I recently buy my first Arduino board, and looking for something to build I found | |
* in the Arduino tutorials page a funny KnightRider effect with some leds, I really | |
* love more realistic and accuracy things so... I build this more accurate effect | |
* in the memory of our lovely Michael Knight and KIT! | |
*/ | |
// PWM Pins | |
const int L1 = 2; | |
const int L2 = 3; | |
const int L3 = 4; | |
const int L4 = 5; | |
const int L5 = 6; | |
const int L6 = 7; | |
const int L7 = 8; | |
const int L8 = 9; | |
// 10K Pot | |
const int POT = A0; | |
// Leds with R220 Ohms | |
int leds[] = {L1, L2, L3, L4, L5, L6, L7, L8}; | |
int bright; | |
int timer = 10; | |
int l; | |
void setup() | |
{ | |
pinMode(L1, OUTPUT); | |
pinMode(L2, OUTPUT); | |
pinMode(L3, OUTPUT); | |
pinMode(L4, OUTPUT); | |
pinMode(L5, OUTPUT); | |
pinMode(L6, OUTPUT); | |
pinMode(L7, OUTPUT); | |
pinMode(L8, OUTPUT); | |
} | |
void loop() | |
{ | |
bright = map(analogRead(POT), 0, 1023, 0, 255); | |
l = 0; | |
analogWrite(leds[l], bright); | |
delay(timer + bright); | |
analogWrite(leds[l + 1], bright); | |
delay(timer + bright); | |
for (l = 0; l < 6; l++) | |
{ | |
analogWrite(leds[l], bright); | |
delay(timer); | |
analogWrite(leds[l + 1], bright); | |
delay(timer); | |
analogWrite(leds[l + 2], bright); | |
delay(timer); | |
for (int i = bright; i >= 0; i--) | |
{ | |
analogWrite(leds[l], i); | |
delay(timer / 10); | |
} | |
} | |
for (int i = bright; i >= 0; i--) | |
{ | |
analogWrite(leds[l], i); | |
delay(timer / 10); | |
} | |
l = 7; | |
analogWrite(leds[l], bright); | |
delay(timer + bright); | |
analogWrite(leds[l - 1], bright); | |
delay(timer + bright); | |
for (l = 7; l > 1; l--) | |
{ | |
analogWrite(leds[l], bright); | |
delay(timer); | |
analogWrite(leds[l - 1], bright); | |
delay(timer); | |
analogWrite(leds[l - 2], bright); | |
delay(timer); | |
for (int i = bright; i >= 0; i--) | |
{ | |
analogWrite(leds[l], i); | |
delay(timer / 10); | |
} | |
} | |
for (int i = bright; i >= 0; i--) | |
{ | |
analogWrite(leds[l], i); | |
delay(timer / 10); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment