I have a high power 8Ω resistor dummy load (approximating a speaker) which is being driven from the output of an audio amplifier.

I want to measure the power consumption and display the results on an LCD screen using an Arduino. The Arduino will handle any unit conversion, RMS converting, etc (as well as a bunch of other, unrelated functions).

I have two options at my disposal:

A. Measure the voltage. I can convert the AC voltage across the dummy load by using a bridge rectifier, a small filter/smoothing cap and a 10:1 voltage divider to allow the Arduino to safely read the voltage as DC at one of its analog input pins.

From there, it's a case of reading the voltage, converting to RMS equivalent and using the formula P = V²/R = V²/8Ω.

B. Measure the current. Using a current sensing chip - such as the simple ACS712 module here - I can read the current being drawn and feed the output voltage from the chip into an Arduino analog input pin. In this case, zero amps would read 2.5V at the Arduino, and 20 amps would read 5V, with a sensitivity of 100mV per amp. With the current known, I'd use P = I²xR = I²x8Ω.



  1. Apart from cost/complexity/part count, What are the advantages/disadvantages of each method, particularly as it pertains to accuracy and tolerance? The maximum power I'd need to read is around 300W.

  2. The 10-bit ADC AVRs (Arduino Uno, etc.) have a scale of 0-1023 on their analog input pins. If I jumped up to a 12-bit ADC (giving me a range of 0-4095) would that in effective immediately provide me greater accuracy, as the input voltage would now have significantly finer resolution?


There are a number of other ways to measure this (eg, dont use any rectification, measure with a ADC that has a samplerate well above your signal speed, and use that waveform to caluclate RMS).

At the frequencies you are using, with a good resistor, measuring voltage or current should give equal results. There would only be a difference if the current and voltage were out of phase, which requires reactive components (inductors, capacitors or long transmission lines) in your load.

The problem with your suggestion of measuring voltage is due to the use of the bridge rectifier. This will induce a voltage drop and thus cause an error. In addition, just measuring the peak will only give accurate results if you have a single frequency signal (IE, a sinewave) and a linear amplifier. If either of these conditions are not met, you will not get correct results.

There are true-RMS power meter chips from various manufacturers (for use in EG multimeters).


Question 1
Regarding A:
Use a voltage divider in parallel with the 8Ω resistor. Your approach would influence the measurement.

Regarding B:
If you make sure the 8Ω resistor is being used with its ratings (provide cooling if necessary), you can just apply Ohm's law using the voltage found in A.

The Arduino will handle any unit conversion, RMS converting, etc as you already wrote.

Question 2
A 12-bit ADC gives you a higher resolution than a 10-bit ADC.
Accuraccy =/= resolution. Accuracy depends on the resistor's tolerances etc.

  • \$\begingroup\$ A parallel voltage divider can be easily made so small that its impact is insignificant. Any current measurement will also influence the system (sure a hall-effect sensor will have a almost unmeasurable effect, but you can make your voltage divider such that the same is true for it) \$\endgroup\$ – Joren Vaes Mar 6 at 12:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.