Powering a Heating Element

I want my project to power a heating element (ripped out of a vape pen) through PWM using a microcontroller (3.3V ESP32). The project will eventually be battery powered (3.6v Li Ion, 450+mah).

I have tried a couple different transistors (MMBT2222L on a breakout board & TIP120). I have also tried a N-Type MOSFET (P30N06LE). Below are the wirings I have tried.

For testing, I programmed the ESP32 turn on the transistor or MOSFET for 30 seconds then off again (no PWM at this point). I simply press the reset button on the ESP32 device to test again. When testing with my multimeter, I’m getting the expected voltage of roughly 3.25 volts from any of the configurations. This is the same whether I’m powering the project through a battery or my PC’s USB cable.

My problem happens when I actually connect the heating element to the trans/FET. It appears to drop the voltage down to next to nothing and I’m getting no heat on the element. I’ve measure voltages anywhere from 0.1v on the trans and 1.1v on the FET with the element connected.

As a quick test, I simply connected the heating element to the battery and it heated up almost instantly. So I know that the connections are properly soldered.

I’ve found some tutorials online that cover an example of how to do something similar, so I feel that I’m close to a solution. But I have extremely limited knowledge when it comes to electronics. So I’m hoping I’m just missing something simple here.

Any assistance would be very much appreciated and please let me know if there is any other information you need from me.

Thanks,
Jason

unsigned long startTime = 0;

void setup() {
  pinMode(12, OUTPUT);
}

void loop() {
  if (startTime == 0) {
    digitalWrite(12, HIGH);
    startTime = millis();
  }

  if (millis() - startTime > 30000) {
    digitalWrite(12, LOW);
  }
}

If you don't know the resistance of the heating element, I am not surprised you are having problems.

Paul

The resistance is 2.0 Ohm as measured on my multimeter.

This is where my lack of knowledge comes into play. I need guidance on how to use this value to adjust my circuit accordingly.

What does the 3.3V output of the ESP32 do when you attempt to turn on the MOSFET?

The 3.3V regulator is only good for a couple of hundred milliamps. A 2-ohm load on that is going to try to consume 1.65-amps which is just going to brown-out the ESP32.

You need to wire the high-side of the heating element to the battery, not the 3.3V output of the ESP32.

Stick with the MOSFET BTW...

Hi,

Blackfin: What does the 3.3V output of the ESP32 do when you attempt to turn on the MOSFET?

The 3.3V regulator is only good for a couple of hundred milliamps. A 2-ohm load on that is going to try to consume 1.65-amps which is just going to brown-out the ESP32.

[u]You need to wire the high-side of the heating element to the battery, not the 3.3V output of the ESP32.[/u]

Stick with the MOSFET BTW...

Why high side? The heater just needs to be powered by a separate supply, not through the ESP32, low side will be fine.

Also you will not get good results with the heater current flowing through a protoboard.

Tom... :)

I have tried multiple variations, including the battery powering everything. Still got the same results. During the battery variations, I was dirrectly connecting the high of the Li Ion to the heating element and running ground through the MOSFET.

@Blackfin, I don’t think the board was browning out. As I plugged the heating element into the breadboard’s circuit within the first 30 seconds of the sketch running. The voltage dropped to 0.1v on the transistor, but I was able to unplug the heating element and see the voltage came back up to 3.25v. After 30 seconds, the voltage dropped to zero indicating the sketch was still running properly.

OP’s mosfet circuit:

0028b4708d9e1f02c31d1494d17623a478477b19.jpg

You have what looks to be a220 ohm resistor from the gate lead to ground which is wrong. The resistor should be in series with the gate. You’ll need to move the wire (the green wire) on the source of the mosfet to ground when you lift the ground of the gate lead resistor.

Also, you don’t need the diode across the heating element. They are only required when you have an inductive load like a motor or solenoid. A heater is purely resistive with no inductive properties (some wirewound resistors could be considered to have some inductance but not in this case).

If you need the Frizing thing redrawn so you understand how to properly connect things, please ask. Just cannot do it from the iPad I’m current using.

