Published: 2015-09-06 | Categories: [»] Engineeringand[»] Chemistry.

All chemicals will react with electromagnetic radiations by absorbing specific wavelengths to promote themselves to a higher energy level. As most of these excited states are not stable, they will quickly decay to their initial state and release the excess energy following various patterns, such as heat.

The process can be summarized as a two step physical reaction involving the species M, its excited state M* and an electromagnetic radiation of frequency ν:

Usually, the lifetimes of the excited species M* are relatively small (much faster than what we could ever dream to observe with amateur equipment – on the order of 10-8 seconds). Notable exception to this is the phosphorescence process that can last for much longer period of times, on the order of the minute or even more!

Depending on the nature of the excitation, the wavelength can take many different values: UV, visible, infrared, microwave... Here, we will focus on the elements allowing transitions in the visible range (from 400 nm to 750 nm). Good examples of such are the electronic transitions of the outer electrons shell of transition metals such as copper, manganese, iron, obalt, nickel, titanium, vanadium… For instance, solutions of copper ions have a nice blue colour and solutions of nickel ions a deep green one.

As each element will absorb light differently, it is possible to design methods that are specific to a given element and to study its occurrence (i.e.: its concentration) in the medium. It is precisely what we will be doing here: develop an in-line sensor that will measure absorbance of a flow at a given wavelength. There are many direct applications to this such as tracking the appearance/removal of chemicals into a reactor or to monitor the travelling of a tracer.

In this post, I will focus on these two aspects. I will first cover conventional absorption through the Beer-Lambert laws before extending it to fluorescence. I will then present an inline sensor and some results with tracer monitoring for the study of chemical reactor mixing patterns.


When a light ray hits an atom (or molecule) at the right frequency for a transition to occur, the excited atom (or molecule) has different way to go back to its initial state. Some of them will spontaneously re-emit a photon equivalent to the incoming one, resulting in no overall light loss, and others will decay that excess energy under various forms such as heat. When the incoming photon is not recreated, we say that absorption occurs.

But not all elements have equal probabilities to absorb light. Each absorbing species will present a small absorbing section to the light, A, and a probability, q, that the light entering this volume around the element will be absorbed. Put differently, if we have a light beam of intensity I(x) entering a small sample volume of area S and length dx containing n absorbing species, the amount of absorbed light can be written as the probability that a light ray will enter the sensitive section and that it is also absorbed by the element:

where A/S is the probability that a light ray enters the sensitive area of the element and q the probability that absorption does occur. The situation is depicted on Figure 1.

Figure 1

By generalizing q to make it depend on the wavelength (different wavelength will have different probability of absorption – from 0% to 100%) we have:

Because it is possible to relate the number of element to the concentration times the sample volume (S.dx) we can write:

Grouping the constants A and q(λ) into a new term, ε(λ), called the molar absorption coefficient, we end up with:

This formula simply states that the light loss between the position x and x+∆x is equal to the product of the probability of absorption ε(λ) multiplied by the concentration of elements found in the path length ∆x.

Rearranging the equations gives:

and integrating on the total optical path:

or, put differently,

which allows us to expect that the light transmitted will decrease exponentially as the path length or the concentration increase, for a given value of ε(λ).

When the light has the spectrum distribution I0(λ), we have to integrate on the whole spectrum to get the overall signal received on the detector:

with R(λ) the sensibility of the detector at wavelength λ.

This last formula will be too complex to work with and so we will simplify it by considering that the source is monochromatic at wavelength λ. In that particular case, the equation becomes:

and so:

If we keep all the parameters constants, we should then be able to get a linear function of the concentration:

Electronically speaking, there are two ways to get the logarithm of the light falling upon the detector: either we compute it numerically from the linear response of the detector, or we can design an analog circuit that does the conversion before acquisition.

Here, I have decided to use the latter (analog conversion) to avoid the problem with numerical precision using the ADC. The circuit is quite simple and similar to the one used in [»] our previous post on logarithmic amplifier.

A BC547C is used to generate the logarithmic behaviour and the circuit is frequency stabilized by the RC filter (R=2.2kΩ, C=1nF) which has a cut-off of about 7 kHz. This circuit has many disadvantages, such as being sensitive to temperature variation and may have a poor log conformity due to the cheap transistor used (professional log amplifier uses special matched transistors but they are somewhat expensive).

Figure 2 - The log-circuit used in this article.

To test the log conformity of the circuit a test was run: a LED is placed in front of the sensor in a dark room and the current in the LED is increased by changing the resistor value connecting it to a battery (battery delivers regulated supplies, unlike transformers which should be stabilized). By using a 1:2 ratio between each successive resistor used, it is possible to cover a large light intensities range.

