Arduino Projects   |   Raspberry Pi   |   Electronic Circuits   |   AVR   |   PIC   |   8051   |   Electronic Projects

Hall-Effect Current Sensor

Submitted By: 

Shalini Verma

Arduinosensors has come up with an article defining Allegro ACS712 sensor and its operation according to the Hall-effect principal which can be used for both AC and DC current measurement. In this article, we will understand the usage of Allegro ACS712 sensor with an Arduino development board for measuring current in a system.

The pattern of current flowing in a system is a complex phenomenon. In order to understand it, one must be aware of all the characteristics of system as well as of current flow. We are in constant touch of one or another machine carrying current and a small mistake can cause a lifelong lesson. So for both protection and controlling process, one must have some knowledge about the current flow in the system. So that an appropriate measure can be taken during any faulty condition or controlling scheme, when the current flow in the system might be changed.

Let’s begin this project with a proper understanding of The Hall-effect. To be precise, it is the production of a voltage difference across an electrical conductor which is known as the Hall voltage. It transverse to an electric current in the conductor and a magnetic field perpendicular to the current.

Allegro ACS712 sensor is a bi-directional current measuring device. Its bi-directional property can be used for both AC and DC current sensing. The sensor is already equipped with an integrated circuit which works according to the Hall-effect principal. The voltage generated is proportional to the current flowing in the circuit.

Connection configuration

The sensor is connected in series with the current path which is required for sensing. There is out pin present in there, which is connected to one of the analog input pin available in the Arduino. Then, there are VCC and GND pins that is connected to 5V and GND pin of the Arduino respectively.


The sensor has the outputs for an analog voltage correspondence to the current flow and this is how we get the current reading from the Arduino. Analog to digital conversion is performed inside the Arduino and multiplied with calibrating constant to get the actual value.

Little bit of mathematics is used for the actual current value calculation. Arduino has 10 bit analog to digital converter register and its value is in range of 0-1023. Now, if the current flows in negative direction, current value will be negative and when in positive direction, current will be positive.

Among various methods available for sensing current flow in a system, usage of shunt resistors, current transformers and usage of Hall-effects sensors are some of the best methods. Video streaming and details are available to the website