What kind of components for simultaneous measurement

Hi everyone,

I try to perform simultaneous measurements on two photodiodes. The idea is to use two LED for light emission and two photodiode for detections.

On the LED side, I would like to turn on one LED at t = t0 and then, at t = t0 + tau (tau is between 25 µs and 100 ms), turn on the second LED and start measurement with the two photodiodes. For A/D conversion I would use external ADC (like the ADS1115 which work on I2C or the ADS1232 with SPI). The three last actions (second LED on and measurements on PD) must be simultaneous but the A/D conversion could take at maximum 100 ms.

I think to use 4 different UNO or MICRO controlled with a computer and python by I2C communication or SPI.

Did you think that it's a good idea ? Is there any simple way to do what I want ?

Thank you in advance for your help !

4 UNOs will make the coordination harder, not easier. A single one will be much better at this.

I would plan on USB communication with the PC. Otherwise you need a USB-to-SPI converter and a whole lot of extra work defining a communications protocol and making the Arduino function as a slave. Note that if the other chips are on the same interface (SPI or I2C) then you can't easily switch the Arduino between slave and master mode to talk to those other chips.

I would not even bother with external A/D converters for the first prototype. Use the regular analog inputs to get started.

The microseconds() function can get 4us resolution on the basic Arduinos. That should work well enough with your timing requirements. delayMicroseconds() is about the same resolution.

The three last actions (second LED on and measurements on PD) must be simultaneous

“Simultaneous” is not possible under any circumstance.

What are your actual requirements in terms of event timing?

"Simultaneous" is not possible under any circumstance.

There are a lot of stereo ADC chips on the market which would like to disagree with you.

But in this case, a few microseconds tolerance makes the whole solution much simpler.


What is the application, what are you trying to measure and achieve?

Thanks.. Tom.. :slight_smile:

One ADC reading of the Arduino takes about 100 us. To read two ADC pins you need at least some 200 us. Though if you're OK with 8-bit resolution you can make this faster.

Why do you need analog reads? If it's digital you can in fact read two pins simultaneously on an Arduino (just make sure they're on the same PORT and read the register).

And indeed the question: what is this about, really? Describing the complete project (+ photos, drawings and circuit diagrams, as much as possible) will help a lot as well.

There are a lot of stereo ADC chips on the market which would like to disagree with you.

Those chips obviously haven't read and understood the OP's plan of action.

Thank everyone for your help. Actually, I want to mesure slighty light absorption difference induce by a strong light flash in liquid sample.

The idea is :

-First, I turn on the first LED (LED_S for saturating) for a time between 25µs et 3s (it depend on the experience). This LED illuminate my sample and I don't need no information about the absorption of my sample at this time.

-Then, just after the LED_S will be off, I wait a certain time (25µs - 60s) and I turn on the second LED (LED_D for detection) for 25µs. The light emitted by LED_D is separated with what we call a beamsplitter in order to have 50% of the light on my liquid sample and hence on the photodiode 1(PD1) and the other 50% are send directly to the 2nd photodiode (PD2).

-I repeat this cycle at least 10 times.

I think a need simultaneous measurement because after that, I calculate (PD1-PD2)/PD2, in order to avoid the fluctuation of the LED_D. Since I will measurement very very slighty difference I guess the 10 bits resolution will not be enough but I will try with ADC arduino. Otherwise, there is no way to stock the analog information of the two PD and perform A/D conversion after ? I don't have any constraint on the time between two flash of the LED_D.

Hope everything is clear !

Use 2 photodiode amplifiers each with a peak hold facility.


What did you call a peak hold facility ? I guess it hold the peak value of the photodiode right ? Did you have in mind any product which could match with my application ?

There is no such product to my knowledge - you'll have to design and build one.

transconductance amplifiers, precision rectifiers, sample and hold devices.


As I understand from your description you expect that the transmission of the beam that goes through the sample changes over time, right?

The first major problem with this whole setup is that your light is on for just 25 us. That's too short for the Arduino to measure as an ADC measurement takes about 100 us, and that is excluding time the ADC needs to charge itself and settle to the voltage it has to measure. So indeed you'd have to connect both LEDs to a peak detection circuit that holds the peak long enough for the Arduino to measure (holding for a few ms is already enough). The pulse is simply way too short for an ADC to measure - just about any ADC - unless you find one that can do a 10 us sample, so sample at 100 kHz.

"Simultaneous" is not possible under any circumstance.