const int colorBut = 0; const int brightBut = 1; const int strobe = 3; const int enable = 4; const int CP = 5; const int brightness = 10; void setup() { Serial.begin(9600); //pin initialization pinMode(0, INPUT); pinMode(1, INPUT); pinMode(strobe,OUTPUT); //Strobe pinMode(enable,OUTPUT); //Enable pinMode(CP,OUTPUT); //Clock pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(brightness,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); pinMode(13,OUTPUT); pinMode(14,OUTPUT); digitalWrite(enable,HIGH); //digitalWrite(strobe,HIGH); digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW); digitalWrite(13, HIGH); analogWrite(strobe ,1); //analogWrite(enable, 1); } int i; //color order BGR bool white[3] = {0,0,0}; bool cyan[3] = {0,0,1}; bool purple[3] = {0,1,0}; bool blue[3] = {0,1,1}; bool yellow[3] = {1,0,0}; bool green[3] = {1,0,1}; bool red[3] = {1,1,0}; bool off[3] = {1,1,1}; void setColor(bool color[]){ for(i=0 ; i<3; i++){ digitalWrite(8, color[i]); digitalWrite(CP, LOW); //delay(1); digitalWrite(CP,HIGH); //delay(1); } } bool randBool(){ return (random(0,4)%2); } void randomColor(){ for(i=0 ; i<3; i++){ digitalWrite(8, randBool( )); digitalWrite(CP, LOW); //delay(1); digitalWrite(CP,HIGH); //delay(1); } } void setCol(bool color1[],bool color2[],bool color3[],bool color4[]){ setColor(color1); setColor(color2); setColor(color3); setColor(color4); } void setColRandom(){ randomColor(); randomColor(); randomColor(); randomColor(); } int brightLevel = 40; int buttonState; void loop() { // put your main code here, to run repeatedly: analogWrite(brightness,brightLevel); buttonState = digitalRead(brightBut); if(buttonState==LOW){ brightLevel+=20; if(brightLevel>240) brightLevel=0; delay(300); } if(!digitalRead(colorBut)){ setColRandom(); delay(300); } }