Pages: [1]   Go Down
Author Topic: Using an Arduino as an autoranging ohmmeter  (Read 995 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Looking for some suggestions as I begin a new project.  I’m hoping to use the Arduino as an autoranging ohm meter.  The range that I’ll be looking to measure are about 0.1 to 1,000,000 Mega Ohms.  I’m using the Arduino to manage a new wood drying kiln that I’m building, and by driving pins into the wood and measuring resistance, I should be able to calculate the moisture content.  As the wood dries, it changes resistance dramatically, which is the reason I need such a wide range.

I’d really prefer to do it with the minimum number of pins used.  I’ve got some of the digital pins in use for an LCD screen, and other digital pins will be used to run a data logging shield, so I’m hoping to use the analog pins for resistance measurement.  Any thoughts on how to proceed are appreciated.

Manchester (England England)
Offline Offline
Brattain Member
Karma: 634
Posts: 34567
Solder is electric glue
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

1,000,000 Mega Ohms.
If you are not going to be serious then let's all go home.

Offline Offline
God Member
Karma: 11
Posts: 532
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Electrical measurements of solid matter moisture content is a widely used method, of course with some variations depending on the application. Besides contact based measurements, capacitive or radio wave (e.g. microwave) absorption measurements are in use.

To avoid the pins suffering too much from electrolysis it would need to reverse the polarity for each measurement, in fact most technical moisture or conductivity measurements are using AC voltage. But the polarity reversal method should hopefully work. To cover the intended wide resistance range you'll need some kind of automatic range switching.

I wonder of you already verified the working of your method with a digital multimeter. The input circuits of commercial resistance meters can be a template for your design, I think.

Lower resistance values are typically measured by using a constant current source and measuring the voltage across the unknown to determine its resistance. Very high resistance values are often measured by apply a known voltage and measuring the small current.

Note that measuring resistances as high as 100GΩ requires very careful design to minimize leakage currents in the insulators. Teflon wire and standoffs are often used, since Teflon has the highest resistance of common insulation materials. Also guard rings and guard shielding is likely required such as discussed here.

Here is an example of a high resistance measuring system. If you google "high resistance measurment cricuits" you should find other information on this.

This reference states that the resistance of wood for two pins 30mm apart is 4800MΩ (4.8GΩ) for wood with 8% moisture. If you want to measure a lower moisture level than that, you would need to be able to measure a higher resistance.

I can give you some help on the design but more in the way of suggestions and critique of what you are designing, rather than a complete design.

Unfortunately I am not able to take on any new projects. I can help you by critiquing your design and offering suggestions through this forum, but that's as far as I can go.

The simple approach is to measure the voltage across some high value resistors in series with the measurement value. I did a quick check at Digikey and they sell resistors up to 5GΩ in value. The voltage could be amplified by a FET type op amp which has a very high input impedance (such as this), configured as a non-inverting amp.

Depending upon the accuracy you want, you will likely need to switch in different value series resistors and/or change the op amp gain to cover the full dynamic range. The switching would need to be done with very high impedance switches, such as small reed relays. The resistors, relays, and op amp input pin should probably be connected to Teflon standoffs to minimize leakage current.

The measurement process would be to apply the supply voltage to the series combination of the wood terminals and the sense resistor. You then read the sense resistor voltage value and the supply voltage with an A/D converter (could be an A/D built into the Arduino), and calculate the wood resistance from that. If the measured voltage is too high or too low, then 5V would need to change the sense resistor value and/or op amp gain until the reading is within the desired range.


Pages: [1]   Go Up
Jump to: