Another waveform at op amp output

Hi guys! In other topic I'd having some problems with a strange waveform at ouptut. Well, I recently purchased the TLV2372 op amp, and I've tried to use a simple LDR to take photometric measurements instead of photodiode I was using. But here's what I've got:

I'm using a 12 V battery to power Arduino Uno.

Here the schematics (a Sallen-Key two order filter configuration):

I really appreciate any suggestions.

This is probably radiation from some nearby electronics. Put the circuit in a metal box.

jremington: This is probably radiation from some nearby electronics. Put the circuit in a metal box.

How do you know?

I don't know. I said "probably". I think the signal you show is due to an external source because it is so difficult to imagine how oscillatory behavior of a simple analog circuit could produce such a waveform. If that is not the case, I would welcome an explanation! I used to teach analog electronics, and I've never seen a waveform like that.

In any case, your Sallen-Key filter is low pass with a -20 dB point of about 80 Hz, so unless your wiring is very loose, self-oscillation at > 100 kHz and very low amplitude seems quite unlikely.

All this assumes, of course, that you have eliminated light as the source of the signal.

Finally, as I'm sure you are aware, the response of an LDR to light intensity is approximately logarithmic (unlike a photodiode).

That may be caused by ground noise. What is the Arduino connected to, other than the battery and the op amp circuit? Have you connected your op amp ground to Arduino ground using one of the Arduino's ground pins, and your 12V battery and output devices to Arduino ground using a different ground pin? If not, then you need to.

This might be unrelated to your noise problem but I believe you should have a much lower impedance signal into your active filter. A good rule of thumb is 10% of the input impedance of the filter which would be around 2.2k or less. A simple emitter follower transistor should do fine. NPN Base to the junction of R1 R2, collector to 5V and emitter to the junction of the filter input and a 2.2K resistor to gnd.

Also, with no DC decoupling and a filter DC gain of 3.3, your output must be getting very close to 5V under high ambient light conditions.

jremington: Finally, as I'm sure you are aware, the response of an LDR to light intensity is approximately logarithmic (unlike a photodiode).

I wouldn't know the LDR response is logarithmic. In that case, how do I calibrate the Arduino?

pegwatcher: Also, with no DC decoupling and a filter DC gain of 3.3, your output must be getting very close to 5V under high ambient light conditions.

My intention is measure very low light power with the LDR. That is the reason I need to add some gain to active filter.

pegwatcher: This might be unrelated to your noise problem but I believe you should have a much lower impedance signal into your active filter. A good rule of thumb is 10% of the input impedance of the filter which would be around 2.2k or less. A simple emitter follower transistor should do fine. NPN Base to the junction of R1 R2, collector to 5V and emitter to the junction of the filter input and a 2.2K resistor to gnd.

I don't understand your point.

dc42: That may be caused by ground noise. What is the Arduino connected to, other than the battery and the op amp circuit? Have you connected your op amp ground to Arduino ground using one of the Arduino's ground pins, and your 12V battery and output devices to Arduino ground using a different ground pin? If not, then you need to.

What happen if all grounds of devices are connected at the same ground pin?

  1. I don't quite understand DC42's point about using different ground pins either. However, noise problems very often arise from "ground loops", that is, power and ground connections between different modules or different sections of the same circuit, that intercept stray magnetic or electric fields. Using twisted pair wire for power/ground connections between modules helps to overcome this problem. Using a ground plane on a circuit board is always a good idea. Google "ground loop noise" to learn more.

  2. The impedance of the input device figures into the frequency response of the active filter. Using a buffer amplifier with low impedance output between signal source and filter input eliminates this problem. This probably has nothing to do with the noise you are seeing.

  3. LDRs are highly nonlinear. The only way to have a calibrated response is to do a complete calibration curve yourself, comparing the response of the LDR to the output of a good quality calibrated light meter. LDRs are wavelength-sensitive, so the wavelength(s) of the light used for calibration should be the same as expected in your experiment. LDRs are not good for very low light conditions.

jremington: LDRs are highly nonlinear. The only way to have a calibrated response is to do a complete calibration curve yourself, comparing the response of the LDR to the output of a good quality calibrated light meter. LDRs are wavelength-sensitive, so the wavelength(s) of the light used for calibration should be the same as expected in your experiment. LDRs are not good for very low light conditions.

Well, using a optic filter solve the problem of wavelength specificity. But I've once saw a certain circuit that makes the ouput linear (or close to linear). But I don't remember now. I think I should go back to photodiode, but the problem is the response peak of this photodiode is about 900 nm, and I need to measure visible light. That's the reason I thougth use LDR. The responsitivity of my photodiode in 590 nm is less than 0.4, so I need a very high amplification. In that case, do I need to use more than one amplifier stages?

jremington: 1. I don't quite understand DC42's point about using different ground pins either.

If the Arduino is run from external power (i.e. not USB) and that power is not applied via the barrel jack but instead between the +5V or Vin pin and a ground pin, then the fluctuations in the power take by the Arduino will induce a voltage across the wire connected to that ground pin, because of the inductance and resistance of that wire. Similarly, if the Arduino is driving a significant load (e.g. LED or mosfet gate), then a voltage will be induced across that wire, especially if using PWM. If you use the same wire to connect the ground side of any sensor or circuit that is driving an analog input, then this induced voltage adds to the voltage seen by the analog input. I have found that even connecting a LED and a 150 ohm series resistor between an output pin and ground is sufficient to alter the value read from an analog temperature sensor, when the sensor and the LED are connected to the same ground rail of a breadboard, which in turn is connected to an Arduino ground pin.

You can use a logarithmic amplifier to linearize the output of the LDR, but I couldn't find an example circuit that includes an LDR. I did do this a long time ago! Log amps are pretty easy to make with a diode or a transistor in the feedback path of an op-amp, so a bit of experimentation will make the point clear. Here is some basic info on photometry with LDRs: http://astro.u-strasbg.fr/~koppen/blueskies/photometer.html

LEDs are useful to detect light in the visible range. LEDs act as wavelength-sensitive photovoltaic cells (and can also be used in reverse bias mode like photodiodes). Their response curves are similar to the emission curves, but shifted to the blue. That is, a red LED will be excited by orange light. Forrest Mims famously used various LEDs to monitor solar radiation intensity. Here are some examples of LED response curves:

My point is the filter cannot work as designed with such a high impedance signal source and it's not beyond reason that it could be doing some very strange things. See jremington's point # 2 also. I would try to fix this impedance problem first because this will have to be fixed for it to work properly, no matter what the noise source turns out to be.

I'm sorry, I should have mentioned point #2 in jremington's reply #8. "2. The impedance of the input device figures into the frequency response of the active filter. Using a buffer amplifier with low impedance output between signal source and filter input eliminates this problem. This probably has nothing to do with the noise you are seeing."

And there's a way to attenuate the thermal drift from LDRs? I've found a strange schematics showed below.

In addition to AC signal coupling, the comment on the schematic suggests that the intent of the back-to-back capacitors is to prevent a slow voltage drift at the output of the LDR voltage divider from reaching the op amp input. I have never looked at the temperature sensitivity of an LDR but it is undoubtedly documented somewhere. This circuit would also not respond to very slow changes in light intensity.