Why did I burn my TIP120?

Hello!

I'm currently working on a very simple system to turn on and off a water pump (12V, 35-45W) in time intervals. Right now I'm testing it with a button instead of the time intervals. So, what I'm doing is that when i'm pushing the button, the water pump will start pumping water, and when i release that button again, it will stop (could also do it with some boolean values, but now I was just testing it this way).

My problem is that i totally burned my transistor and I really don't know what I did wrong. So I hope you can help me on that one. I'm was using a TIP120 transistor, which should be capable of up to 5A and 60V (datasheet: http://www.adafruit.com/datasheets/TIP120.pdf). I hooked this up to my stationary computer PSU, as it was the only 12V I had. I'm not completely sure of what my diode specs are, but it might even work without it? I was just told that I needed it by numerous tutorials (if anybody have the spare time to explain that to me it would be great). Of course i tested the pump directly in the PSU, and it works perfectly!

So, the circuit I made looks like below. The white wire was not connected, but I would use this connection to the button instead of connecting it to the 12V, as it was by mistake (could this have caused the meltdown? :D). The power symbol is the PSU and the DC motor is the water pump. Both resistors are 10k?. The resistor is a . I didn't put much effort into the fritzing design, sorry:

And here is my simple code for testing:

int button = 0;

void setup() {
  Serial.begin(9600);  
  pinMode(8, OUTPUT);  
  pinMode(13, OUTPUT);
}

void loop() {

  button = analogRead(A0);  
  Serial.println(button);
  
  if(button == 0) {
   digitalWrite(8, HIGH); 
  }
  else {
    digitalWrite(8, LOW);
  }
  
  digitalWrite(13, HIGH);
  
}

Please help :slight_smile:

Best, pakken!

And: Now I only have a TIP125 left on my table. But as I understand I need a little more complex circuit to make that work the same way? :slight_smile:

I hope you aren't applying 12V to that power connector in your schematic and then feeding that to the +5V pin of the arduino board as that will likely destroy your board. Connect the 12V to Vin instead.

Since your pump is rated at 35-45W@12C that means it will be drawing about 3-4A of current. Assuming a 1V drop thru the TIP120 (It's probably higher than that), that means the TIP120 needs to dissipate 4A * 1V = 4W minimum. Without a heatsink it will roast the transistor.

Assuming a 1V drop thru the TIP120 (It's probably higher than that),

It is.
The TIP120 is not a transistor it is a darlington pair. So the volts drop when it is on is very high. The data sheet says it is 2V with a current of 3A and 4V with a current of 5A

that means the TIP120 needs to dissipate 4A * 1V = 4W minimum.

So revise that to 4A * 2.5V = 10W !!!

Basically the TIP120 is the wrong thing to use here. You need a logic level FET.

Grumpy_Mike:
Basically the TIP120 is the wrong thing to use here. You need a logic level FET.

Or a water cooling system for the TIP120, using a tiny little water pump switched by a 2N2222!

See item #4 in Five things I never use in Arduino projects | David Crocker's Solutions blog.

dc42:
See item #4 in Five things I never use in Arduino projects | David Crocker's Solutions blog.

I love the guy insisting he hasn't missed the point of Gray code when he so obviously has...

fungus:

dc42:
See item #4 in Five things I never use in Arduino projects | David Crocker's Solutions blog.

I love the guy insisting he hasn't missed the point of Gray code when he so obviously has...

Perhaps you would care to elaborate? My understanding is that the point of an N-bit Gray code as opposed to a simple N-bit binary code is that only one of the N bits changes between states. Do you think it is something else?

dc42:
Perhaps you would care to elaborate? My understanding is that the point of an N-bit Gray code as opposed to a simple N-bit binary code is that only one of the N bits changes between states. Do you think it is something else?

Nope.

I mean the part where he says:

I have not missed the point at all. I have used rotary switches extensively and the result of a bounce on an edge can lead to the code being interpreted as if the encoder was being rotated in the opposite direction. This is a result of real experience over the years of using them.

A bounce on an edge makes no difference if you're doing it right.

I see, you were referring to the comment.

I also noticed one minor error in the breadboard picture that no one else mentioned. The black wire from power jack goes to the bottom breadboard rail marked in red.

People I know usually use red for voltage source and blue or black for ground or negative. While the bottom rail isn't connected to anything, if someone inadvertently connect both top and bottom red lined rail, you will get melted breadboard, melted wire, and melted power supply.

dc42:
I see, you were referring to the comment.

Oh, I see...you thought I meant you! :slight_smile:

No, I meant the guy who made the comment.