Seeking Help Improving Photodiode Beam Break Detector Sensitivity

Hi everyone,

I'm designing a low-cost photodiode beam break detector grid and have run into an issue that I haven't been able to find answers for in other photodiode related posts.

My design requirements are:

  • It's a grid of paired infrared emitter diodes and receiver photodiodes, with the emitter and receiver columns aligned parallel on a plane.
  • The emitter-receiver pairs are spaced 5mm apart, and I 3D printed light baffles between adjacent pairs to avoid crosstalk.
  • Currently I'm using regular infrared emitter LEDs paired with photodiodes at a distance of 40cm. The photodiodes have a rise time of 100ns.
  • The grid needs to detect a 7mm diameter object moving at 100m/s, so the minimum trigger time is around 10us when the object is centered between two beams.
  • The photodiodes are reverse biased to 5V VCC, with a 1M pull-down resistor to GND.



The issue I'm running into:

  • At a distance of 20cm I can get a noticeable voltage change of 1V across the photodiode and resistor, sufficient for detection. But at 40cm the change is less than 0.1V.
  • Using a phototransistor instead I can get enough voltage change at 40cm, but phototransistors are too slow for the speed requirements.
  • Increasing the emitter LED current from 36mA to 70mA helps somewhat, but I'd rather avoid that (too much power draw).
  • The main problem is getting enough sensitivity at 40cm distance. The software side is not an issue.

What approaches could I try to improve this design, getting stable and fast single beam break detection on the MCU, without greatly increasing cost? Or are there other design ideas that could meet the project requirements?

Any suggestions appreciated!

A photodiode with a high value pullup resistor is a poor choice. Photodiodes are capacitors, and the resistor limits the rise time.

For fast response and high sensitivity, use a photodiode amplifier. They are simple to make but some important considerations are required, as described in this publication:

Finally, there is plenty of IR in any ordinary lighting situation. An enclosure to reduce external illumination will certainly increase the sensitivity and discrimination.

1 Like

It looks like I made a typical mistake :grinning:

This is a very useful learning opportunity, thank you so much!

I forgot to mention that the ADC input on any Arduino is also a capacitor, and the recommended source impedance for fast response and accurate conversion is <= 10K Ohms. The 1M photodiode load is two orders of magnitude higher than that.

For more informed advice, state which Arduino you are using, post the code, using code tags, and links to the components (the photodiode is particularly important).

How many diodes make up your grid, and how do you want to catch the signals from just those broken beams? You may have to add a pulse catcher or stretcher to each diode. Or you wire all photo diodes in a manner that detects any broken beam in a single signal?

I haven't built my code yet, that's a relatively easy part. I plan to use a multiplexer chip to output to a comparator port on the MCU. Alternatively, if I can adjust the photodiode signals to valid digital logic levels, I could process all the diode signals in parallel directly, which would be faster than using a multiplexer.

The main issue is whether such a low-cost solution can really be implemented, as I haven't found anything like it on the market. I'm skeptical about whether it's feasible.

So am I, but please keep us posted.

Okay, I will update on the progress of this test project.

This photodiode grid can consist of any number of photodiodes. When one of the beams is blocked, it causes a voltage change in the photodiode. For a single photodiode, it can be connected directly to a digital IO pin. If the IO port has a voltage comparator, the reference voltage can be set to the threshold voltage of the photodiode, so that a high or low level input is obtained when the beam is blocked. Alternatively, the output voltage of the photodiode can be amplified to the logic high/low range of the IO port. This would require additional circuitry, but allows parallel processing of the IO ports to achieve very fast detection speeds.

It causes a reduction in the photocurrent, and consequently, a change in the voltage drop across the bias or load resistor.

Photodiodes (and PV cells) are best modeled and thought of as light driven current sources, not voltage sources, with zero-bias output current proportional to the illumination intensity.

1 Like

An Uno R3 needs about 1000us to analogRead 10 photo diodes.
Assuming you use an analogue muxer, which also adds a bit to that time.

Why the grid.
Leo..

Thank you for your suggestion. I tried using the amplifier circuit and obtained very sensitive and stable voltage changes at a distance of 40cm. I observed the rising edge changes on the oscilloscope, and the fastest result I could observe was a 2V change within 20us. I may need a device that can quickly block the optical path and is easy to test, but I found this is not an easy thing to achieve.

Please post a schematic diagram (hand drawn is preferred) and identify the exact parts used. That is extremely slow, suggesting poor choice of op amp or other major design issues.

Photodiodes are capable of nanosecond response.

If you can get a voltage change of less than 1V and greater than 2V at the photodiode output circuit when the illumination changes, you should be able to connect this output directly to the digital IO pin of the Uno. By directly reading the value of this pin, you will be able to know whether the optical path has been blocked.
The grating is used to know the position when the object passes through.

Yes, I have the same idea. I have only tested one amplifier circuit connection so far. I also plan to test two other circuit connection methods. I will make a comparison when I'm done.

I also need a device that can block the optical path at high speed, while being easy to use for testing, otherwise I won't be able to see the fastest rising edge of the photodiode at all.

Update: I obtained a minimum rise time of 8us by changing the two resistors to 47 ohms and 1.5K.

@colin_lc
Here is a really good TI app note/reference design:
tidu535-1.pdf (1.0 MB)

1 Like

Strange resign when several mirrors could also direct a single beam to cover the area.

Multiple reflected light paths can be created through multi-surface reflection, but they are coupled, so it is impossible to measure which light path the object passes through. (Perhaps I misunderstood what you were trying to express)

Just saw the design requirements, not the reason for them.

That would be the wrong circuit, and a poor choice of op amp. The LM358, with a slew rate of 0.3 V/us, is designed for signals in the audio frequency range. People commonly use an op amp 10-100X faster.

This is a viable photodiode amplifier circuit, although it lacks a feedback capacitor. See the link in post #2 for better designs.