The rest of the code:
//PATTERNS
void ledPattern1() {
const unsigned long blinkInterval = 100;
static byte x = 0;//led index
static boolean timing = false;
static unsigned long startTime = millis();
if (digitalRead(ledPins[x]) == HIGH) //is led on?
{
startTime = millis();
timing = true;
digitalWrite(ledPins[x], LOW); //turn it off
}
if (timing && millis() - startTime >= blinkInterval)
{
digitalWrite(ledPins[x], HIGH);
timing = false;
}
if (timing == false)//increment when blink complete or pin not on
{
x++;
}
if (x == 18) x = 0; //reset at max
}
void ledPattern2() {
const unsigned long blinkInterval = 100;
static byte x = random(0, 18); //0-17
static byte lastX = 255;
static boolean timing = false;
static unsigned long startTime = millis();
if (digitalRead(ledPins[x]) == HIGH && x != lastX)
{
startTime = millis();
timing = true;
digitalWrite(ledPins[x], LOW); //turn it off
lastX = x;
}
if (timing && millis() - startTime >= blinkInterval)
{
digitalWrite(ledPins[x], HIGH);
timing = false;
}
if (timing == false)//increment when blink complete or pin not on
{
x = random(0, 18);
//check pick and see if active pin
//if not active pick again
while (digitalRead(ledPins[x]) == LOW)
{
x = random(0, 18);
}
}
}
void ledPattern3()
{
const unsigned long blinkInterval = 500;
static byte x = 0;//led index
static unsigned long startTime = millis();
if (millis() - startTime >= blinkInterval)
{
startTime = millis();
if (day() > 1 && day() < 8)
{
for ( x = 0; x <= day() - 2; x++)
{
digitalWrite(ledPins[x], !digitalRead(ledPins[x]));
}
}
else if (day() > 8 && day() < 15)
{
for (x = 0; x <= day() - 3; x++)
{
digitalWrite(ledPins[x], !digitalRead(ledPins[x]));
}
}
else if (day() > 15 && day() < 22)
{
for (x = 0; x <= day() - 4; x++)
{
digitalWrite(ledPins[x], !digitalRead(ledPins[x]));
}
}
}
}
//Fuktion for RTC
void digitalClockDisplay() {
// digital clock display of the time
Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.print(" ");
Serial.print(day());
Serial.print(" ");
Serial.print(month());
Serial.print(" ");
Serial.print(year());
Serial.println();
}
//Funktion for RTC
void printDigits(int digits) {
// utility function for digital clock display: prints preceding colon and leading 0
Serial.print(":");
if (digits < 10)
Serial.print('0');
Serial.print(digits);
}