Color Changing Light
The purpose of this project is to make a light that when placed on a certain colored surface, lights up to that color.
Ex. If the light is placed on a blue surface, the LED on top will turn blue
When the code runs the arduino turns each light on in the multi-colored LED in a cycle. It reflects on the surface to help the photoresistor figure out what color it is on. It does this because the color that the light is on, lets go with blue, when the light is on a blue paper and it goes through each color the blue LED reflects the most light off of the blue surface then the red and green colors. Then the photoresistor takes the highest number value and send that to the other LED on top of the light to turn it on. This process repeats continuosley to keep the light on top lite to the color of the surface it is on.
int redPin = 8; //sets variables for different LEDs
int greenPin = 7;
int bluePin = 6;
int redPin2 = 5;
int greenPin2 = 4;
int bluePin2 = 3;
int potPin = 5; //sets variable for photoresistor
int val = 0; //variable for value read from photoresistor
int redVal = 0;
int greenVal = 0;
int blueVal = 0;
void setup()
{
pinMode(redPin, OUTPUT); //makes each LED an OUTPUT
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(redPin2, OUTPUT);
pinMode(greenPin2, OUTPUT);
pinMode(bluePin2, OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(redPin, HIGH); //turns LED on
delay(500);
val = analogRead(potPin); //tells arduino to read the value from the photoresistor
digitalWrite(redPin, LOW); //turns LED off
Serial.println(val); //writes val
redVal=map(val, 800, 990, 0, 255); //take the value from between the first set of number and changes it to a number between 0 and 255 to set the color
digitalWrite(greenPin, HIGH);
delay(500);
val = analogRead(potPin);
digitalWrite(greenPin, LOW);
Serial.println(val);
greenVal=map(val, 800, 990, 0, 255);
digitalWrite(bluePin, HIGH);
delay(500);
val = analogRead(potPin);
digitalWrite(bluePin, LOW);
Serial.println(val);
blueVal=map(val, 800, 990, 0, 255);
analogWrite(redPin2, redVal); //tells the second LED to turn on to a certain value
analogWrite(greenPin2, greenVal);
analogWrite(bluePin2, blueVal);
}