#include <SoftPWM.h>
int i;
const byte LED_COUNT = 20;
uint8_t LEDS [LED_COUNT][2] =
{
{2, 3},
{3, 2},
{2, 4},
{4, 2},
{2, 5},
{5, 2},
{2, 6},
{6, 2},
{3, 4},
{4, 3},
{3, 5},
{5, 3},
{3, 6},
{6, 3},
{4, 5},
{5, 4},
{4, 6},
{6, 4},
{5, 6},
{6, 5}
};
int onLED;
int offLED;
void setup() {
SoftPWMBegin();
for (int i = 0; i < 9; i++)
pinMode(LEDS[i] [0], INPUT);
SoftPWMSetFadeTime(ALL, 200, 800);
}
void loop() {
onLED = 200;
offLED = 800;
fadeUp();
}
void flashLED(byte j) {
pinMode(LEDS[j] [0], OUTPUT);
pinMode(LEDS[j] [1], OUTPUT);
digitalWrite(LEDS[j] [0], LOW);
digitalWrite(LEDS[j] [1], HIGH);
fadeLED(j);
delay(onLED);
pinMode(LEDS[j] [0], INPUT);
pinMode(LEDS[j] [1], INPUT);
delay (offLED);
}
void fadeLED(byte j) {
pinMode(LEDS[j] [0], OUTPUT);
pinMode(LEDS[j] [1], OUTPUT);
digitalWrite(LEDS[j] [0], LOW);
SoftPWMSet(LEDS[j] [1], 255);
delay(onLED);
SoftPWMSet(LEDS[j] [1], 0);
delay(offLED);
pinMode(LEDS[j] [0], INPUT);
pinMode(LEDS[j] [1], INPUT);
}
void chaseUp() {
for (i = 0; i < LED_COUNT; i++) {
flashLED(i);
}
vibrate();
}
void fadeUp() {
for (i = 0; i < LED_COUNT; i++) {
fadeLED(i);
}
vibrate();
}
void vibrate() {
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
delay (1000);
pinMode(7, INPUT);
pinMode(8, INPUT);
}