Hi,
I am trying to make a little lightbox which will include 3 LEDs. When i press a button i want each LED to fade to a new value.
I have it working fine using one LED but i am not sure how to make 3 LEDs fade to different values simultaneously.
Here is the code to fade just the green LED to a different value with every press of the button. Ignore the Serial.println stuff it was just there when debugging.
Any help would be greatly appreciated.
Thanks, Patrick
int greenpin = 11;
int bluepin = 10;
int redpin = 9;
int buttonpin = 2;
int val;
int rgreen; //Latest random value for each colour
int rblue;
int rred;
int buttonstate = 0;
int brightnessgreen = 0; //
int brightnessblue = 0;
int brightnessred = 0;
int destinationgreen = 0;
int destinationblue = 0;
int destinationred = 0;
int fadeamount = 1;
void setup(){
Serial.begin(9600);
pinMode(greenpin, OUTPUT);
pinMode(bluepin, OUTPUT);
pinMode(redpin, OUTPUT);
pinMode(buttonpin, INPUT);
randomSeed(analogRead(0));
}
void loop(){
val = digitalRead(buttonpin); //Check whether the button has been pressed
if (val != buttonstate){
if (val== LOW){
rgreen = random(30);
rblue = random(30);
rred = random(30);
Serial.println(rgreen);
Serial.println(rblue);
Serial.println(rred);
if(rgreen > brightnessgreen){ //If the new randomnumber is LARGER than the previous one, proceed with the following for statement
for (int brightnessgreen = destinationgreen; brightnessgreen <= rgreen; brightnessgreen++){
analogWrite(greenpin, brightnessgreen);
delay(100);
Serial.println(brightnessgreen);
}
brightnessgreen = rgreen;
destinationgreen = rgreen;
Serial.println("it was a bigger number!");
Serial.print("the new brightness variable is " );
Serial.println(brightnessgreen);
}else{
if(rgreen < brightnessgreen){ //If the new randomnumber is SMALLER than the previous one, proceed with the following for statement
for (int brightnessgreen = destinationgreen; brightnessgreen >= rgreen; brightnessgreen--){
analogWrite(greenpin, brightnessgreen);
delay(100);
Serial.println(brightnessgreen);}
brightnessgreen = rgreen;
destinationgreen = rgreen;
Serial.println("it was a smaller number!");
Serial.print("the new brightness variable is " );
Serial.println(brightnessgreen);}}
}
buttonstate = val;}} // reset the buttonstate for the ' if (val != buttonstate){' line of code