DIY Adjustable Constant Load (Current & Power)

81,216

265

79

Introduction: DIY Adjustable Constant Load (Current & Power)

About: Awesome Electronics Tutorials, Projects and How To´s

In this project I will show you how I combined an Arduino Nano, a current sensor, an LCD, a rotary encoder and a couple of other complementary components in order to create an adjustable constant load. It features a constant current and power mode and can handle a maximum of 30V and 20A if your heatsink design can handle it. Let's get started!

Step 1: Watch the Video!

The video gives you all the information you need to make your own adjustable constant load. During the next steps though, I will present you some additional information.

Step 2: Order the Components!

Here you can find a parts list with example seller (affiliate links):

Aliexpress:

1x Arduino Nano: https://s.click.aliexpress.com/e/_dULoNXh

1x 16x2 I2C LCD: https://s.click.aliexpress.com/e/_dSjOzdW

1x Rotary Encoder: https://s.click.aliexpress.com/e/_dZs9jUb

1x TC4420 MOSFET Driver: https://s.click.aliexpress.com/e/_d9epnMB

1x IRFZ44N MOSFET: https://s.click.aliexpress.com/e/_dUJRtAg

1x ACS712 Current Sensor: https://s.click.aliexpress.com/e/_dSKBwNK

1x Fuse Holder: https://s.click.aliexpress.com/e/_dU3K3jS

1x 20A Fuse: https://s.click.aliexpress.com/e/_dTjqvC4

2x Binding Post: https://s.click.aliexpress.com/e/_d9ke5na

Ebay:

1x Arduino Nano: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x 16x2 I2C LCD: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x Rotary Encoder: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x TC4420 MOSFET Driver: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x IRFZ44N MOSFET: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x ACS712 Current Sensor: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x Fuse Holder: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

1x 20A Fuse: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

2x Binding Post: http://rover.ebay.com/rover/1/711-53200-19255-0/1?...

Amazon.de:

1x Arduino Nano: https://amzn.to/2BLw2Ml

1x 16x2 I2C LCD: https://amzn.to/2BJ8tnx

1x Rotary Encoder: https://amzn.to/2Lmt5S0

1x TC4420 MOSFET Driver: https://amzn.to/2PBVQ0g

1x IRFZ44N MOSFET: https://amzn.to/2PxQd38

1x ACS712 Current Sensor: https://amzn.to/2NijkGn

1x Fuse Holder: https://amzn.to/2NkffkK

1x 20A Fuse: https://amzn.to/2PCLm0A

2x Binding Post: https://amzn.to/2BP0eGq

Step 3: Create the Circuit!

Here you can find the schematic as well as pictures of my finished circuit. Feel free to use it as a reference for your own circuit.

Step 4: Upload the Code!

Here you can download the code for the project. Upload it to the Arduino Nano through the Arduino IDE

Also make sure to download/include this library:

https://github.com/fdebrabander/Arduino-LiquidCrys...

Step 5: Finish the Project!

All that is left to do is mounting all the components inside your enclosure.

Step 6: Success!

You did it! You just created your own adjustable constant load!

Feel free to check out my YouTube channel for more awesome projects: http://www.youtube.com/user/greatscottlab

You can also follow me on Facebook, Twitter and Google+ for news about upcoming projects and behind the scenes information:

https://twitter.com/GreatScottLab

https://www.facebook.com/greatscottlab

7 People Made This Project!

Recommendations

  • Make It Bridge

    Make It Bridge
  • Game Design: Student Design Challenge

    Game Design: Student Design Challenge
  • For the Home Contest

    For the Home Contest

79 Comments

0
PaulAbraham
PaulAbraham

Question 8 months ago on Step 3

Can someone tell me what the purpose of C3 (the 470uF connecting the MOSFET gate to ground) is please? Ta.

0
PaulAbraham
PaulAbraham

Question 8 months ago on Step 4

Could someone give me a clue as to what the magic Arduino register tweaking in lines 70 to 80 is doing? I'm thinking of using a different MCU but this bit of code is defeating me.

Presumably setting up the ADC prescaler for the voltage and current measurements. What do the values actually mean
ADCSRA &= ~PS_128;
ADCSRA |= (1 << ADPS1) | (1 << ADPS0);

Presumably sets up interrupts to allow the button press?
PCICR |= 0b00000100;
PCMSK2 |= 0b00010000; // turn o PCINT20(D4)
attachInterrupt(0, isr0, RISING);

Beyond me, sorry!
TCCR1A = 0;
TCCR1A = (1 << COM1A1) | (1 << WGM11);
TCCR1B = 0;
TCCR1B = (1 << WGM13) | (1 << WGM12) | (1 << CS10);
ICR1 = 2047;
OCR1A = 0;

