DIY: Arduino Based Ammeter in Embedded

This is a project based on Arduino board which
can measure the unknown DC current values. When wefed the current to a load
device through the breadboard circuit, the 16*2 LCD displays that current
value. The project uses an Arduino pro mini board whose ADC feature is
used along with the concept of Ohm’s law to develop this ammeter.

Architecture of the project

The entire project can be divided into three
basic blocks;

1) DC CurrentSensor
Unit

2) Processor Unit

3) Display Unit

The DC Current Sensor Unit allows the current to
flow through adevice whose current consumption needs to be measured. The Sensor
Unit produces two voltages both in the range of 0 to 5V, whose difference is
proportional to the amount of current flowing through the Sensor unit.

The Processor Unit can take two input
voltagesboth in the range of 0 to 5V. This unit takes the Sensor Unit’s output
as input voltages and uses the ADC to read these voltages. An Algorithm is then
applied to calculate the DC current flowing through the sensor. The unit then
sends a 4bit data to the Display Unit to display the current consumption of the
device.

The Display Unit takes the 4bit data from the
Processor Unit and produces a 16*2 display for the current consumption of the
device.

1) DC Current
Sensor Unit

The Current Sensor in this project is a single
low valued resistor through which the current flows to the load device.The
basic principle of current measurement is based on the Ohm’s law. Ohm’s law
states that the current flowing through a resistive path is directly
proportional to the voltage difference across the resistive path and inversely
proportional to the resistance of the path.

I = V / R

Where;

I
is the current flowing through a resistive path

V
is the difference in voltage across the path

R
is the resistance of the path

Consider the above circuit in which the current
‘I’ is flowing through a resistor ‘R’ producing Voltage ‘V1’ at one end and the
voltage ‘V2’ at the other end. Hence the voltage difference across the
resistor,

V = V2 – V1

In our project we implement such a resistor in
the current flowing path whose resistance value is known. Then we measure the
voltage at both the ends of the resistor to calculate the current flow with the
help of the following equation.

I = (V2 – V1) / R

As shown in the above diagram the current that
need to flow through a device is fed through the resistor ‘R’ of the current
meter for calculating the value of the current flowing. As the current flows,
V1 and V2 appears which will then be read using the ADC module of the Arduino
microcontroller

Selecting the value of R:

The value of ‘R’ should be selected in such a way
that it should not affect the performance of the Device which is consuming the
current. Using a high value resistor will cause substantial voltage drop ‘V’
across it as the current flows, which leaves the Device with deficiency of
enough operating voltage. Using a very small resistance results in very small
‘V’ which cannot be read by the ADC module. Hence choose a resistance value
according to the minimum current which you want to measure, the following
equation helps.

R >VRESOLUTION / I

Where;

VRESOLUTION is the 'ADC Voltage
Resolution[H1]' or the minimum voltage that the ADC can detect for a given
reference voltage and given number of output bits. In this particular
project the VRESOLUTION has been set as 4.88 milli volts

As an example if the minimum required current
value to be measured is 0.5 mA, the