Introduction: Current Sensing Tutorial


This project attempts to provide a brief review of the current sensing techniques underlying 2 common types of current sensors: the conventional DC current sensor and the hall-effect sensor. The DC current sensor used in this project is an INA219 High Side DC Current Sensor Breakout and the Hall Effect sensor used is an ACS712 Low Current Sensor Board.

Step 1: Hardware List

Arduino Uno 1 To process the signals from the sensors

ACS 712 Hall Effect Current sensor 1 To measure the current

INA219 High Side DC Current Sensor 1 To measure the current

Arduino Motor Shield Rev3 1 To manipulate Motors

Breadboard 1 To provide a convenient workspace for the circuit

DC Motor 1 Acts as a load in the tested circuit

Batteries 4 To provide voltage in the circuit that is being tested

Battery case 1 To hold the Batteries

Computer 1 To view the data

Capacitor (probably) 1 To moderate the current spikes caused by the motor

Wires 12+ To connect parts

Step 2: How the Breadboard Works

When the breadboard is held vertically as shown in the figure above, the positive and the negative lines run vertically on the sides, not connecting to anything else but the ports on the lines themselves. The middle part of the breadboard is horizontally connected (a-b-c-d-e and f-g-h-i-j). However, the valley running through the center of the board divides the horizontal lines into two sections. There are no vertical links in the middle.

Step 3: Procedure

1. Gather the breadboard, Arduino Uno, and the Arduino Motor Shield.

2. Fit the Arduino Motor Shield on top of the Arduino Uno micro-controller appropriately.

Step 4: High Side DC Current Sensor INA_219

i. Connect the 5 volt pin of the Motor Shield to row A, column 1, notated as (A, 1), of the breadboard.

ii. Connect the ground pin to the breadboard’s ground/negative line.

iii. Connect the SCL (Clock Line) pin of the Arduino to (A, 3)

iv. Connect the SDA (Data Line) pin of the Arduino to (A, 4)

v. Lastly, connect a wire from the ground line of the board to (A, 2). This will complete the circuit to provide power supply to the sensor

Step 5:

i. Place the sensor in the breadboard to link the first four terminals of the sensor to the connections made before.

ii. Connect V+ to the positive terminal of the power supply (batteries) for the circuit under test.

iii. Connect V- to the positive terminal of the load (however, motors can operate in both the directions of the current). This puts the sense resistor in-line with the circuit.

iv. Finally, connect a wire from the negative terminal of the power supply to GND. This allows the sensor to measure the load voltage as well as the load current.

Step 6:

Ultimately place the motor to complete the test circuit. The terminals can attached in any direction as it will only change whether the motor spins clockwise or counter clockwise.

NOTE: Noisy loads such as DC motors can cause sharp
current draw and cause the sensor to reset. To avoid this, include a bidirectional capacitor parallel to the load to decouple it from the power supply.

Step 7: Hall-Effect Sensor ACS_712

i. Connect 2 breadboards together side to side with each other.

ii. Then connect the hall-effect sensor vertically across each power line of the breadboard as shown in the figure abocve.

Step 8:

i. Connect the 5v pin of the hall-effect sensor directly to the 5v pin of the Arduino.

ii. Connect the GND pin of the sensor directly to the corresponding pin of the Arduino.

Step 9:

i. Connect the IP+ pin of the sensor to the power line.

ii. Connect the IP- pin to either terminal of the DC motor.

iii. Connect the other terminal of the motor to the power supply.

Step 10:

Connect the batteries to their appropriate place in the power supply line.

Step 11: Software: Adafruit_INA219

To store the serial output as processable data we need download CoolTerm. To download the software, go to Then, extract the CoolTerm folder to the desired location.

Step 12: Libraries

To utilize the the current sensor using the Arduino, download the INA219 libraries from

Step 13:

Then extract the folder inside the zip file into the libraries folder of Arduino.

Step 14: Code: GetCurrent

Use GetCurrent.ino to operate the Arduino and to receive the signals generated by the micro-controller.

Remember to change the interval (milliseconds) to change the frequency of measurements.

Step 15:

Click ‘Upload’ ( → ) on the top left corner of the window to initiate the program on the micro-controller.

Step 16: CoolTerm

Open CoolTerm in order to obtain the data from the Serial port. Then click ‘Connect’ to link the software to the Arduino Uno micro-controller.

Step 17:

Then go to Connection > Capture to Textfile > Start OR

Press Ctrl + R to start recording the data.

Step 18:

Save the resulting textfile to any convenient destination.

Step 19:

Then go to Connection > Capture to Textfile > Start OR

Press Ctrl + Shift + R to Stop recording data.

Step 20:

Then click on Disconnect to safely disengage the micro-controller from the PC.

Step 21: Excel

i. Open a new Excel file to save the data in an operational format.

ii. Then go to Data > From Text to transfer data from the text file into Excel.

Step 22:

Import the file that was saved before and then Click ‘Import’.

Step 23:

Click Finish in the dialogue box that appears.

Step 24:

Click whichever cell you want the table’s top-left corner to be on and then click ‘OK’.

Step 25:

Add labels on the top of each column.

Step 26: The End.

Use the table as you want to!


cdnicoll made it!(author)2015-04-13

Whats the code for the ACS712?

icey.hood made it!(author)2015-12-06

wondering the same thing

renatoaloi made it!(author)2015-11-01

Great Job about Excel and Chart part. But I am little disapointed indeed about ACS712 lack of info. I would like to see another great post like this one about ACS712 for DC current sensing. Thanks for the effort!

iwrk4dedpr made it!(author)2014-10-23

I'm not getting any of the images to show when I load the web page. Is anybody else having the same issues?

singhdeolji made it!(author)2014-09-11

like the way you did the schematic, i am gonna look into that "fritzing"

MsSweetSatisfaction made it!(author)2014-08-17

Nicely done, all the steps are very nicely explained. Thanks for sharing!

Ritwik+Saha made it!(author)2014-08-18

Thanks, glad you like it !

kag432 made it!(author)2014-08-13

What happened to analysing advantages and disadvantages of the two sensors?

Ritwik+Saha made it!(author)2014-08-13

Sorry,my bad. I did not know that we left that statement. I should remove that part until we complete the whole analysis. Extremely sorry for the disappointment.