A heating-nichrome-wire will be heated by conducting unipolar PWM currents switched by a MOSFET with an adjustable duty cycle. I will first calculate the heat required from this calculator and find the current required. This will be the target current in the rest of my setup. In that formula the current is continuous DC. In my case should I calculate the Irms of the current?

I will sense the current as in the illustration below: enter image description here

Above the green section is basically two op amps which will low-pass-filter/integrate and amplify the voltage across the shunt resistor to be read by ADC of the uC. So I can calculate the current knowing the op amps' gain and the Rshunt values. For better accuracy I will subtract the offset(coming from the input offset voltages) at the beginning when the MOSFET is off.

So since the current is pulsed and I will send the integral of it to the ADC. What I actually send is the data about the average voltage or current values for the Rshunt.

In the illustration above I tried to simplify the scenario. First the temperature will be set as in Figure1 and I want the temperature to be regulated when the wire gets shortened or longer. I want the nichrome-heating-wire to be at the same temperature when it is shortened or extended.

So logically if the wire length changes, the duty cycle also should be adjusted by the uC. Otherwise it will pass excessive current or not enough current. The data read by the ADC somehow should be used to adjust the duty cycle. This is the programming side.

My question is:

Is the hotwire's temperature proportional to the Iavg or Irms. If it is proportional to I_avg. I just need to adjust the duty cycle such that it produces the same Iavg or Vout which was set at the beginning. But if the temperature is directly proportional to Irms than I should adjust the duty cycle such that it produces the same Irms which was set at the beginning.

In my case, regulating the PWM current's average or rms value to a pre-set value should be used?

And is that all? Is temperature only related to current in this case? Length has no significant effect? (Electrical power changes by the length of the wire if the current is kept the same; but in this case I want to keep the temperature same in any length)


An absolute temperature measuring IC or sensor would be more reliable if one is not sure every detail is not ignored. Is there an IC which can measure the temperature of the wire or any IR sensor ect any other direct temperature measuring method?

  • \$\begingroup\$ I skipped a lot of that, if you have a unipolar signal. (PWM from zero to some positive voltage.) Then I think I avg = I rms. \$\endgroup\$ Jun 15, 2017 at 16:01
  • 1
    \$\begingroup\$ I think Irms_unipolar_pulse = Ipeak*sqrt(D) where D is the duty cycle. \$\endgroup\$
    – floppy380
    Jun 15, 2017 at 16:03
  • \$\begingroup\$ The wire temperature is related to the heat flow and it is not related with the current. That would be to easy. But the resistance is related with temperature, so if you can measure the resistivity change, you can get the temp. change. \$\endgroup\$ Jun 15, 2017 at 16:08
  • \$\begingroup\$ The wire will heat in proportion to the average power dissipated in it, assuming PWM over 20 Hz or something. Since you're looking to regulate the temperature, you can start by regulating the average power. So you need to monitor the average current. You can do it digitally, (a) sampling the current just after PWM starts and always keeping PWM above say 20 % at say 100 Hz, then (b) multiplying adcReading by pwmPercent. Or you can do it analogue-ly, passing the current reading through very low-pass filter before ADC. Digital one's easier to tweak. With local temperature, it can get cleverer. \$\endgroup\$
    – TonyM
    Jun 15, 2017 at 16:14
  • \$\begingroup\$ If the heat load is constant then it sort of works, but with variable heat load its more complex \$\endgroup\$
    – sstobbe
    Jun 15, 2017 at 16:24

3 Answers 3


Is the hotwire's temperature proportional to the Iavg or Irms.

\$ I_{RMS} \$ is the current which will give the equivelant heating to the same DC current so that's what you want.

But if the temperature is directly proportional to Irms ...

Power is directly proportional to \$ I^2R \$. Nichrome has a positive temperature coefficient (check this is true) so R won't be constant.

Stable temperature will be the point at which electrical power in = power lost from the wire. If the latter is not constant then temperature won't be either.

In my case, regulating the PWM current's average or rms value to a pre-set value should be used?

I would be inclined to regulate to wire resistance. That way you are controlling to a temperature. Measure both current and voltage, calculate resistance and control to that.

Is temperature only related to current in this case?

See above.

Length has no significant effect?

There'll be some additional cooling at the connectors. The shorter your heating wire the more significant these become.

From comments:

If I could use a differential amplifier and measure the average voltage across the nichrome as well as the current. How would you formulate the temperature?

Take a reference reading after the power has been off for enough time to reach room temperature. Call this 100%. Measure the resistance thereafter, calculate the percentage increase in resistance and use a lookup table or linear approximation to calculate actual temperature.

I'm kind of confused. Some comments under my question mention the current is proportional to the heat of the wire. See also this link: hotwirefoamcutterinfo.com/_NiChromeData.html It says in a paragraph: "Know that it is the CURRENT not the voltage nor the wattage that heats your wire. Rather, it is the actual passing of current through the wire that ultimately determines its temperature."

The article is a little short on correct technical explanation. The last line is confusing because V and I are related by R. What they are trying to get across is that controlling the current means that you get the same result (for a given wire gauge) independent of the length. If you were controlling by voltage you would need to adjust the voltage to suit the length of the wire.

This comment is the first mention of foam cutting. I suspected that might be your application and that's why I spoke of power. There are a few points to note:

  • The temperature, as already mentioned, will stabilise at the point where heat into the wire = heat lost.
  • This will change depending on whether the wire is in air or cutting foam.
  • It will change with your speed of cutting. The faster you cut the more heat power will be drawn from your wire and if you go too fast the wire will cool enough that it won't cut and you will break it.
  • The portion of wire outside the foam will be at a higher temperature than that doing the cutting since it is not loosing heat at the same rate.

