So I'm trying to control my front lights of my car using an Arduino Nano. In total there are 14 lights (including foglights and blinkers etc.). I'm using two 75HC595 shift registers to control these lights. In my car I also have 14 LEDs so I can see which lights are on. To switch the lights I wanted to use MOSFETs, but because all the lights have a common ground I must use them as a high side switch -> P-channel. I'm using the IRF4905. The lights I'm switching are 55W. At 12V the current thats flowing is around 5A, which should not be a problem, right? The problem is that the MOSFET gets really hot after a short amount of time.
This is the circuit I used to switch one light (all lights would be a huge picture). Transistor is BC547C. Relay is the standard one in my car. Couldn't find lightbulb in Fritzing so I used a Resistor (R6 is lightbulb). The value of R6 is not correct
When the light is on there is about 11.52V across the (+) terminal of the battery and negative side of the light, but there is 10.85V across the light itself. So am I correct if I say there is 0.67V across the MOSFET? I measured the current and it was about 2.58A.
\$0.67V \cdot 2.58A = 1.7W\$ at the MOSFET
\${{0.67V}\over{2.58A}} = 0.26\Omega\$ while \$R_{dson} = 0.02\Omega\$
If I'm doing something wrong in my calculations please tell me. Is there something wrong with my circuit or do I have a faulty batch of MOSFETs (tried 3 different)?
Edit: I've already tried to remove the 74HC595 in the circuit but it's still running hot.