The results obtained with two different detectors are given on Figure 3 and Figure 4. Figure 3 uses a high quality photodiode from [∞] Thorlabs (the FDS100 silicon photodiode) and Figure 4 uses a simple cyan LED from [∞] RS Components.

Figure 3 - Thorlabs FDS100 response
Figure 4 - LED response

In both cases the log conformity extends to a bit more than 2.5 decades and can probably be extended to 3 decades or more in the case of Thorlabs FD100. The limiting cases are high light intensities where the log circuit fails due to the transistor emitter-base bias voltage and, at the other range, the very low light intensities that are limited by the dark current of the photodiodes.

As the results from the FDS100 were relatively satisfactory, I decided to move on and do some absorption tests using a potassium permanganate solution (KMnO4). Potassium permanganate is a good test target because it has a very high molar absorption coefficient. As it absorbs in the green region of the spectrum (which explains the strong purple colour of the product), a green LED from RS Component was used.

A concentrated mother solution was prepared by dissolving a small quantity of potassium permanganate into distilled water until it has a strong purple colour. Half of the solution is taken and transferred to a new test tube and the other half filled with distilled water. Weight is taken after each liquid addition with a precision scale (0.005 g) to determine the precise dilution ratio with the mother solution. The process is then repeated with each test tube to successively produce solutions that are twice as diluted as the previous one. Accuracy will be limited by the resolution of the scale and how “clean” you work (don’t forget to wash and empty the syringe between every additions).

Be careful as you handle potassium permanganate because it is a very strong oxidizer and will tint your fingers in brown for a few days. Always check the material safety datasheet (MSDS) before using the product.

The samples are then placed into a spectrophotometer cell and the log output measured using the green LED and the FDS100 photodiode. Note that for better accuracy diluted samples should always be analyzed first to prevent contaminations from one measurement to the other.

The results are presented on Figure 5. They show a log conformity of about 1.5 decades although it should have been possible to use more concentrated solutions and the overall log conformity range remains to be analyzed.

Figure 5 - Absorption of a KMnO4 solution.

Although we have lost some part of the log conformity when compared to the test of Figure 3, the results are still good. It is well known in chemistry that the Beer-Lambert law deviates from the theory as the concentration is increased. This can be due to many effects including polychromaticity of the source, solvent effects, stray light…


Fluorescence is a special way of atoms and molecules to decay back to their initial states. Instead of emitting heat or re-emitting photons equivalent to the incoming light, they will do both. Part of the light will be decayed as heat and the rest will be used to re-emit light at an higher wavelength (smaller frequency equals smaller energy due to E=hν).

A lot of substances in nature are fluorescents (able to perform a fluorescence decay) but most of them requires to be excited in the UV range. Only a few shows strong fluorescence in the visible range; one of them is fluorescein (note the name ;-)). Fluorescein will absorb blue light and UV and re-emit light in the green range. It is often used as a fluorescent tracer because only a very small amount of it can colour very large amounts of water. Be careful with your kitchen sink by the way because it will dye any porous material and release greenish water days after the contamination!

Figure 6 shows the spectrum of a blue LED that is completely absorbed by the fluorescein and the spectrum of re-emitted energy as green-yellow light. By the way, this spectrum was taken using our [»] homemade spectrophotometer.

Figure 6 - Fluorescein and blue LED spectra.

Because fluorescein will convert nearly all the incoming blue light into green light, it is not possible to use the FDS100 photodiode as-is because it will catch the green light that is re-emitted and interpret it as a no-absorption condition. The solution to this problem is generally to place a filter in front of the sensor to remove the fluorescence band but such filters can be expensive. A much neater solution is to use the trick described in [»] this post and to rely on colour LED to perform the photodetection.

By using a cyan LED of spectrum shown on Figure 7, it is possible to detect only blue light. Indeed, blue light is energetic enough to trigger photoconduction of the cyan LED whereas the green light emitted by the fluorescein will not. That way, we can build a fluorescence sensor from only two conventional LEDs.

Figure 7 - cyan LED spectrum compared to blue LED and fluorescein emission band.

A test was run with a sample preparation similar to the one used for the KMnO4 absorption but using fluorescein this time. The results are shown on Figure 8.

Figure 8 - Response for fluorescein solutions.

The log conformity is relatively poor and limited to about 1 decade only. It is not as satisfactory as for the FDS100 but is probably due to the lower quality of the LED acting as a photodetector. Still, it should be able to give relatively correct results if the concentration of the fluorescein is correct. The good news is that it should be easy to detect out-of-range concentration as they will quickly saturate the response.

The in-line sensor

From the results obtained with absorption and fluorescence, an in-line sensor for flows was designed using a 3D printer. A transversal section of the piece is shown on Figure 9. It is made of PLA plastic and is designed to fit two T-1 ¾ LED (or one LED and a photodiode) and a 6 mm diameter PVC “crystal” tube to carry the actual chemical flow. Two pinholes of about 1.5 mm limit the illumination window to get a relatively uniform light path that avoids the edge of the PVC tube.

