Fork me on GitHub

Project Notes

#034 Low-light Trip Detector

Use an Arduino to monitor an LDR sensor, and plot the results with Processing.

The Build

Notes

This demonstrates two circuit concepts:

  • a light sensor comprising a light-dependent resistor (LDR) and Wheatstone Bridge.
  • a threshold detector using an OpAmp comparator.

The Arduino only acts as a measurement device in this circuit. It reads the voltage at the base of the LDR with an analog input pin, and reads OpAmp comparator status with a digital input pin.

Calibrating the Wheatstone Bridge

The particular LDR used has a range of about 200Ω (bright light) to 20kΩ (dark). However the ambient light conditions used for testing the circuit exhibited a typical range of 2kΩ-5kΩ, hence 4.7kΩ is selected as the common resistor value in the bridge so that we can drive positive and negative voltages from the bridge. A variable resistor opposes the LDR, so that the actual threshold level can be trimmed.

The voltage differential measured across the bridge - from the base of the pot to the base of the LDR - will tend to rise in lighter conditions as the LDR resistance drops. As conditions get darker, the LDR resistance rises until a point there the voltage differential will go negative.

Comparator

This voltage differential is fed to an OpAmp comparator (an LM324 Low Power Quad Op-Amp). By feeding the LDR end of the differential to the negative input of the comparator, it acts as a low-threshold trigger. Reversing the inputs to the comparator could be used for a high-threshold trigger.

Note: the circuit as described does not follow best practices for tethering the unused OpAmp units in the LM324 since this is only a test and it didn’t have a noticeable impact on behaviour.

Behaviour

Here’s a sample trace taken with LEAP#090 PlotNValues (a simple Processing sketch). The lower plot is the voltage at the base of the LDR as I roll a ball in the vicinity of the LDR. The upper plot is the comparator output demonstrating how it flips high when the light level goes below the preset threshold.

processing trace

Construction

The Breadboard

The Schematic

The Build

Credits and References

About LEAP#34 SensorsOpAmpArduino
Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is just my personal collection of projects, usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting (IMHO!).

The projects are usually inspired by things found wild on the net, or ideas from the sources such as:

Feel free to borrow liberally, and if you spot any issues do let me know. See the individual projects for credits where due. There are even now a few projects contributed by others - send your own over in a pull request if you would also like to add to this collection.