Arduino Basics No.1 - Photoresistor




About: I always liked making stuff and when my grandfather showed me Instructables I became an addict. I don't have any degrees yet but I'm working on my aeronautics engineering degree :-P

In this guide i will show you how yo use the analog input of the Arduino and to control an led according to the values the analog inputs receives.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Gathering Materials

What you'll need:

1) Arduino board (here is the one i baught i connected it as an Uno board).


3) Photoresistor ( a photoresistor is a resistor the changes current according to the light, the higher the light level is the lower the resistance).

4) 330 Ω resistor.

5) Arduino cable.

6) Alligator cable.

7) Wires.

Step 2: Building the Chassis

First, connect the photo resistor to the resistor, the resistor goes to Gnd (Ground), from the connection between them connect a wire that goes to Analog input 0.

Now connect the Arduino to the computer.

We now want to see the values that the Arduino reads on A0 (refer to pic No.3).

The purpose of the code is to print (Serial.println) the values the we get from A0.

Notice that as i cover the photoresistor with my finger the values are droping (refer to pic No.4).

Step 3: Values to Analog

Now in order to control the led with our values we want to make sure that we output values in range of from 0 to 255.

In the code (pic No.1) we see the A0 (senespin) reading values, than we make sure that our values are between 32 and 118 anything higher than 118 will become 118 or anything lower than 32 will become 32 (these are the values my arduino reads, if your range is higher or lower change the code according to it).

After the "constrain" command I used the "map" one, this command changes 32 to 255 and 118 to 0, everything between 118 and 32 will scale proportionality between 0 and 255 (notice that as the light level is lower the photoresistor outputs more current the val is lower and the ledval gets higher, and the opposite).

Step 4: Led

Now connect the led to pin 12 and to Gnd and change the code according to picture No.1 the "analogWrite" command outputs a higher current as the ledval gets higher and so the led gets brighter.

As you can see in video No.1 the led gets brighter i shut down my desk lamp.

**Notice that the code are in the next step.

Hope you enjoyed this guide, any comments/ grammar correction will be accepted gladly.

Don't forget to view my other Arduino guides.

Step 5: Codes

void setup()//code 1
void loop() 
<p>int sens = 0; //code 2<br>void setup()
void loop()
  int val = analogRead(sens);
  val = constrain( val,32,118);
 int ledval = map(val,32,118,255,0);
<p>int led = 12; // code 3<br>int sens = 0;
void setup()
void loop()
  int val = analogRead(sens);
  val = constrain( val,20,190);
 int ledval = map(val,20,190,255,0);

Step 6: That's It

I hope you enjoyed this guide, if you have any questions I will answer them happily.

Like this project? Check out my profile, my Facebook page and my YouTube Channel.

Epilog Challenge VI

Participated in the
Epilog Challenge VI

Sensors Contest

Participated in the
Sensors Contest

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    2 Discussions