Relay becomes unresponsive after switching air bed pump

Hi there,

I am working on a project where I need to switch an air bed pump (http://goo.gl/IGBvR) that draws 4500mA. I am using a 5V relay, that can switch up to 16A on 30VDC.

Everything is working as it should, until I connect the motor. After about a minute, sometimes more, sometimes less, the relay becomes unresponsive and stays closed. There is no way to release the relay other than resetting the Arduino.

This thing is really driving me nuts :~ Hopefully someone here can point me in the right direction :slight_smile: I attached the schematic.

Thanks in advance!

That 4.5A rating is probably the steady-state current. When switched on the motor will pull stall current (perhaps around ten times as much) and has spot-welded the contacts together.

This is one situation where a MOSFET can be more reliable if its pulsed current rating is upto the surges. Something like 0.01 ohm, 120A rating MOSFET would probably do nicely - even if the motor winding resistance is as low as 0.1 ohm it will handle the surge and dissipate 0.2W steady-state. For ease of interfacing ensure a logic-level MOSFET is easiest or you'll need another transistor to drive it.

And because it is inductive the motor will need a backwards diode across it rated for 10A (pulse) or so to protect the MOSFET from inductive spikes.

Its unlikley to be a problem with the relay, if resetting the Arduino releases it.
How is the Arduino powered?
Is it from the same 12V that runs the motor?

It would probably help to see your code.

I'd copy D8 value to D13 (builtin led). Just to see if the relay is properly driven but refuses to change state, or it's the Arduino that doesn't change D8 value.

Thanks all! MarkT, your argumentation seems logical. I'll order parts and try the MOSFET approach.
@mauried, the Arduino is powered over USB, the relay is being switched using a separate 5V power supply and the motor is on an isolated 12V circuit.