Figure 9 - In-line sensor section cut

Because of the PVC tube, this sensor is not suitable for organic solvents. An attempt was made at machining the part directly into a polyethylene rod but without success. I have stopped working on the PE piece because I now believe that the pinholes will create a bad flow mixing that will ultimately alter the results. As a consequence, the PVC-tube prototype shown on Figure 9 might actually the best compromise although it limits the application range to chemicals that are compatible with PVC.

Before testing the sensor it is important to understand what will limit its output range. A mind experiment where a pulse of chemical passes in front of the sensor is shown on Figure 10.

Figure 10 - Mind experiment of a pulse of chemical.

At first, the system records no absorption (time 1). Then, as the pulse enters the light path the signal increase progressively (time 2) until it reaches its final value (time 3). As the pulse exits the light path, the signal decrease progressively (time 4) until the sensor records no more information (time 5).

We can draw two conclusions from Figure 10:

- Time 2 and 4 introduce a smoothing effect that will be a function of acquisition speed and flow rate.

- The flow rate vs. acquisition speed should still be fast enough so that we do not miss times 2-3-4.

The time required for the pulse to pass through the light path is equal to the pulse volume (∆V) divided by the flow flowrate (Q):

To record at least N points for the pulse (time 3), the acquisition frequency, faq, should be at least:

As the maximum frequency will be fixed by the dynamics of the log circuit, it is more interesting to re-arrange the formula to get the maximum flow rate that can be used to analyze the pulse ∆V:

or, equivalently, the pulse volume to use at a given flowrate:

Concerning the system dynamics, the response of the FDS100 and LED with the log circuit was taken using our [»] 5 kHz datalogger and a Protek 9205 square wave generator. The results are presented on Figure 11 and Figure 12 respectively. The FDS100 seems to have a rise/drop time on the order of 0.2-0.3 ms and performs relatively well at 1 kHz. The LED has a larger time response (as could have been expected since we are not using it “the proper way” as it is not intended to be used as a photodiode!) but can still be used at 400 Hz without too much problem.

Figure 11 - Dynamic of FDS100 at 1 kHz.
Figure 12 - Dynamic of LED at 400 Hz.

With these dynamics, and taking N=100 and ∆V=100 µl we find:

Larger flowrates will then require larger pulse volume to keep at least 100 points of data.

On the other side, the smoothing (time 2 and 4) will be a function of the sampling volume, Vsample, and the flowrate. The sampling volume is the actual light cylinder that goes through the medium. By considering the aperture of the light, l, is sufficiently small in regards to the flow tube internal diameter, dinternal, we find:

The number of elements in the smoothing part of the graphic is then the time needed to renew completely the sampling volume multiplied by the acquisition frequency:

When choosing the maximum flowrate we find:

Taking a 4/6 mm tubing and a light aperture of 1.5 mm (dimensions of our prototype) we find Nsmoothing≈7.

The only way to limit the smoothing to less than 1 sample is to have the relation:

and so to lower either the acquisition frequency or the flowrate. In our case, the sampling volume is on the order of 7 µl and with N=100 we should then use a pulse of at least 0.7 ml. With a flowrate of 100 ml/h, the acquisition frequency should then be 4 Hz. This is well below the limiting dynamics of the LED system and should work without any problems.

Using these values, a small experiment was set up where a steady flow of water was run at about 100 ml/h through the analysis cell. Then, a small amount (~ 0.2 ml) of concentrated fluorescein solution was injected into the circuit. A photography is shown on Figure 13.

Figure 13 - Experimental setup.

The results of the experiment are presented on Figure 14. This type of curve is characteristic of flows with back-mixing which was indeed observed in the experiment: when the pulse is injected it arrives uniformly at the sensor (with some smoothing) but the end of the tracer pulse start mixing with the liquid flow due to local eddies. Because of that, the concentration of the tracer drops according to a negative exponential, just as it occurs in CSTR reactors (perfectly stirrer reactor). But I will stop writing for now because this will be the content of a forthcoming post :-) So keep updated to know more about chemical reactor and their characterisation!

Figure 14 - Response to an impulse of fluorescein.

You can download the 3D model of the sensor here. Don’t forget to configure your 3D printer to have a 0.2 mm accuracy so that you don’t have any problems.

- [∞] download the 3D model.

[⇈] Top of Page

You may also like:

[»] Sine Wave Oscillator with Fewer Op-Amp

[»] DIY Conductometry

[»] Generic 8th Order Sallen-Key Filter

[»] Introduction to Heterodyne Systems

[»] Low Noise, Adjustable Gain, Photodiode Amplifier