Rather, it is the actual passing of current through the wire that ultimately determines its temperature."

Again, the current sets the power. The temperature depends on what's happening outside the wire.

I think you shouldn't over-complicate your design. Make your power controller adjustable and add some sort of current indicator - maybe just your multimeter - in series with the wire. Find a current value that works for your foam cutting speed and write it down!

  • \$\begingroup\$ I will try to formulate it to be sure I understand you correct. Assuming MOSFET's VDS = 0, the wire resistance is: R_nichrome = (Vcc*D - Vshunt_avg)/I_shunt_avg So as long as R_nichrome is kept almost constant i.e. T1=T2 ? If it is it seems I dont have to change my setup but just the programming side should be adjusted? \$\endgroup\$
    – floppy380
    Jun 15, 2017 at 16:40
  • \$\begingroup\$ I'd say you can't assume VDS = 0 nor can you assume the resistance of the leads to the nichrome wire are zero resistance. You need to measure the voltage at the nichrome terminals somehow to eliminate all the other voltage drops. \$\endgroup\$
    – Transistor
    Jun 15, 2017 at 16:46
  • \$\begingroup\$ Oh than that would be more complicated an extra inamp on the high side to measure the voltage across the nichrome leads. Do you think an IR sensor can work for sensing the temperature in this case? \$\endgroup\$
    – floppy380
    Jun 15, 2017 at 16:50
  • \$\begingroup\$ If I could use a differential amplifier and measure the average voltage across the nichrome as well as the current. How would you formulate the temperature? \$\endgroup\$
    – floppy380
    Jun 15, 2017 at 16:56
  • \$\begingroup\$ See the update. \$\endgroup\$
    – Transistor
    Jun 15, 2017 at 17:07

There are several distinct parameters here. These are the temperature of the wire, power into the wire per unit length, average current, and RMS current. None of these are the same.

The heating power per unit length of wire, assuming consistent wire, is proportional to the square of the RMS current. If you are driving the wire with pulses always of the same current, then the power per unit length is proportional to the duty cycle. It is easy enough to drive the wire with a particular power or current.

However, the temperature resulting for a particular power is not so simple. For one thing, it varies depending on the conditions the wire is subjected to. As a obvious example, consider wire with a constant current going thru it in still air and in significant wind. The latter will be cooler, although the current is the same.

If you really want to regulate temperature, then you have to measure it and feed that back to the controller. One way to do that is to use the temperature coefficient of resistance. You monitor the voltage and current, compute the resistance, then determine the temperature from that.

This doesn't allow you to change the wire length without some kind of recalibration. One way to deal with different wire lengths is to assume the wire is is room temperature when first turned on, measure that resistance, then use relative change from that resistance to determine temperature.


If you would like to regulate the wire at a fixed temperature that does not have to be software adjustable, I would suggest using a bridge configuration to test whether the resistance is higher or lower than a reference. If the power isn't large, for example, and the resitance at the desired temperature would be 1K, you could do something like:


simulate this circuit – Schematic created using CircuitLab

If TDR is less than 1K, then the + input of COMP1 will be higher than the - input; if it's greater than 1K, then the + input will be lower. That behavior will be relatively unaffected by whether the transistor is on or off (turning off the transistor will reduce overall power consumption by 90%, but will reduce dissipation in TDR1 by 99%).

Actual resistor values are not critical, but the comparator will be balanced when TDR1/R1 = R2/R3. When the transistor is on, R1 will dissipate about 1/10 as much power as TDR1. When it's off, R4 will dissipate about 1/10 as much power as TDR1 would have dissipated when on. Reducing R1 and R3, and increasing R4, will reduce the amount of power dissipated in R1 and R4, but make the circuit more sensitive to any comparator offset.

  • \$\begingroup\$ Is 1k TDR1 the nichrome wire? In my case the wire will vary between 4 to 14 Ohm. \$\endgroup\$
    – floppy380
    Jun 15, 2017 at 17:17
  • \$\begingroup\$ @doncarlos: If it will be ten ohms at the desired temperature, adjust R1 to 1 ohm, and probably adjust R4 to 100 ohms or so. \$\endgroup\$
    – supercat
    Jun 15, 2017 at 18:25
  • \$\begingroup\$ Im trying to understand your circuit. But when TDR1 (the nichrome wire) length will change TDR1's value will change and the control mechanism will try to adjust it to 10 times R1 right(Which is R2/R3)? But for this to work there must be a direct relation between the resistance and the temperature. Is that? Lets say In your circuit L length TDR1 wire is adjusted manually to 500 Ohm by reducing its length to L/2. It means it should go up to 1kOhm again by turning the MOSFET ON and heating the wire. Could you explain this nice circuit in a step by step fashion? Thanks \$\endgroup\$
    – floppy380
    Jun 16, 2017 at 2:11
  • \$\begingroup\$ @doncarlos: Depending upon whether the resistance increases or decreases with temperature, you will need to either have the transistor turn on when the + input is higher, or have it turn on when the - input is higher. The circuit will try to balance the temperature so that TDR1/R1 = R2/R3; adjusting the ratio of R2/R3 will change the setpoint. I used a circuit like the above about 15 years ago in a system where I needed to measure the power required to keep a wire at a certain temperature. \$\endgroup\$
    – supercat
    Jun 16, 2017 at 2:16
  • \$\begingroup\$ Since the supply voltage was known and the resistance was known, those together implied the voltage and current in the wire, and multiplying that by the duty cycle would yield the power. An advantage of this approach is that the resistor measurement is unaffected by whether the transistor is on or off. If you need to accommodate different resistances, this might be an excellent place to use a digital pot. \$\endgroup\$
    – supercat
    Jun 16, 2017 at 2:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.