@ WattsThat, thanks for the reply. I'm actually using a 10K resistor per instructions from another tutorial, I just didn't think to update the fritzing drawing with the proper value.

I'll give your advice a shot in a little bit and get back to you on the results.

This one has lower VGSth, 0.6 ~ 2V, but max gate voltage is 12V max, Rds @ 2.8V is < .029 Ohms.
https://www.digikey.com/product-detail/en/infineon-technologies/IRF3708PBF/IRF3708PBF-ND/811850
https://www.infineon.com/dgdl/irf3708pbf.pdf?fileId=5546d462533600a4015355df7cf5193c
MosHeater.png

A 10K is for holding the gate low if the Arduino pin fails or becomes disconnected, not a series limiter. You should have your mosfet wired like this:

mosfet_wiring.JPG

TomGeorge:
Hi,
Why high side?
The heater just needs to be powered by a separate supply, not through the ESP32, low side will be fine.

Also you will not get good results with the heater current flowing through a protoboard.

Tom… :slight_smile:

If you took “high side” to mean I suggested a move to high-side switching, that wasn’t my intention. I simply meant connect the heater element to the battery while switching the low-side with the existing FET (once the gate wiring is sorted.) I agree on the breadboard; not ideal for what the OP is trying to do.

@WattsThat, thanks for the diagram. After hooking it up, I'm unfortunately still seeing the same problem, voltage disappears when the heating element is connected. I'm getting a good 3.8v from the battery (after fully charging it) without the element.

I'm assuming that I have the wrong MOSFET for the job, or possible incorrect resistor values?

Jasonchildress: I have tried multiple variations, including the battery powering everything. Still got the same results. During the battery variations, I was dirrectly connecting the high of the Li Ion to the heating element and running ground through the MOSFET.

@Blackfin, I don't think the board was browning out. As I plugged the heating element into the breadboard's circuit within the first 30 seconds of the sketch running. The voltage dropped to 0.1v on the transistor, but I was able to unplug the heating element and see the voltage came back up to 3.25v. After 30 seconds, the voltage dropped to zero indicating the sketch was still running properly.

are you actually using the long proto board as shown ? if so, is there are gap in the printing of the red and blue lines in the center of the board ?

@dave-in-nj, there is the gap on my board, but I have the power rails properly jumped and verified that I'm getting power to the needed pins. just not when the element is connected.

and you tested the voltage regulator on the ESP9266 to make sure it can provide the power for the heater ?

since you should be able to put your heater power from the battery to the heater element and not to the ESP8266, you could power the ESP from the USB and the heater from the battery and then tie the grounds together.

I would also remove the pull-down in this testing stage. pulling the pin high or low would be fine for testing.

Hi,
Can you measure voltages A, B and C with respect t gnd, with the Arduino output HIGH and when LOW please?
MosHeateredit.jpg
Thanks.. Tom.. :slight_smile:

MosHeateredit.jpg

3.7V across 2 Ohms is 1.85 Amps, what are you powering the heater with? Can it supply 1.85 Amps @ 3.7V? I'm just wondering if the gate voltage from the ESP is enough to turn the FET full on?

That was going to be my question. Can the battery support the heater? Forget the ESP for now!

The battery is a 3.6v Li Ion 400mah pack with protection. here's the datasheet: https://cdn.sparkfun.com/datasheets/Prototyping/spe-00-502535-400mah-en-1.0ver.pdf

As a test, I have simply plugged the heating element into the battery (on the breadboard) and it has fully powered the heating element:

Now, I'm sure that is not the safest thing to do, but it did work, so because of that I'm assuming "it should" be a sufficient battery.

I have noticed that the more wiring I add to the circuit the lower the voltage becomes (obviously) but I'm suprised by how much. For example, If I took the same direct connection as above and moved the heating element to the other half of the breadboard with jumper cables, the voltage drops from 2.88v to 1.85v.

@TomGeorge, I'll gather those voltage readings for you and get back as soon as I can.

hmmm, for some reason my images didn’t show up. I’ve attached them to this post.