Relay Solution for Controlling Pumps with Arduino

arduinofluid-pumprelaysolid-state-relay

I'm working on a hydroponics project that requires me to run 10 pumps for 15 seconds every 2 minutes. I was able to set this system up by running a relay board off of an Arduino, but the relays were mechanical (and fairly cheap) and within 13 days they had started to break down. I've had to switch out the relays to get the pumps working again, but I'm almost out of relays to switch.
From my research, it looks like solid state relays might be the way to go. So, my question is: are there solid state relays that can handle 12VDC, 5A and reliably switch – on average – once a minute for extended periods of time? And if so, how can I control them using the Arduino board I already have (if I have to buy a shield or anything like that, that's fine). I currently have a power supply that can supply 12VDC and 10A max, so I'd like to continue using it; but if I have to buy a new power supply, I can do that too.

Thanks!

Best Answer

You can use a logic-level gate MOSFET such as the IRLB8314PbF.

schematic

simulate this circuit – Schematic created using CircuitLab

The resistor R2 pulls the MOSFET gate low if the I/O goes high-Z. R1 limits the GPIO current.

This part has a maximum Rds(on) of 3.2m\$\Omega\$ with 4.5V or better drive, so at 5A it will barely get warm (80mW -> about 5°C rise) even without a heatsink. Only about $1 each in 10's. The diode D1 is to absorb the inductive energy in the motor winding when the MOSFET switches off. It is rated at 3A continuous, which is more than adequate to handle brief 5A spikes.