#define t 30
#define t1 20
#define t2 100
#define t3 50
#define t4 250
#define t5 1
void setup() {
// set up pins 2 to 8 as outputs
for (int i = 2; i <= 8; i++) {
pinMode(i, OUTPUT);
pinMode(18, OUTPUT);
pinMode(19, OUTPUT);
digitalWrite(18, HIGH);
digitalWrite(19, HIGH);
}
}
void loop(){
//chase back and forth
effect_1();
effect_1();
//outside in
effect_2();
effect_2();
//cylon visor
effect_3();
effect_3();
//evens one way odds the other (meh)
effect_4();
effect_4();
//fill low to high
effect_5();
effect_5();
//peak meter
effect_6();
effect_6();
}
//Effect 1
void effect_1()
{
for(int i=2; i<8; i++){
digitalWrite(i, HIGH);
delay(t1);
digitalWrite(i+1, HIGH);
delay(t1);
digitalWrite(i+2, HIGH);
delay(t1);
digitalWrite(i, LOW);
delay(t1);
digitalWrite(i+1, LOW);
delay(t1);
}
for(int i=8; i>1; i--){
digitalWrite(i, HIGH);
delay(t1);
digitalWrite(i-1, HIGH);
delay(t1);
digitalWrite(i-2, HIGH);
delay(t1);
digitalWrite(i, LOW);
delay(t1);
digitalWrite(i-1, LOW);
delay(t1);
}
}
//Effect 2
void effect_2()
{
int count = 8; // keeps track of second LED movement
// move first LED from left to right and second from right to left
for (int i = 2; i < 9; i++) {
clear();
digitalWrite(i, HIGH); // chaser 1
digitalWrite(count, HIGH); // chaser 2
count--;
// stop LEDs from appearing to stand still in the middle
if (count != 7) {
delay(t2);
}
}
// move first LED from right to left and second LED from left to right
for (int i = 9; i > 2; i--) {
clear();
digitalWrite(i, HIGH); // chaser 1
digitalWrite(count, HIGH); // chaser 2
count++;
// stop LEDs from appearing to stand still in the middle
if (count != 7) {
delay(t2);
}
}
}
//Effect 3
void effect_3()
{
for(int i=2; i<9; i++){
digitalWrite(i, HIGH);
delay(t3);
}
for(int i=2; i<9; i++){
digitalWrite(i, LOW);
delay(t3);
}
for(int i = 9; i>=2; i--){
digitalWrite(i, HIGH);
delay(t3);
}
for(int i = 9; i>=2; i--){
digitalWrite(i, LOW);
delay(t3);
}
}
//Effect 4
void effect_4()
{
for(int j = 2; j <= 8; j++){
digitalWrite(j, HIGH);
delay(t2);
j=j+1;
}
for(int j = 2; j <= 8; j++){
digitalWrite(j, LOW);
delay(t2);
}
for(int k = 15; k > 1; k--){
digitalWrite(k, HIGH);
delay(t2);
k=k-1;
}
for(int k = 15; k > 1; k--){
digitalWrite(k, LOW);
delay(t2);
}
}
//Effect 5
void effect_5()
{
for(int pin = 8; pin >= 2; pin--)
{
digitalWrite(pin, HIGH);
delay(t1);
digitalWrite(pin+1, LOW);
delay(t1);
}
for(int pin = 8; pin >= 2; pin--)
{
digitalWrite(pin+1, HIGH);
delay(t1);
digitalWrite(pin+2, LOW);
delay(t1);
}
for(int pin = 8; pin >= 2; pin--)
{
digitalWrite(pin+2, HIGH);
delay(t1);
digitalWrite(pin+3, LOW);
delay(t1);
}
for(int pin = 8; pin >= 2; pin--)
{
digitalWrite(pin+3, HIGH);
delay(t1);
digitalWrite(pin+4, LOW);
delay(t1);
}
for(int pin = 8; pin >= 2; pin--)
{
digitalWrite(pin+4, HIGH);
delay(t1);
digitalWrite(pin+5, LOW);
delay(t1);
}
for(int pin = 8; pin >= 2; pin--)
{
digitalWrite(pin+5, HIGH);
delay(t1);
digitalWrite(pin+6, LOW);
delay(t1);
}
for(int pin = 8; pin >= 2; pin--)
{
digitalWrite(pin+6, HIGH);
delay(t1);
digitalWrite(pin+7, LOW);
delay(t1);
}
for(int pin = 8; pin >= 2; pin--)
{
digitalWrite(pin+7, HIGH);
delay(t1);
digitalWrite(pin+8, LOW);
delay(t1);
}
for(int pin = 8; pin >= 2; pin--)
{
digitalWrite(pin+8, HIGH);
delay(t1);
digitalWrite(pin+9, LOW);
delay(t1);
}
for(int pin = 8; pin >= 2; pin--)
{
digitalWrite(pin, LOW);
delay(t5);
}
}
//Effect 6
void effect_6()
{
for(int j=2; j<9; j++){
digitalWrite(j, HIGH);
delay(t2);
digitalWrite(j+2, LOW);
delay(t1);
}
for(int k = 8; k>=1; k--){
digitalWrite(k, HIGH);
delay(t2);
digitalWrite(k+2, LOW);
delay(t1);
}
}
// function to switch all LEDs off
void clear(void)
{
for (int i = 2; i <= 13; i++) {
digitalWrite(i, LOW);
}
}