I’ve been thinking about a more automatic way to measure the conductivity of a saline solution than what I reported in Better measurement of conductivity of saline solution and Conductivity of saline solution. The original lab is suitable for the circuits class, because it measures with sine waves and models the impedance of the electrodes, but it requires a sine-wave oscillator and an AC voltmeter that can handle high frequencies—neither of which makes for a low-cost device.
I was thinking that one could make a fairly simple device using the Freedom KL25Z board and a few extra components:
The idea is a simple one—instead of using a sine wave to drive the electrodes, use a square wave directly from the KL25Z. Connect the other electrode through a series resistor to a voltage centered between the two square-wave values, and use the 16-bit analog-to-digital converter to read the signal between the resistor and the electrodes just before changing the square-wave value.
With a low frequency square-wave, the electrodes will act like a resistor, but much of the resistance will come from the insulating film on the electrode, rather than the solution. At high frequencies, the capacitance of the insulating file will not have time to charge and discharge, and the resistance of the electrodes will depend mainly on the conductivity of the solution. At high enough frequencies, the output waveform will look like a triangle wave, rather than a square wave, and the amplitude of the signal will be proportional to , where R3 is the pull-down resistor in the diagram, and RS is the resistance of the solution. That means that , and the conductance can be computed as the inverse of resistance. The measured value depends, of course, on the size and spacing of the electrodes, so one would have to calibrate with a known conductivity solution to get the proper scaling.
I looked at the speed of the analog-to-digital converter on the KL25Z board, and they claim that they can get 16-bit conversion (though only with 12-bit accuracy, really) at 460k samples/sec—though I’ve not figured out the settings that really permit that. Higher accuracy is possible by averaging successive samples (which there is hardware support for), up to about 14.5 effective bits (averaging 32 differential samples, at a maximum rate of about 7.2kHz). By doing the averaging in software instead of hardware, we could run with a square-wave input up to about 90kHz (single-ended 16-bit samples at 180k samples/second seems to be fairly easy to set up). I think that is likely to be fast enough for all but the highest ionic concentrations, even using a very polarizable electrode like the 316L stainless steel ones we used for the Applied Circuits lab. One could check this by sweeping the frequency up, and seeing whether the estimate for RS converges.
I’ve not tried building and testing this idea yet, because the Arduino boards have too slow and too low-resolution A-to-D converters, and my son is hogging the Freedom KL25Z board for his light glove prototype. (I guess I need to get another copy of the board).
I don’t think I’ll be using this design in the Applied Circuits course (it is not suitable for teaching about modeling with linear components), but it might be a useful design for the freshman design seminar, or even for doing a titration lab in my son’s AP chem class. I understand that a standard lab is to titrate barium hydroxide with sulfuric acid, since the two reactants have conductive ions, but the barium sulfate precipitates out and the solution is essentially non-conductive when the two are perfectly balanced. The conductivity should form a nice “V” plot as sulfuric acid is added to a barium hydroxide solution—the units don’t even matter, since we just want to know what amount of sulfuric acid need to be added to attain the minimum, not what the conductivity is at the minimum.
To make a useful conductivity meter for something like AP chem, I’d need a much smaller probe that the pair of electrodes I used in the Applied Circuits class. I think I could make a decent probe out of a piece of stainless steel tubing and a piece of the 316L welding rod, if I could come up with a good way to hold them together concentrically, make sure they were always immersed to the same depth, and keep any wires to the rod and tube out of the solution. This might be a good problem for the freshman design seminar.