An LDR (Light Dependent Resistor), also called a photoresistor, is a simple light-sensitive component whose resistance changes with the amount of light it receives. This article explains how an LDR works, its symbol and internal construction, key specifications, and how it is used in a voltage-divider circuit. It also covers practical circuit examples, Arduino connections, common applications, comparison with other light sensors, and the main factors to check when choosing an LDR.

An LDR (Light Dependent Resistor), also called a photoresistor, works by changing its resistance according to the amount of light falling on its photosensitive surface. In darkness or low light, its resistance is high, so less current can flow through it.

When light shines on the LDR, photons transfer energy to the photoconductive material and create more mobile charge carriers. This increases conductivity, causing the resistance of the LDR to decrease and allowing more current to flow through the circuit.
In simple terms, more light means lower resistance, while less light means higher resistance. This change is continuous rather than a simple ON/OFF action. The exact resistance depends on the light level, LDR material, temperature, and device characteristics.
The relationship between light intensity and LDR resistance is nonlinear. Resistance decreases as illumination increases, but doubling the light level does not normally reduce the resistance by exactly half. The exact resistance-versus-light relationship depends on the LDR model and should be checked using its datasheet curve.
The image shows both the LDR circuit symbol and the basic construction of a Light Dependent Resistor (LDR). The symbol uses a resistor element with arrows pointing toward it. These arrows represent incoming light. The symbol indicates that the resistance of the LDR changes depending on the amount of light falling on it. The construction diagram shows how the photosensitive material, electrodes, contacts, substrate, and terminals are arranged inside the device.

• Photoconductive Material – The light-sensitive material on the top surface. Its resistance decreases when more light falls on it and increases when the light level becomes lower.
• Electrodes – Conductive tracks placed across the photosensitive surface. They collect and carry electrical current through the LDR.
• Metal Contacts – Connect the electrode structure to the internal electrical connections of the device.
• Cold-Weld Contacts – Provide a mechanical and electrical connection between the internal electrode structure and the external leads.
• Clear Protective Coating – Covers the top surface while allowing light to reach the photoconductive material. It also helps protect the sensitive layer from physical damage and contamination.
• Ceramic Substrate – Provides a rigid and electrically insulating base that supports the photoconductive layer and electrode structure.
• Active Film – The photosensitive semiconductor layer where the photoconductive effect occurs.
• Wire Terminals – The two external leads used to connect the LDR to an electrical circuit. The device is generally non-polarized, so either terminal can normally be connected in either direction.
The table below uses the GL5528 as an example. Other LDR models may have substantially different values, so always check the specific datasheet before designing a circuit.
| Specification | Example GL5528 Data | What It Means |
| Light Resistance at 10 lux | 10–20 kΩ | Resistance measured when the LDR is illuminated at 10 lux. |
| Dark Resistance | ≥1 MΩ | Resistance after the device has been kept in darkness under the specified test conditions. |
| Maximum Voltage | 150 V | Maximum voltage permitted across the LDR under rated conditions. |
| Maximum Power Dissipation | 100 mW | Maximum electrical power the device can safely dissipate. |
| Operating Temperature | −30°C to +70°C | Recommended environmental temperature range. |
| Peak Spectral Response | Approx. 540 nm | Wavelength at which the device is most sensitive, around the green region of visible light. |
| Response Time | Tens of milliseconds | Indicates how quickly resistance changes when illumination changes. |
| Light/Dark Resistance Ratio | Model-dependent | Shows how strongly resistance changes between illuminated and dark conditions. |
| Sensitivity / γ Value | About 0.6 | Describes the slope of the resistance-versus-illuminance relationship. |
| Photosensitive Material | CdS | Cadmium sulfide is the photoconductive material used in this type of LDR. |
An LDR is commonly connected with a fixed resistor to form a voltage divider. This converts the LDR’s change in resistance into a changing output voltage that can be measured by an analog-to-digital converter, comparator, transistor circuit, or other electronic circuitry.
For example, if the LDR is connected between the supply voltage and the output node, while the fixed resistor is connected between the output and ground, the output voltage increases as the LDR receives more light. More light lowers the LDR resistance, causing a larger proportion of the supply voltage to appear across the fixed resistor. In this arrangement:
Vout = Vs × Rfixed / (RLDR + Rfixed)
The positions can also be reversed. If the fixed resistor is connected to the supply and the LDR is connected between the output and ground, increasing light causes the output voltage to decrease. The arrangement should therefore be selected according to whether the circuit needs a voltage that rises or falls with increasing light.
The fixed resistor affects the sensitivity and useful measurement range of an LDR voltage-divider circuit. Important factors include:
- Choose the resistor around the expected LDR resistance. For good sensitivity near a particular light level, the fixed resistance is commonly selected close to the LDR resistance at that target illumination.
- Consider the required light range. Select the resistor according to whether the circuit must detect darkness, normal indoor lighting, daylight, or another specific illumination range.
- Use the LDR datasheet. Check its resistance at the expected illuminance instead of assuming one universal resistance value.
- Consider the required output voltage range. The resistor should produce useful voltage changes that can be detected by the connected ADC, comparator, or control circuit.
- Check power and voltage limits. Make sure neither the LDR nor the fixed resistor exceeds its rated voltage or power dissipation.
- Account for device variation. LDR resistance can vary considerably between devices, so circuits requiring an exact switching point may need calibration or an adjustable threshold.
- Use a potentiometer when adjustment is needed. A potentiometer can replace or supplement the fixed resistor when the light-trigger level needs to be set manually.