1
Smeden
Smeden

Question 10 months ago

Maybe add a "Constant Voltage" ( Parallel Regulator / Big Zener) -mode.
A thermal shut-down + programmable maximum power should probably be considered too. ;-)

0
LikeTheSandwich
LikeTheSandwich

Question 11 months ago

Instead of MOSFET driver, what if I use the RC low pass filter directly from the Arduino board instead of the MOSFET driver? Shouldn't that work just fine?

0
RandyD66
RandyD66

1 year ago

Perhaps my eyes fail me but.......
I don't see the source for the heatsink anywhere ??

Also, what I really need is a 65v 20A dummy load.
I may try to modify this design for that.

0
waileun
waileun

Question 4 years ago

Queston:
Hi, I notice that there are two electrolytic capacitors and one under the TC4420. may I know what are the values of the two electrolytic capacitors and the SMD? from the diagram I only saw, 22u and 470u

0
bobby.mazey
bobby.mazey

Answer 2 years ago

i believe he just has two 220uf caps in parallel. That would make sense to me... The desired capacitance is 470uf, maybe he only had 220uf caps so paralleled them to get a similar result.

4
maliŽ1
maliŽ1

3 years ago

Code adapted for Nokia 5110 LCD.
Note: If a strong power source is connected (eg a UPS battery), the regulation of the current is too slow and there is a possibility of MOSFET burnout (even 55A IRFZ44, I burned two until I realized the problem). Use a quick fuse

pcb.pngschema.pngIMG_20191114_231716.jpgmosfet.png
0
DoctorEdo
DoctorEdo

Reply 2 years ago

can you help me with this? your code is broken.

vf.JPG
0
janecekpavel9
janecekpavel9

Reply 2 years ago

The 150k resistor in IRFZ gate control is for the MOSFET protection during the startup?

0
maliŽ1
maliŽ1

Reply 2 years ago

yep

1
JMI83
JMI83

3 years ago

Well, this is a good instructable, nevertheless:
1) dissipate 20A over 30V means you need to dissipate 600W, as the junction to case resistance for IRFZ44 is ~1.5°/W, this means you have to dissipate 400°, as temperature junction is maximum 175°C, this mean you have to cool down case to -225° ...
On another hand it's also what datasheet said: with an infinity head sink, maximum power allowed for IRFZ44 is less than 150W. (in fact (175-25)/(1+case to to sink))
2) if you have a look on IRFZ44 datasheet, you'll see it isn't really made for "linear" usage, DC isn't indicated on SOA graph, but should be for VDS ~12V in the range of 1A.
Yes, it's a good instructable, but not using this Mofset.
Regards JMI

0
brendanoldham
brendanoldham

Reply 2 years ago

JMI, would you be willing to suggest some alternatives to the suggested Mosfet? Thank you

0
TonyF12
TonyF12

Reply 3 years ago

I'm looking all over the web for something like this, but I need exact schema and parts... Can you make an a Instructable with everything we need to follow, but redesigned so it is a better unit? It would be nice to have something that is simple but accurate.... Thank you very much! Tony

0
YasienD
YasienD

2 years ago

Hi, I'm nearly finished building this project and the output voltage (measured with a multimeter) of my setup doesn't change when I set an output via the interface. I'm using Scott's code and the same components that were recommended. The only difference is that I'm using an Arduino pro mini.

I'm using a 20V 6A power supply to supply any load and a buck converter to supply power to the equipment. I lost my 5 volt regulators and I had a spare buck converter.

Regardless of the value I change the either the current or load values to, I always get a 2.4V output. The voltage drops to 0 when I 'stop' the output but it seems as though the duty cycle of the PWM signal doesn't change. I tied pin 9 directly the gate of the mosfet and the my output voltage was 2.1V and didn't change when I varied any values in settings.

My mosfet is fine, I tried 2 of them, and bot were adjustable with a 50k pot.

Can anyone help me here?

Puh-leeese
0
lziot
lziot

2 years ago

Hello.

The TC4420MJA driver is not available on any shops and it is quite expensive. Is there any replacement ?

3
hoj_dk
hoj_dk

3 years ago

Hi
Cool project. I'm deffinately going to build this. Did anyone make a PCB for this? and are willing to share the gerber files for it?
Best regards,
Christian

1
bencapobianco1
bencapobianco1

Reply 2 years ago

Hi, I’m also interested in a pcb Gerber file if anyone has one?
Thanks, Ben

2
kiwidave72
kiwidave72

Question 4 years ago

When looking at the code, i can’t see how you are setting the PWM out? You set it to an output on pin 9 and set it to low, but I can see anything else.