I am quite new to arduino and I have made a large light array, about 50, all indivudually controlled with 74HC595 shift registers. I am trying to make mutiple patterns and I am using an IR remote to change within the patterns but I get too many problems such as the loop won't break or mutiple pattern join into one. I just need some help. Thanks
#include <IRremote.h>
int IRpin=9;
IRrecv IR(IRpin);
decode_results cmd;
unsigned long key_value =0;
int latchPin=8;
int clockPin=12;
int dataPin=11;
int ROW0=2;
int ROW1=3;
int ROW2=4;
int ROW3=5;
int ROW4=6;
int ROW5=7;
int ROW6=8;
//DELAY TIMINGS
int sDl=1;
int lDl=5;
int rDl=500;
int mLd=200;
int oGreen;
int oRed;
int oYellow;
int oBlue;
byte LED0=0b00000000;
byte LED1=0b00100001;
byte LED2=0b10000100;
byte LED3=0b10000100;
byte LED4=0b00100001;
byte LED5=0b00011000;
byte LED6=0b01000010;
byte LED7=0b01000010;
byte LED8=0b00011000;
void setup() {
pinMode(latchPin,OUTPUT);
pinMode(dataPin,OUTPUT);
pinMode(clockPin,OUTPUT);
pinMode(ROW0,OUTPUT);
pinMode(ROW1,OUTPUT);
pinMode(ROW2,OUTPUT);
pinMode(ROW3,OUTPUT);
pinMode(ROW4,OUTPUT);
pinMode(ROW5,OUTPUT);
Serial.begin(9600);
IR.enableIRIn();
}
void loop() {
IR.resume();
switch(cmd.value)
{
//only green LEDs
case 0xFD30CF:
digitalWrite(ROW0,HIGH);
digitalWrite(ROW2,HIGH);
digitalWrite(ROW4,HIGH);
digitalWrite(latchPin,LOW);
shiftOut(dataPin,clockPin,MSBFIRST,LED1);
digitalWrite(latchPin,HIGH);
delay(sDl);
digitalWrite(latchPin,LOW);
shiftOut(dataPin,clockPin,MSBFIRST,LED0);
digitalWrite(latchPin,HIGH);
digitalWrite(ROW0,LOW);
digitalWrite(ROW2,LOW);
digitalWrite(ROW4,LOW);
digitalWrite(ROW1,HIGH);
digitalWrite(ROW3,HIGH);
digitalWrite(ROW5,HIGH);
digitalWrite(latchPin,LOW);
shiftOut(dataPin,clockPin,MSBFIRST,LED2);
digitalWrite(latchPin,HIGH);
delay(sDl);
digitalWrite(latchPin,LOW);
shiftOut(dataPin,clockPin,MSBFIRST,LED0);
digitalWrite(latchPin,HIGH);
digitalWrite(ROW1,LOW);
digitalWrite(ROW3,LOW);
digitalWrite(ROW5,LOW);
case FD08F7:
//ONLY RED
digitalWrite(ROW0,HIGH);
digitalWrite(ROW2,HIGH);
digitalWrite(ROW4,HIGH);
digitalWrite(latchPin,LOW);
shiftOut(dataPin,clockPin,MSBFIRST,LED3);
digitalWrite(latchPin,HIGH);
delay(sDl);
digitalWrite(latchPin,LOW);
shiftOut(dataPin,clockPin,MSBFIRST,LED0);
digitalWrite(latchPin,HIGH);
digitalWrite(ROW0,LOW);
digitalWrite(ROW2,LOW);
digitalWrite(ROW4,LOW);
digitalWrite(ROW1,HIGH);
digitalWrite(ROW3,HIGH);
digitalWrite(ROW5,HIGH);
digitalWrite(latchPin,LOW);
shiftOut(dataPin,clockPin,MSBFIRST,LED4);
digitalWrite(latchPin,HIGH);
delay(sDl);
digitalWrite(latchPin,LOW);
shiftOut(dataPin,clockPin,MSBFIRST,LED0);
digitalWrite(latchPin,HIGH);
digitalWrite(ROW1,LOW);
digitalWrite(ROW3,LOW);
digitalWrite(ROW5,LOW);
}
}