Isolated mains power monitoring (Arduino)

All about power today.. For a while now, I’ve been looking around for a mains (220-240VAC) power monitoring circuit that I might be able to interface with an Arduino.  There is of course the OpenEnergyMonitor solution, but they seem to use a transformer to isolate and measure the mains voltage.  The transformer doesn’t exactly couple to the mains nicely: so the voltage on the secondary side is not a scaled voltage of the input side, the transformer itself will distort the voltage sine wave.

Isolated mains power monitoring (Arduino)

Then over the weekend I came across Dave Berkeley’s Project Page, and he has a cool design for mains power usage monitor that does measure the line voltage directly. HisHome Energy Monitor uses a dual channel ADC with opto-isolation, nice solution. There is loads of info over at his site, I’ve just changed a few little parts for my version.  He uses a 10bit ADC [MPC2003] which I couldn’t get from RS, they were showing back order on the part, so I had a dig around and came up with a 12bit version of the same chip [MPC3202] just have to watch the conversion time, it’s not 200ksps but 100ksps, but I don’t see it being a problem (famous last words!).

So started up KiCAD and got work, then on to RS to get the parts! If you like a PDF of the circuit diagram here you go: Mains Power Monitor Circuit Diagram (rev 1.0)

Isolated mains power monitoring (Arduino) schemetic

On Dave’s circuit he has a voltage divider that I couldn’t make sense of, it looks like he has 100K current limiting resisters on the two input lines and a divider made up from one of these and a 270R.  The simulation on this only gave a 2.08 -> 2.92 volt swing on the ADC, given a 311V peek to peek AC input [which is 220VAC * sqt(2)]. I’ve used 1M0 on the current limiting and a divider of 1M0 and 10K, which give a little more input to the ADC.


For more detail: Isolated mains power monitoring (Arduino)

Clip to Evernote

Leave a Comment

(Spamcheck Enabled)

Read previous post:
An Arduino Uno
Arduino development environment

Introduction This tutorial will walk you through downloading, installing, and testing the Arduino software (also known as the Arduino IDE...

Scroll to top