DIY: Arduino Based Ammeter in Embedded

www.spiroprojects.com




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
R > 4.88 mV / 0.5 mA > 9.76; use 10 ohm standard resistor




Previous
Next Post »