# How to reduce the current of a battery with an unknown maximum amperage

I'm currently trying to heat a wire to a certain temperature and tests showed that the amperage needed is in the range of 3-4 A.

However, I'm having a problem with how to supply such current to the wire.

I have an Arduino Nano with a max current of 40mA, and a weird battery with 7.4V and 1000mAh. I'm not sure how the battery works but directly connecting it to the wire instantly snaps it, so I need to limit the current somehow.

I was trying to make a simple circuit with a resistance and a transistor (as a switch. Maybe a SS Relay instead?) but when I was browsing for transistors they all limit the Collector current and I'm not sure how much the battery will give. The resistances available to me will fry instantly with a simple 1A current.

I'm not sure what to do, I'm seriously considering buying a new battery, but that comes at a cost.

Maybe I'm just dumb and it isn't possible with this battery

Tl;Dr: Have a battery with "unlimited" current that will fry everything that I have. Need to reduce it while keeping a ~4A current

• Define wire resistance then compute voltage drop and power divider and lookup CC limiters. And understand your battery won’t last long Commented May 18, 2019 at 15:52
• Erm. If you are igniting some kind of "charge" with it (gunpowder, flash powder, whatever) won't that destroy the wire anyway? I used to set off small packets of gunpowder like that. I used a single strand of copper wire (one of the hair like strands out of a stranded wire) and a battery charger. The wire burned through, but in doing so it also set off the powder. The wire would have been burned through by the powder in any case, so it didn't matter if the wire burned out from the current.
– JRE
Commented May 18, 2019 at 16:10
• +1 for EE75's comment, what is the resistance of the wire? Commented May 18, 2019 at 20:42

## 4 Answers

A simpler solution will be to add a current limiter on the circuit that you can hand tune instead of a pwd solution.

To create a current limiter you hook the output and adjustment/ground lead of a linear voltage regulator to a resistor [bonus points if it is a variable resistor]. This will make the regulator force a voltage across the resistor and thanks to Ohms law it will force a current output. See the picture and datasheet attached. Also, if one voltge regulator can't provide enough current you can attach multiple regulators in parallel to sum their currents.

https://www.onsemi.com/pub/Collateral/LM317-D.PDF

Do not forget to thumbs up this answer.

You don't need to reduce the current per se, you need to reduce the heating power in the wire.

The naive approach is to use a linear current or voltage limiter. But this will generate a lot of heat.

A smarter approach would be to use a switchmode current or voltage regulator. This needs an inductor, fast switches, and is more complicated than required for your simple thermal load.

You have already got most of what you need with your Arduino, by PWM controlling the switch.

What you would do is switch the current to the wire on and off, with a duty cycle that reduces the average power to something that will heat the wire to what you want.

There are several caveats.

1) The PWM must be fast enough so that the temperature variation with time in the wire is reasonable. The basic Arduino library does about 500Hz as standard. If the wire needs 3-4A, then I would guess it's heavy enough that 500Hz will be just fine.

2) The battery must be able to supply the peak current. It sounds like it already does if it zaps the wire, but it may have a hard time doing it. Shunt the battery with a very large C to hold it up if there's a problem. You might want a faster PWM to reduce the length of time that the C needs to hold the battery up, and so reduce the size of the C. You can drive the PWM directly for higher speeds, or there may be other libraries.

3) The Arduino must be protected from any excess variation on its supply, if you're using the same battery to supply both the wire and the Arduino. A suitable regulator and/or decoupling for the MCU should be OK.

4) You need a suitable switch, either a logic level drive MOSFET, or a beefy darlington.

The power to the wire varies linearly with duty cycle. For instance if the wire needs 10 watts to reach your desired temperature, and the battery delivers 100 watts to it when connected directly, you'd need a 10% duty cycle. Raise the duty cycle up from 0% when you're testing it.

• When i tried to heat the wire directly from the batteries it snapped instantly. I need it to ignite a charge so I just need it heated up for a few seconds. It should be controlled by the Arduino. Commented May 18, 2019 at 16:02
• which bit of my control the power with PWM don't you understand? The wire doesn't snap instantly, it takes a few mS (looks like instant to humans) to reach melting point. A 10% 500Hz PWM would switch on 0.2mS, and offf for the other 1.8mS. This would deliver 1/10th of the power of a direct connection. Commented May 18, 2019 at 16:06
• So the pulse would be from a digital arduino pin to a darlington switch? Are those fast enough for such frequencies? Commented May 18, 2019 at 16:08
• @AndréRocha: Yes, darlington transistors are fast enough.
– JRE
Commented May 18, 2019 at 16:11
• fast enough for 500Hz, though it would be prudent to read the datasheet of the device you're intending to use. Commented May 18, 2019 at 16:11

