Create project Need help?

Earth resistance meter [150084 ]

Status: Proposal
July 20, 2014
With this project, I like to build an Earth resistance meter (Megger).
As this is not possible to do with a regular multimeter, and commercial devices are very expensive, I believe DIY is a good alternative. And … it's a lot of fun to do !

I did some research on the internet and found a way to measure earth resistance with a regular 24V transormer. This way, you can obtain the earth resistance value "Rx" by applying an AC current "I" between the measurement object "Earth electrode under test" and "Current injection electrode" and finding out the potential difference "V" between "Earth electrode under test" and “Voltage drop sense electrode”

This is fully explained on:

 Instead of using a standard volt- and ampere meter and Ohm’s law, I like to implement everything in an Arduino Uno project to make a ergonomic meter.

I use two standard metal threaded bars of 40cm for the electrodes (see image)

I like to use a 16x2 LCD and one “START” button to trigger the measuring sequence. Also, the meter must be software and hardware protected for over current, open circuits, etc….

Because we measure currents and voltages in an “earth” load, we need proper optical isolation between Arduino and the electrodes.

See schematic “Megger1.pdf”

I use 2 Isolated linear sensing IC by AVAGO: HCPL-7520 ( ) to isolate both voltage and current values. This IC needs 2 separate 5V sources: primairy side = Vaa and secondary side = Vbb = 5V Arduino. I use 2 small AC adapters by Velleman and a 7805 regulator for Vaa.

I use a shunt resistor of 1.5 Ohm to measure current (IC1) and a high impedance voltage divider (R3 R4)  to measure voltage (IC2) On both inputs, I use 2 antiparalleled diodes to protect the inputs for over voltages. I also use a PTC resistor to protect the transformer for short circuits.

Both AC voltages go thru a LPF of 1.5 kHz to minimize HF noise. (R6, R7, C5, C6)

I use 2 ADC’s in the Arduino to measure both current and voltage values. Because these signals are 50Hz AC, I need to measure for a few seconds and pick out the max values.

Both AVAGO IC’s have a DC voltage of 2.5V on the output (1/2 VCC)

Because I like to maximize the resolution of the ADC’s in Arduino, I use a reference voltage of 2.5V. This way I only measure the negative half of the 50Hz signals, so each step of the 10bit ADC = 2.5V / 1023 = 2.44 mV

As we measure only the negative half of the AC signals and the “0” level is at 2.5V, I need to subtract these measured values from 1023 (max value of the ADC) to obtain the true value.

In order to measure correctly I have add some Ohm law formula's that are implemented in the software:


  1. Voltage:

Uin = (Urx * R3) / (R3 + R4) where Uin = voltage on input IC 1


  1. Current

Iin = Uin / Rshunt where Uin = voltage on input IC 2 and Rshunt = 1.5ohm
(1,46 Ohm more specific)


See file attached !

Note: this is my first Arduino project, I believe I have an “analog” thinking brain.

At school I got traumatized by having to program a 8751 processor with UV light window and “machine code” and... never got something working. I must say, Arduino open's a new world to me :-)

I have a feeling that this is a good working project, I measured my own ground connection at home and is seems be be correct (compared to the value I got from Vincotte)

Please feel free to comment or send your remarks !



Read the full post
Show less

Loading comments...