# DC Power Meter for 0-55V 20A Work Bench Power Supply Schematic Circuit Diagram

This project provides instructions for creating an affordable DC power meter capable of displaying voltage, current, power, and operational running time. It proves particularly valuable as a display unit for your bench power supply. Additionally, it serves as an ideal complement to the display section of a 0-55V battery charger, offering precise information about the charging duration. The circuit can measure voltages within the range of 0-55V DC, with the current measurement contingent on the specific sensor employed. In this particular project, I have employed the ACS 712 – 20A Hall Effect sensor, which possesses a current measuring capacity of up to 20 Amperes. It’s worth noting that there are three variations of the ACS 712 sensor: 30 A, 20A, and 5 A, each featuring distinct sensitivity values. If you decide to use a different sensor, you should reference its datasheet for sensitivity details.

## Parts Required

1. Arduino Nano
2. 20 X 4 LCD display
3. ACS712 ELCTR20A-T
4. 100k resistance
5. 10k resistance
6. 10k Variable resistance
7. General purpose circuit board
8. 2 pin TBC connector /Dc jack for input supply
9. 2 pin polarized header wire: relimate connector

## Circuit and description

### Voltage measurement

The Arduino board is equipped with a 10-bit analog-to-digital converter, featuring six channels (eight on the mini and Nano, and 16 on the mega). This converter essentially maps voltage levels between 0 and 5 volts to integer values ranging from 0 to 1024. Since it’s crucial to avoid supplying voltages exceeding 5 volts to the Arduino port to prevent damage, this circuit incorporates a voltage divider. The voltage divider is created using a network of two resistors, namely 100k and 10k. The power factor in this context is determined by dividing the input voltage by the output voltage.

Power factor = 55/5=11

The value of voltage can be measured by the formula voltage = {[ADC value of voltage] x [5/1024] x [R2/R1+R2] x [power factor]}

### Current Measurement

To measure current, an Arduino interfaces with the ACS 712 current sensor, which utilizes Hall Effect principles. This sensor boasts a rapid response time, although it does exhibit a nominal output error of approximately 1.5 percent. However, this error can be effectively managed through clever programming techniques, such as compensating for the sensor’s standard error by multiplying the measured value accordingly. When direct current (DC) flows through the sensor’s input, it generates a corresponding DC voltage at the sensor’s output, thereby maintaining a proportional relationship. The ACS 712 sensor is characterized by its sensitivity to the magnitude of the current being measured.

### Note:

1. Make sure that you never connect IP+ and IP- in parallel to the source of supply that will damage your device.
2. This device is a Hall Effect transducer. It should not be used near significant magnetic fields.
3. If you are getting zero current on display but everything is correct, then check the series input and output connection of ACS712 sensor and check the voltage out of module it should be Vcc/2.
4. For most accurate result run the Arduino from an external power supply instead of USB.
5. This circuit designed for measuring DC values so do not connect it to AC.

Pin number 7 corresponds to the output of the ACS 712 current sensor. The ACS712 ELCTR20A-T sensor is capable of measuring current within a range of ±20 amperes, and its output sensitivity is 100 millivolts per ampere (mV/A). This means that for each ampere of current passing through the Hall Effect sensor, an output voltage of 100 millivolts will be generated at the sensor’s output pin. The same principle applies to other sensors with varying sensitivity levels. To calculate the current based on the output voltage of the ACS712, perform the calculations as outlined in the following points.

1. When no current flows through the sensor, the output voltage will be Vcc / 2, where Vcc is power supply voltage given to given to ACS712 current sensor.
2. If Vcc is 5v then output voltage of current sensor will be equal to 2.5v, when there is no current passing through the sensor.
3. 2.5v is offset voltage of sensor, measured voltage should be subtracted from offset voltage.
4. The output voltage decreased when current passing through it.

So we can calculate dc current by using following formula
Current = {2.5 – [Arduino measured ADC value of voltage] x [5/1024] x Sensitivity}

DC current by using following Commands:

AcsValueF= (AcsADC*0.0048828125); // AcsValueF is the Voltage reads by ACS 712 sensor //5/1024=0.0048828125

float Current = AcsValueF/.1; // sensor ACS 712 20A has sensitivity of 100mV ,

//Sensitivity of 30A is 66mV and sensitivity of 5A is 185 mV
//use this value in the code with respect of your sensor current capacity.
//Current = (AcsOffset – (Arduino measured analog reading)) / Sensitivity)

Once the circuit assembled and tested, check the value of voltage with a multimeter and minutely adjust the values in formula so that it can reduce its error.

AvgAcsADC should be 512 or 511 ie, Arduino ADC reads 5 volt at A5 port as 1024. At zero current, 2.5 volt will present in A5 port. That means ADC of Arduino reads 2.5v as 512 or 511 (5/2=2.5 and 1024/2=512). If it is 510 or below result will be -ve value in current reading. So for a correction in this make the next de-activated line (AvgAcsADC+=1) active with the numeric number 1 or 2 according to your sensor input.

Check Also
Close

Close
Close