I am using an Arduino Uno to monitor electrical current on 4 electric cables using current transformers (CTs) connected through a resistor so that I am reading a sinusoidal voltage on 4 analog pins A0 - A3, using analogRead.
A sinusoidal voltage fluctuates from positive to negative. The pins report a positive voltage of 0 - 5 volts as a 10-bit value from 0 - 1023, but since the sinusoidal voltage goes both positive and negative, I can only capture the positive half of the sine wave.
See attached graph.
This is fine from a data collection point of view, I am getting good usable data, but this setup must be risky for the Arduino for 2 reasons -
A) I have no protection if any sort of voltage spike occurs.
B) When the sine wave goes to the negative side, it is putting a negative voltage on pins A0 - A3 relative to ground. This may be a no-no ?
Nothing bad has happened yet, but the voltages have been less than 1 volt, so maybe I have just been lucky so far.
I do not expect voltages could exceed 3.5 volts, maybe never more than 2 volts, but, still, probably not smart to be unprotected.
Question is, how to protect without distorting the data ?
Can anyone tell me how much current flows through any of the pins (A0 - A3, Gnd) while Arduino is getting a voltage reading ? I could simply put a resistor in series in each wire leading to a pin. For example, if I put a 5K resistor in each wire, then as long as a voltage never exceeds 5V, no more than 1 mA could ever flow through a pin - is that a safe maximum current ? At the same time, if the Arduino only needs 10 micro-amps to get the voltage reading, the distortion of the reading would be 0.05 volts.
But this is only to illustrate the question - I have no idea if the current flow in an analog pin to take a voltage reading is nano, micro, or milliamps. And is it variable depending on what the voltage is ?

