I am currently making a light sequencer for my holiday christmas lights and it was going well until I reached a point where all my LED's shut off, this occurs around 83 seconds through the sketch, despite the code which was written to continue on. I will paste the code in this thread, but what could be going wrong? I'm using an arduino uno. Basically of theses "flickbooks" there are 6 of them but do to the character limit I had to remove the first 4.
long time = 0;
const int buttonPin = 12;
const int ledPin1 = 13;
int buttonState = 0;
int interval = 0;
int leds[] = {2,10, 4, 5, 6, 7, 8, 9};
#define NUMBER_OF_LEDS (sizeof(leds)/sizeof(int))
boolean flickbook5[][NUMBER_OF_LEDS] = { //ROCK N' ROLL!!!
{HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH, HIGH}, //1.1
{HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH, HIGH},
{HIGH, HIGH, LOW, LOW, LOW, HIGH, HIGH, HIGH},
{HIGH, HIGH, LOW, LOW, LOW, HIGH, HIGH, HIGH},
{HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH},//1.2
{HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH, HIGH},
{HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH},
{HIGH, HIGH, LOW, LOW, LOW, LOW, HIGH, HIGH},
{HIGH, HIGH, HIGH, LOW, HIGH, LOW, HIGH, HIGH,}, //1.3
{HIGH, HIGH, HIGH, LOW, HIGH, LOW, HIGH, HIGH},
{LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW},
{HIGH, HIGH, HIGH, LOW, HIGH, LOW, HIGH, HIGH},
{LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW}, //1.4
{HIGH, HIGH, HIGH, LOW, LOW, LOW, HIGH, HIGH},
{HIGH, HIGH, HIGH, LOW, LOW, LOW, HIGH, HIGH},
{HIGH, HIGH, HIGH, LOW, LOW, LOW, HIGH, HIGH},
};
boolean flickbook6[][NUMBER_OF_LEDS] = { //CHORUS 1/32NDS
{LOW, LOW, HIGH, HIGH, HIGH, HIGH, LOW, LOW}, //1.1
{LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW},
{LOW, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH},
{LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW},
{LOW, HIGH, HIGH, LOW, LOW, LOW, HIGH, HIGH}, //1.2
{LOW, HIGH, HIGH, LOW, LOW, LOW, HIGH, HIGH},
{LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW},
{LOW, LOW, LOW, LOW, LOW, LOW, HIGH, HIGH},
{HIGH, HIGH, HIGH, LOW, LOW, HIGH, HIGH, HIGH}, //1.3
{LOW, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW},
{LOW, LOW, HIGH, HIGH, HIGH, HIGH, LOW, LOW},
{LOW, LOW, HIGH, HIGH, HIGH, LOW, LOW, LOW},
{HIGH, HIGH, HIGH, LOW, LOW, HIGH, HIGH, HIGH}, //1.4
{LOW, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW},
{LOW, LOW, HIGH, HIGH, HIGH, HIGH, LOW, LOW},
{LOW, LOW, HIGH, HIGH, HIGH, LOW, LOW, LOW},
{LOW, LOW, HIGH, HIGH, HIGH, HIGH, LOW, LOW}, //2.1
{LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW},
{LOW, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH},
{LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW},
{LOW, HIGH, HIGH, LOW, LOW, LOW, HIGH, HIGH}, //2.2
{LOW, HIGH, HIGH, LOW, LOW, LOW, HIGH, HIGH},
{HIGH, HIGH, HIGH, LOW, LOW, LOW, LOW, LOW},
{HIGH, HIGH, HIGH, HIGH, LOW, HIGH, HIGH},
{HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW, LOW}, //2.2 (46)
{LOW, LOW, LOW, LOW, LOW, LOW, HIGH, HIGH},
{LOW, LOW, LOW, HIGH, HIGH, LOW, LOW, LOW},
{HIGH, HIGH, LOW, LOW, LOW, HIGH, LOW, LOW},
{HIGH, LOW, LOW, LOW, LOW, LOW, LOW, HIGH}, //2.3
};
#define FRAMES (sizeof(flickbook)/(sizeof(flickbook[0])))
#define FRAMES2 (sizeof(flickbook2)/(sizeof(flickbook2[0])))
#define FRAMES3 (sizeof(flickbook3)/(sizeof(flickbook3[0])))
#define FRAMES4 (sizeof(flickbook4)/(sizeof(flickbook4[0])))
#define FRAMES5 (sizeof(flickbook5)/(sizeof(flickbook5[0])))
#define FRAMES6 (sizeof(flickbook6)/(sizeof(flickbook6[0])))
int sensorPin = 0;
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(buttonPin, INPUT);
for (int led=0; led<NUMBER_OF_LEDS; led++) {
pinMode(leds[led], OUTPUT);
}
}
void loop(){
//declare reset function @ address 0
long time = millis();
int led;
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH && millis() <15000) {
for (int frame=0; frame<FRAMES; frame++) {
for (led=0; led<NUMBER_OF_LEDS; led++) {
digitalWrite(leds[led], flickbook[frame][led]);
}
while (interval >= (millis() - time)) {
}
time = millis();
if (millis() <= 1500) {
interval = 468/2;
}
}}
if (buttonState == HIGH && millis() >= 15000 && millis() < 22600 || millis() >= 35600 && millis() < 37383) {
for (int frame2=0; frame2<FRAMES2; frame2++) {
for (led=0; led<NUMBER_OF_LEDS; led++) {
digitalWrite(leds[led], flickbook2[frame2][led]);
}
while (interval >= (millis() - time)) {
}
time = millis();
if (millis() >= 1500) {
interval = 468/4;
}
}}
if (buttonState == HIGH && millis() >= 22600 && millis() < 35600 || millis() >= 37383 && millis() < 52522) {
for (int frame3=0; frame3<FRAMES3; frame3++) {
for (led=0; led<NUMBER_OF_LEDS; led++) {
digitalWrite(leds[led], flickbook3[frame3][led]);
}
while (interval >= (millis() - time)) {
}
time = millis();
if (millis() >= 1500) {
interval = 468/4;
}
}}
if (buttonState == HIGH && millis() >= 52522 && millis() < 80495) { //1ST DROP
for (int frame4=0; frame4<FRAMES4; frame4++) {
for (led=0; led<NUMBER_OF_LEDS; led++) {
digitalWrite(leds[led], flickbook4[frame4][led]);
}
while (interval >= (millis() - time)) {
}
time = millis();
if (millis() >= 1500) {
interval = 468/8; //1/32nds
}
}}
if (buttonState == HIGH && millis() >= 80495 && millis() < 82514) { //Rock N' Roll!!!
for (int frame5=0; frame5<FRAMES5; frame5++) {
for (led=0; led<NUMBER_OF_LEDS; led++) {
digitalWrite(leds[led], flickbook5[frame5][led]);
}
while (interval >= (millis() - time)) {
}
time = millis();
if (millis() >= 1500) {
interval = 468/4; //1/16nds
}}
if ( millis() >= 82515) { //CHORUS
for (int frame6=0; frame6<FRAMES6; frame6++) {
for (led=0; led<NUMBER_OF_LEDS; led++) {
digitalWrite(leds[led], flickbook6[frame6][led]);
}
while (interval >= (millis() - time)) {
}
time = millis();
if (millis() >= 1500) {
interval = 468/4; //1/16nds
}
}
}}
}