Code:

int LDRvalue = 1; int RedLED = 9; int GreenLED=10; int BlueLED=11; int pinLDR = 1; //RGB LED uses 3 outputs to control 3 basic colours void setup() { pinMode(RedLED, OUTPUT); pinMode(GreenLED, OUTPUT); pinMode(BlueLED, OUTPUT); analogReference(EXTERNAL); //Pins are outputs } void loop() { LDRvalue = analogRead(pinLDR); if(LDRvalue >= 1023) { digitalWrite(RedLED, 128); digitalWrite(GreenLED, 0); digitalWrite(BlueLED, 0); // Value corresponds to Colour Intensity } else if((LDRvalue >= 959) & (LDRvalue < 1023)) { digitalWrite(RedLED, 255); digitalWrite(GreenLED, 0); digitalWrite(BlueLED, 0); } else if((LDRvalue >= 895) & (LDRvalue < 959)) { digitalWrite(RedLED, 255); digitalWrite(GreenLED, 128); digitalWrite(BlueLED, 0); } else if((LDRvalue >= 831) & (LDRvalue < 895)) { digitalWrite(RedLED, 255); digitalWrite(GreenLED, 255); digitalWrite(BlueLED, 0); } else if((LDRvalue >= 767) & (LDRvalue < 831)) { digitalWrite(RedLED, 255); digitalWrite(GreenLED, 255); digitalWrite(BlueLED, 128); } else if((LDRvalue >= 703) & (LDRvalue < 767)) { digitalWrite(RedLED, 128); digitalWrite(GreenLED, 255); digitalWrite(BlueLED, 255); } else if((LDRvalue >= 639) & (LDRvalue < 703)) { digitalWrite(RedLED, 128); digitalWrite(GreenLED, 128); digitalWrite(BlueLED, 255); } else if((LDRvalue >= 575) & (LDRvalue < 639)) { digitalWrite(RedLED, 0); digitalWrite(GreenLED, 128); digitalWrite(BlueLED, 255); } else if((LDRvalue >= 511) & (LDRvalue < 575)) { digitalWrite(RedLED, 0); digitalWrite(GreenLED, 0); digitalWrite(BlueLED, 255); } else if((LDRvalue >= 447) & (LDRvalue < 511)) { digitalWrite(RedLED, 0); digitalWrite(GreenLED, 0); digitalWrite(BlueLED, 128); } else if((LDRvalue >= 383) & (LDRvalue < 447)) { digitalWrite(RedLED, 0); digitalWrite(GreenLED, 128); digitalWrite(BlueLED, 0); } else if((LDRvalue >= 319) & (LDRvalue < 383)) { digitalWrite(RedLED, 0); digitalWrite(GreenLED, 255); digitalWrite(BlueLED, 0); } else if((LDRvalue >= 255) & (LDRvalue < 319)) { digitalWrite(RedLED, 128); digitalWrite(GreenLED, 255); digitalWrite(BlueLED, 0); } else if((LDRvalue >= 191) & (LDRvalue < 255)) { digitalWrite(RedLED, 0); digitalWrite(GreenLED, 255); digitalWrite(BlueLED, 128); } else if((LDRvalue >= 127) & (LDRvalue < 191)) { digitalWrite(RedLED, 128); digitalWrite(GreenLED, 255); digitalWrite(BlueLED, 128); } else if((LDRvalue >= 63) & (LDRvalue < 127)) { digitalWrite(RedLED, 128); digitalWrite(GreenLED, 128); digitalWrite(BlueLED, 128); } else if((LDRvalue >=0) & (LDRvalue < 63)) { digitalWrite(RedLED, 55); digitalWrite(GreenLED, 55); digitalWrite(BlueLED, 55); } else { digitalWrite(RedLED, 0); digitalWrite(GreenLED, 0); digitalWrite(BlueLED, 0); } } void color(int red, int green, int blue) { analogWrite(RedLED, 255-red); analogWrite(GreenLED, 255-green); analogWrite(BlueLED, 255-blue);

This code is used for controlling an RGB led with an LDR

First, you stablish the variables and the setup, which you will add the mode of all the output pins

Then you create the loop, which will mostly be conditional statements

For this to work, you will have to vary the use of conditional statements depending of the variables, on which what colour it will display depeding of the light intensity

With this, you can controll an RGB LED with a LDR