# How to calibrate ACS770 upon device startup

I am using the Allegro ACS770 100A Unidirectional current sensor (datasheet). To measure the output from this sensor I am using the TI ADS1115 (datasheet).

The ACS770 is supposed to output a 0.5V quiescent voltage, and the voltage increases by 40mV every 1A.

The output is ratiometric. The change in quiescent voltage and sensitivity is calculated using the equations below:

ratiometric change in quiescent voltage output (%):

$\Delta V_{IoutQ(\Delta V)} = \frac{V_{IoutQ(VCC)} \div V_{IoutQ(5V)}}{V_{cc} \div 5V } \times 100$

ratiometric change in sensitvity (%)

$\Delta \text{Sens} = \frac{\text{Sens}_{V_{cc}} \div \text{Sens}_{5V}}{V_{cc} \div 5V } \times 100$

The ACS770 and ADS1115 are being powered by the 5V rail from an Arduino. This is not likely to be constant as power is drawn from the USB connection.

My problem is, how can I get the data required for the above calculations, namely $V_{cc}$ and $\text{Sens}_{V_{cc}}$ when powering on the Arduino? Is this even possible?

I have considered getting a precision voltage source for the ACS770, but this project is a quick prototype to provide data for another project, so I would like to spend as little money as possible on this.

Please provide ideas on other ways to calibrate at runtime, or some way to get the required values at runtime.

• Just calibrating on startup is probably not good enough, if you expect the voltage to change while the device is in use. If you want a good regulated voltage to supply the ACS770, perhaps look into the LT1461, which is a linear regulator designed to be used as a voltage reference; it's characterized up to 100mA output and very stable over its range. You'll need to give it a higher supply voltage than 5V though. – Hearth Jun 12 '18 at 14:10