Tag Archives: light sensor

Light up different LEDs under different light intensity

I built a little fun device with Arduino that uses a light sensor to detect how light the ambience is and lights up one of the LEDs accordingly. If it is bright in the surroundings the green LED will light, if it is dim the yellow LED will light and the red LED lights if it is completely dark.

Here is the circuit diagram for setting up the device

Image

Each LED has a wire connected to the UNO board to slot 9, 10, 11 individually, and the resistor and light sensor(photocell) all ultimately connect to the negative ground. Make sure they are all interconnected.

Below is the code with detailed comments:

// LDR reads the ambient light, and lights up one of the three LEDs,
//depending on how light the ambience is

#define LEDg 11
#define LEDy 10
#define LEDr 9
#define SENSOR 0

int val = 0;
int val_sensor = 0;

void setup() {

pinMode(LEDg, OUTPUT);
pinMode(LEDy, OUTPUT);
pinMode(LEDr, OUTPUT);
Serial.begin(9600);

//when plugged in, all the LED will light at first
digitalWrite(LEDg, HIGH);
digitalWrite(LEDy, HIGH);
digitalWrite(LEDr, HIGH);
delay(1000);
}

void loop() {
val = analogRead(0);

//print out the readings for light intensity from the sensor
Serial.println(val);

//default all the LED values to LOW so at first they won’t light

digitalWrite(LEDg, LOW);
digitalWrite(LEDy, LOW);
digitalWrite(LEDr, LOW);

 //bright surroundings light the green LED

if (val >= 500)
{
digitalWrite(LEDg, HIGH);
}

//medium light intensity, light the yellow LED
else if (val > 200)
{

digitalWrite(LEDy, HIGH);

}

//when the light intensity is VERY LOW, light the red LED
else
{

digitalWrite(LEDr, HIGH);
}

//set up the delay to 100 milliseconds so the LED respond to change in the light intensity faster
delay(100);
}

Advertisements