In this circuit, the LDR and the 300 Ω resistor with VR1 form a light-sensitive voltage divider. As the light level increases, the LDR resistance decreases and the voltage applied through the 1.5 kΩ resistor to the 2N3053 transistor rises. When the voltage is high enough, the transistor switches on and energizes the 12 V relay. VR1 adjusts the light level at which the relay operates, while the 1N4148 diode protects the transistor from the relay coil's reverse-voltage spike.

Here, the LDR is connected in series with a sensitive 100 µA meter and a selectable resistance. As more light reaches the LDR, its resistance decreases, allowing more current to flow through the meter and producing a higher reading. R1 and the adjustable R2 provide different measurement ranges, allowing the circuit to respond to different light levels. The meter must be calibrated against a known light meter for meaningful illumination readings.

In this circuit is designed to detect when a light beam reaching the LDR is blocked. Under illumination, the LDR has low resistance and keeps the transistor's base voltage relatively low. When the light is interrupted, the LDR resistance increases, causing the base voltage to rise. The 2N3053 then switches on and energizes the relay. VR1 sets the detection threshold, allowing the circuit to determine how much reduction in light is required before the relay activates.

The circuit adds a 741 operational amplifier as a comparator to improve light-level detection. The LDR and R1 produce a voltage that changes with illumination, while VR1 provides an adjustable reference voltage. When increasing light lowers the LDR resistance enough for the LDR-derived voltage to cross the reference level, the comparator output changes state and drives the 2N3053 transistor, which operates the relay. This arrangement provides more precise threshold detection than directly driving the transistor from the LDR divider.

This circuit automatically switches the lamp on when the surrounding light becomes low. In bright conditions, the LDR resistance is low, causing the BC107 transistor to conduct. This pulls down the drive to the 2N3053 power transistor, keeping the lamp off. In darkness, the LDR resistance increases, the BC107 switches off, and the 2.2 kΩ resistor provides base drive to the 2N3053, turning the lamp on. VR1 adjusts the darkness level at which the lamp switches on.
An LDR cannot usually provide a useful Arduino reading by itself because the Arduino analog input measures voltage, not resistance. To measure light level, the LDR is connected with a fixed resistor to form a voltage divider. As the light level changes, the resistance of the LDR changes, which changes the voltage sent to an Arduino analog input such as A0.

In the arrangement shown, one side of the divider is connected to the Arduino supply and the other side to GND. The junction between the LDR and the fixed resistor connects to the analog input. The Arduino converts this voltage into a digital ADC value. On a typical Arduino Uno using its default 10-bit ADC, the reading is usually between 0 and 1023, although the exact value depends on the supply/reference voltage and circuit arrangement.
The basic connections are:
• LDR – detects changes in light by changing resistance.
• Fixed resistor – works with the LDR to create the voltage divider.
• Analog input A0 – reads the changing divider voltage.
• 5 V – supplies the voltage-divider circuit.
• GND – provides the circuit return path.
Whether the Arduino reading increases or decreases when light increases depends on where the LDR is placed in the divider. If the LDR is connected toward 5 V and the fixed resistor toward ground, more light generally produces a higher output voltage. If their positions are reversed, more light produces a lower output voltage.
Once the Arduino reads the light level, the program can compare it with a selected threshold and control devices such as LEDs, relays, alarms, or automatic lighting systems.

