/*
Major Studio: Computation - First Project, FOURTH iteration. Expressing time with LEDs.
March 2009.
••• LumaSphere •••
Joe Saavedra
*/
int ledPinG = 9;
int ledPinR = 10;
int ledPinB = 11;
int valR = 0;
int valG = 0;
int valB = 0;
int GT = 10;
int RT = 10;
int BT = 10;
long picker = 0;
long pickerD = 0;
void setup(){
pinMode(ledPinG, OUTPUT);
pinMode(ledPinR, OUTPUT);
pinMode(ledPinB, OUTPUT);
randomSeed(analogRead(0));
Serial.begin(9600);
}
void loop(){
//LED FADE-ON TIME
GT = random(25, 250);
RT = random(25, 250);
BT = random(25, 250);
Serial.print("GT: ");
Serial.println(GT);
Serial.println(" ");
Serial.print("RT: ");
Serial.println(RT);
Serial.println(" ");
Serial.print("BT: ");
Serial.println(BT);
Serial.println(" ");
//------ORDER OF COLORS TO FADE-ON-------
picker = (random(1,7));
Serial.print("picker: ");
Serial.println(picker);
Serial.println(" ");
if (picker == 1){
green(GT);
red(RT);
blue(BT);
pickerDown();
}
if (picker == 2){
green(GT);
blue(BT);
red(RT);
pickerDown();
}
if (picker == 3){
blue(BT);
red(RT);
green(GT);
pickerDown();
}
if (picker == 4){
blue(BT);
green(GT);
red(RT);
pickerDown();
}
if (picker == 5){
red(RT);
green(GT);
blue(BT);
pickerDown();
}
if (picker == 6){
red(RT);
blue(BT);
green(GT);
pickerDown();
}
}
//-----------FADE-OFF ORDER---------
void pickerDown(){
pickerD = random(1,7);
Serial.print("pickerD: ");
Serial.println(pickerD);
Serial.println(" ");
if (pickerD == 1){
greenD(GT);
redD(RT);
blueD(BT);
loop();
}
if (pickerD == 2){
greenD(GT);
blueD(BT);
redD(RT);
loop();
}
if (pickerD == 3){
blueD(BT);
redD(RT);
greenD(GT);
loop();
}
if (pickerD == 4){
blueD(BT);
greenD(GT);
redD(RT);
loop();
}
if (pickerD == 5){
redD(RT);
greenD(GT);
blueD(BT);
loop();
}
if (pickerD == 6){
redD(RT);
blueD(BT);
greenD(GT);
loop();
}
}
/////---------LED FADE FUNCTIONS---------
//--------GREEN------
void green(int GT){
for (valG = 10; valG <= 255; valG+=5){
analogWrite(ledPinG, valG);
delay(GT);
}
}
void greenD(int GT){
for (valG = 255; valG >= 0; valG-=5){
analogWrite(ledPinG, valG);
delay(GT);
}
}
//---------RED-------
void red(int RT){
for (valR = 10; valR <= 255; valR+=5){
analogWrite(ledPinR, valR);
delay(RT);
}
}
void redD(int RT){
for (valR = 255; valR >= 0; valR-=5){
analogWrite(ledPinR, valR);
delay(RT);
}
}
//--------BLUE--------
void blue(int BT){
for (valB = 10; valB <= 255; valB+=5){
analogWrite(ledPinB, valB);
delay(BT);
}
}
void blueD(int BT){
for (valB = 255; valB >= 0; valB-=5){
analogWrite(ledPinB, valB);
delay(BT);
}
}