What you are actually doing is choosing a power rating to heat up the wire to ignition temperature before the wire reaches fusing temperature. Since wire has a PTC characteristic a constant current increase temperature and resistance so the power increases with temperature and it is not a linear relationship with I^2R or even I*t.

So you want to fuse a current for a given wire gauge (thermally insulated by being enclosed) such that the probability of ignition failure AND igniter failure are both near zero. If the ignition time is near 3 seconds, choose a voltage for your wire that fuses in 10 seconds. You can reduce the voltage with PWM or increase the resistance slightly with a smaller gauge but makes contact with the solid propellant.

Here is an example of fusing times for a fuse that can withstand 1A for at least 4 hrs. and to the right, various fuse ratings, so you want to hold for 10 seconds which is 2A into a 1A fuse or 3A into a 1.5A fuse.

But this is not enough information. You need to know the fuse resistance, voltage and current are controlled.

Ideally, you choose a battery voltage that matches the igniter resistance, so you do not have to regulate current or voltage. Also, a constant voltage sustains a more steady temperature and is much faster than a constant current. Recall that a light bulb with constant voltage rises in resistance by 10x and it hasn't melted yet.

Here you can see the wire AWG table with resistance in Ω/m = mΩ/mm and to the right is the fusing current in 10 seconds which should be safe to ignite the fuel in < 3 seconds.

Looks like in the 3~4A range AWG 36 would be a good selection.

Notice that the fusing current does not depend on length or resistance but the smallest diameter or area that is the weakest link.

If you want a reliable igniter you can use a constant current , which is slowest to reach temperature or a battery which matches the fuse resistance to blow in 10 seconds or one which blows in 5 seconds with a big coil that arcs after the fuse blows to extend the fuse time.

But I would recommend a constant voltage by some means that surges current until the hot resistance V/Rhot=I that fuses between 10 and 20 seconds thus very hot , and a fast rise time.

the amperage needed is in the range of 3-4 A.... I was trying to make a simple circuit with a resistance and a transistor

That will work if the transistor and resistor can handle 4A and the resistance has the correct value. To get 4A from 7.4V you need a total resistance (including the heater wire, transistor Collector-Emitter resistance, other wiring etc.) of 7.4V/4A = 1.85Ω. For example if the heater wire is about 0.6Ω and the transistor etc. add up to 0.25Ω then you need a resistor value of 1.85-(0.6+0.25) = 1Ω. Power = Volts * Volts / resistance, so the resistor must be able to dissipate 7.4V2/1Ω = 7.4 Watts. For safety you would use a resistor rated for at least 10W.

The transistor has to switch 4A but the Arduino can only put out 0.04A to drive it, so the transistor must have a current gain of at least 4/0.04 = 100 in saturation - which might be impossible to get so you may need another transistor to increase the drive current. Alternatively you could use a 'logic level' power MOSFET such as the IRL530, which requires no drive current.

A fully charged battery could put out up to 8.4V, which would drive 4.5A through 1.85Ω. If this is a bit too much you could apply PWM (with a ratio of ~78%) to get 7.4V rms. PWM could also be used to further reduce current if necessary, but the components must still be able to hand a peak current of up to 4.5A.

This simple resistance circuit is inefficient because a lot of power is wasted in the resistor. A 'better' solution would use a switching DC/DC converter that 'transforms' the voltage down to about 2.4V (the voltage required to push 4A through 0.6Ω) without wasting power. Other advantages of a DC/DC converter are that it keeps the output voltage (and current) constant as the battery voltage decreases during discharge, and the battery current is lower so it will last longer. The constant output voltage will also regulate the wire temperature better if its resistance increases as it gets hotter (most metals have a positive temperature coefficient).

The resistances available to me will fry instantly with a simple 1A current.

One way or another you are going to need some components that can handle 4A. You might be able to make a suitable resistor using resistance wire out of an old heater, or a long length of cable rated for ~4A, or you could wire several smaller wattage resistors (eg. 10 x 10Ω 1W) in parallel to get the resistance and power rating you need.