• Automatic street lights – Used to detect when daylight decreases so street lights can turn on automatically at night and turn off during the day.
• Night lamps – Used in automatic night lights to switch the lamp on when the room becomes dark.
• Camera light meters – Used to measure surrounding light levels and help determine suitable exposure settings.
• Solar garden lights – Used to detect daytime and nighttime conditions so the light remains off during the day and turns on after dark.
• Security systems – Used to detect changes or interruptions in a light beam for alarms and basic intrusion detection.
• Light-activated relays – Used to switch electrical loads when the surrounding light rises above or falls below a selected level.
• Automatic display brightness control – Used to sense ambient light so screen or display brightness can be adjusted automatically.
• Light intensity monitoring – Used in simple electronic circuits to measure or compare changes in surrounding illumination.
• Arduino light sensors – Used with microcontrollers to measure light levels and control LEDs, relays, alarms, or other devices based on programmed thresholds.
• Beam interruption detectors – Used to detect when an object blocks a light source directed at the LDR.
• Automatic indoor lighting – Used in rooms, corridors, and entrances to control lighting according to ambient brightness.
• Light-sensitive alarms – Used to trigger an alarm when unexpected light appears or when an existing light beam is blocked.
| Feature | LDR / Photoresistor | Photodiode | Phototransistor | Ambient Light Sensor |
| How it works | Changes resistance with light intensity | Produces photocurrent when exposed to light | Uses light to control transistor current | Uses integrated circuitry to measure ambient light |
| Output | Resistance change | Current | Current | Analog or digital signal |
| Response speed | Slow | Very fast | Fast | Moderate to fast |
| Sensitivity | Good for general light detection | High | Higher than many photodiodes | Designed for human-visible light measurement |
| Accuracy | Low to moderate | High when properly designed | Moderate to high | High for ambient-light measurement |
| Linearity | Poor to moderate | Generally good | Less linear than a photodiode | Usually good over the specified range |
| Circuit complexity | Very simple | Usually needs signal-conditioning circuitry | Relatively simple | May require digital communication such as I²C |
| Cost | Very low | Low | Low | Moderate |
| Power consumption | Very low | Very low | Low | Low |
| Typical response range | Visible light, depending on material | Visible, IR, or UV depending on type | Visible or IR depending on type | Mainly visible light |
| Best for | Simple day/night detection and light switches | Fast and accurate optical sensing | Light detection requiring higher sensitivity | Automatic screen brightness and lux measurement |
| Main limitation | Slow response and wide tolerance | Small output often requires amplification | Less precise and linear than a photodiode | More expensive and complex than an LDR |
• Check the light resistance – Choose an LDR with a suitable resistance at the light level your circuit needs to detect.
• Check the dark resistance – A higher dark resistance can provide a larger difference between bright and dark conditions, which is useful for switching applications.
• Match the light range – Select an LDR designed for the expected environment, such as indoor lighting, outdoor daylight, or low-light detection.
• Check spectral sensitivity – Make sure the LDR responds well to the wavelength of the light source you want to detect. Many common CdS LDRs are most sensitive in the visible range.
• Consider response time – LDRs are relatively slow compared with photodiodes and phototransistors. Choose a faster sensor if rapid light changes must be detected.
• Check maximum voltage and power – Make sure the applied voltage and power dissipation stay within the LDR’s rated limits.
• Consider operating temperature – Select a device that can operate reliably within the expected temperature range.
• Check resistance tolerance – LDR resistance can vary significantly between individual devices. For precise threshold control, use calibration or an adjustable resistor.
• Choose the correct physical size – Larger sensing surfaces can collect more light, while smaller LDRs are easier to use in compact circuits.
• Consider the circuit type – For simple automatic lights, alarms, and Arduino projects, a basic LDR is usually sufficient. For accurate lux measurement or fast optical sensing, a photodiode or digital ambient light sensor may be a better choice.
• Check the datasheet – Compare light resistance, dark resistance, spectral response, response time, voltage rating, power rating, and temperature range before selecting a specific LDR model.

An LDR is a practical choice for basic light sensing because it can convert changes in light into changes in resistance. When paired with a fixed resistor, transistor, comparator, relay, or Arduino, it can be used for automatic lights, light meters, beam detectors, alarms, and other light-controlled circuits. However, an LDR is not the best sensor for every design. It responds more slowly and is generally less accurate than photodiodes or dedicated ambient light sensors. Choosing the right LDR means checking its light resistance, dark resistance, spectral response, response time, voltage and power ratings, operating temperature, and the light range of the application.