Arduino: measuring current: use a current shunt monitor 1

Measuring current with an Arduino or any other microcontroller is not as simple as measuring voltages directly with the Arduinos/microcontrollers ADC.

In most cases a designer would use a current shunt amplifier/monitor.

At first I started with the MAX9634F current shunt amplifier (CSA) in my design. The company Touchstone Semiconductor offers a pin and specification equivalent alternative to the Maxim part, the TSM9634T. Touchstone also offers an improved version of this amplifier, the TS1100. It has a much lower offset voltage then the MAX9634F/TSM9634T.



This design uses a current shunt monitor (e.g. TS1100-25) with a gain of 25. The output voltage is:

V_out=I_load x R_sense x R_out/R1,

R_sense = 0.08 Ohm
R_out = 10k Ohm
R1 = 400 Ohm

Arduino Code

Here is a sample code, that you can use in your Arduino.

int ADCpin1 = A1; // ADC1 for current shunt measurement (via TS1100)

void setup()


void loop()

current = analogRead(ADCpin1);//*5000/1024;

//calc current: Vout=2V equals 1A
current = current*5000;
current = current/1024;
current = current/2;


Wiring Diagram

This is how you connect the CSA to the Arduino and the load. I measure also the voltage at the load, via the Arduino Analog Pin A0.
current shunt amplifier - wiring diagram


Eagle Schematic and Layout

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Ein Gedanke zu “Arduino: measuring current: use a current shunt monitor

  • Klaus Mewes

    I thought you have to divide by 1023 (full count 10-bit) to convert the A/D reading? Perhaps a typo?
    Where can I get this circuit board?
    Thanks for the post.