Mapping PAR Meter to Analog LDR


Hello hello nerd farmers!

I am a middle school science teacher. My students and I were able to get out hands on a high end PAR meter to measure the light intensity of the LED panels in our vertical hydroponics system. Given the expense, we have been trying to see if we can get some standard data of values within the system and compare them to the analog readouts from an LDR running on an Arduino sketch.

The goal is to derive an equation that will convert LDR values for this panel into PAR readings. We have four readings at the moment, but intend to gather more. The raw data is as follows

PAR meter readings: 770.1 , 530.8 , 294.1 , 105.2
Correlating LDR readings: 1104, 997, 985, 945

I have some very bright young people working on the math and I want to give them a chance to hash this out. I suspect this data set shows an exponential relationship. Any insight from the forum on how to derive the conversion equation so we can hand this off to the arduino? Thanks a bunch.


Measuring light power distribution in a specific frequency band is complicated. You need to understand the spectral response of your sensors and the spectral power distribution of your light source.

But, if you’re always using the same light source (i.e. the spectral power distribution is constant), you could probably make a pretty useful lookup table to translate from LDR (light dependent resistor?) measurements to PAR measurements without too much trouble. To vary the light intensity for making a table, you could use distance from the light source in an otherwise dark room, or you could experiment with photographic neutral density filters. Maybe you could fit the lookup table with a linear, quadratic, or exponential approximation function.

Here are a few threads from this forum with links to background information (scroll through all the comments):

Here are some additional links on measuring light from my own notes:

If you want to get really serious about the math, you’ll need to understand more than I’ve been able to figure out. This is what I’ve come up with so far… For PAR, what you’re trying to get is the photon flux within a specific frequency band. The problem is that the response you get out of a light sensor is a convolution of the light source’s spectral power distribution with the sensor’s spectral sensitivity. I’m speaking about things a bit past the edge of my understanding, so maybe convolution isn’t the right term. But there’s definitely a combination of functions and an integral involved. The key point is that the number you get from a cheap light intensity sensor is an integral of weighted photon flux over the sensor’s whole spectral response. There isn’t an easy way to split that integral up into relative contributions from different frequency bands of photons hitting the sensor. But, I think there ought to be a hard way as long as you know the spectral distribution of the light source.

For example, suppose you use a photo resistor that is most sensitive to green light to measure a compact fluorescent lamp and compare that to measuring a grow lamp with red and blue LEDs. Assuming the CFL and the grow lamp put out the same amount of photosynthetic photon flux, you’ll probably get a much higher reading for the CFL. The problem isthat the CFL will have the characteristic green spike from mercury vapor. Because the photo resistor is sensitive to green but not red or blue, it will make the CFL appear to have more photon flux. This is an example of why people use spectroradiometers.

If you want to focus more on understanding how your LDR responds to light, you could try searching Mouser or DigiKey for datasheets on photo sensors. Also, Adafruit’s photocell learning guide has a couple links to Cadmium Sulfide photocell datasheets. From a quick look at those datasheets, it seems like maybe the resistance is a logarithmic function of light intensity.