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Ω.
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.
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?