No change in acs 712 readings after connection to load
For such light and low-voltage loads you wouldn't normally use a mains rated high current amplifier like this.

Instead you would just use a simple shunt resistor in the low-side of the circuit:







simulate this circuit &ndash; Schematic created using CircuitLab

The voltage dropped across the resistor (and hence the voltage you will read on A0) is proportional to the resistance of the resistor and the current flowing round the circuit.

You want the resistor to be small enough that it doesn't overly affect the operation of the circuit, yet large enough that it drops a voltage you are able to sense at enough resolution.

For example the 1Ω resistor above, with 333mA round the circuit (3W at 9V) would drop (V=IR) 0.3 * 1 = 0.3V.

While that's not a very high voltage it's small enough to not really affect the circuit, and you can increase the sensitivity of the Arduino by using the 1.1V internal reference instead of relying on the default 5V external Vcc voltage:

analogReference(INTERNAL);


Or on the Mega2560:

analogReference(INTERNAL1V1);