Tuesday, October 15, 2013

Arduino Based Power Supply with Voltmeter, Ammeter and Timer based Auto Shutdown v2.0

This system is a replacement for power supplies used in the laboratory. This power supply has inbuilt digital voltmeter, ammeter and an auto-shutdown feature for power saving.

·         Fully digital control
·         Inbuilt voltmeter
·         Inbuilt ammeter
·         Timer based auto shutdown for power saving
·         Short circuit protection, no need of fuse replacement
·         Circuit does not need modification for full wave or bridge wave rectification
·         Maximum output rating 24V ,5A
·         LED indication for working of each block for easy diagnosis of a fault


The transformer will convert the voltage to the required level, which will be rectified and applied to regulator LM 317, which supplies to 2N3055.  is a 10A power NPN transistor which can provide output within the range of 48V safely. The IC dissipates heat, so will be provided with heat-sink. 

2N 3055 voltage output depends on the feedback provided to it on the ADJ pin. So, this is controlled by PWM wave generated by 8051 microcontroller, and given to the regulator IC. This will be in turn sensed by the ADC, and the data will be sent to 8051, so as to give a reading of voltage and current on the LCD. The data obtained from ADC is converted by the controller, and sent to the LCD. 

The system, being fully a digital system, is precise, and will take necessary action immediately. There is a potentiometer added to tune the output voltage without the need of buttons, which may be cumbersome(!). Also, there is an auto shutdown feature provided. This feature controls a SHUTDOWN relay, which will switch off the circuit if a timer is set for the same.

To bring to your notice, the circuit part under the power output section still can be improved using a PNP transistor. One can refer to the basics of the same on how to increase current capacity of LM 317. Also, one can use LM 338 regulator IC directly, but it will limit the output to 24V 5A.


The code is written in Arduino IDE for Atmega328 . This project only implements the IDE of Arduino and its header files for ease of programming, else the HEX file is extracted from Arduino temporary files for loading by a universal loader.

The code is commented enough to understand and modify as per requirement. Also, the code uses only 20% of the memory, so there is still scope for adding more code.

All designs are made in Proteus v7.8


This is solely my design, but I would like to add a sincere thanks to Maitrey Trivedi for helping me out to the best possible output of this project. He has helped to decide and modify what features suit best as this project is designed to suit the need of our college labs. Also, this is his final year project :) along with Kashyap Narigara.

Files and Photos:

The necessary files and photos for an observation are uploaded to:

free SMS :