Thursday 13 September 2018

raspberry pi - Ground loop when measuring in process pH


I have been experiencing a very difficult to solve ground loop problem with my pH measuring system. My basic setup is a standard pH electrode running through an op-amp to an ADC which communicates through I2C to a Raspberry Pi.



Calibration of the probe proceeds as expected and testing various liquids in glasses works perfectly. The purpose of the pH meter is to measure the pH of a fish tank. When placed in the process fluid I get very strange reading (sometimes ph of < 1 or > 14). The calibration of the probe also quickly becomes altered. If I have the probe suspended in the process fluid and scoop the probe out with a cup the reading returns to the expected value as soon as the cup breaks the water.


I assume this is a ground loop issue. I have shut off and removed all heaters and pumps however this does not fix the issue. I have noted that plugging and unplugging a monitor into the HDMI port of the Raspberry Pi changes my reading significantly, although it is still wrong either way. The Pi is being powered from a standard cell phone charger.


Do I need to attempt to fully isolate my signal or are there other potential suspects causing the ground loop?


I am using a Ti LMC6001 Op-amp. My circuit is taken from the datasheet http://www.ti.com/lit/ds/symlink/lmc6001.pdf The only changes are some resistor value changes to change the scaling of the voltage.


Update: Instead of using the raspberry pi I hooked the ADC (communicating over i2c) up to an arduino I had laying around. The problem I described has disappeared. Any ideas on why?


Update2: The problem seems to be at least partially solved. I mocked up a quick power supply with an old wall wart and a 5v linear regulator. Using that to power the raspberry pi directly to the 5v bus gives me very stable readings for in and out of process fluid. Use of the HDMI port reintroduces the problem but it is not needed.



Answer



This sounds like a combination of problems, probably including grounding. The main issue sounds like common mode pickup is turning into differential mode signal. The strategy for dealing with small differential and high impedance signals superimposed on large common mode noise needs to be thought out carefully and considered at every step of the design. This is not something you add on later to fix the problem.


It would help to see a diagram of your system and proper specs for the pH probe, including the expected signal level and its impedance.


In general, you probably want to treat the probe as producing a balanced differential signal, then have something with very good common mode rejection receive that. Minimizing common mode pickup, like by using shielded cable, will also be important. However, shielding without proper balanced signals could do more harm than good.



No comments:

Post a Comment

arduino - Can I use TI&#39;s cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...