• Some users have recently had their accounts hijacked. It seems that the now defunct EVGA forums might have compromised your password there and seems many are using the same PW here. We would suggest you UPDATE YOUR PASSWORD and TURN ON 2FA for your account here to further secure it. None of the compromised accounts had 2FA turned on.
    Once you have enabled 2FA, your account will be updated soon to show a badge, letting other members know that you use 2FA to protect your account. This should be beneficial for everyone that uses FSFT.

Arduino for a salt spreader controller

matt167

[H]ard|Gawd
2FA
Joined
Dec 18, 2016
Messages
1,418
I run one of the plow rigs at work with a tailgate salter. The controller doesn’t work right anymore and work can’t seem to find a replacement. I was thinking I can program an arduino with a couple relays and put it in a project box. It’s just a 12v DC motor that draws 15 amps I think. I’ve gotta clear it with the big boss but he’ll probably tell me to go for it since it’ll cost him less than $50.

It’s just gotta be a basic on/ off timer. I’ll probably make it a little fancy and give it a high time and low time setting with a switch.

If the relay is closed with the pin low. Do I need a pull down resistor or can the Arduino do that internally? I only ask because my box of resistors is somewhere in a box in storage after I moved and I’d have to buy more. I’ve never coded the internal resistors in. I’ve only dabbled with Arduino but I know enough to make it work since it’s so simple
 
Would need to see a schematic for your circuit and data sheet for the relay, but based on my understanding of this, no. You'd be using the Arduino I/o as outputs to drive the relay (I think, no circuit or data sheet). So they don't need pull-up or pull down resistors.
You might need a transistor to drive the relay, depends on the relay details and power requirements( Arduino pins can't sink or supply significant power).

However you will also almost certainly need a current limiting resistor.

Buy some resistors.

Suggest digikey.com or tayda.com
 
I’m going to use relays that have transistors built in for micro controllers as I’ve used them before. I will probably only use one for the control side of an automotive relay since I looked up the specs and the relay can only handle 10a and the motor is rated at 12A. I don’t think the Arduino has the current to trip an automotive relay.

My basic wiring diagram in my head is one of the output pins to micro controller relay. Switch on one of the analog input pins supplied with 5v from the arduino, for switching high and low.

The code itself just being an on off timer using delay probably.

I know I’ll need a bread board as well as leads. I’ll hot glue connections which will keep it serviceable but in place otherwise
 
Ive used a arduino a handful of times for automotive stuff. They work alright.

One project is a fan controller for a old v12 jaguar. The arduino reads a temp, triggers a relay to turn fans on and gives pwm to the speed controlled fans. Pretty simular to what youre working on. Fans are like 20a total.

I needed to use a small transistor to activate a big transistor to activate the 30a automotive fuse. Could be done with just one properly configured transistor and a small circuit to properly run the transistor.

You could also use one of the relays designed to be used for arduino to trigger a proper auto relay.

You can absolutely use breadboarding and pinned protoboards for a actual design, just glue the pins in so they dont wiggle out and it will work fine.

Auto voltage can go up to 14v which you would think is not appropriate for an arduino. But they ones I've used with no voltage protection are still alive after years of auto use
 
Last edited:
https://store.arduino.cc/products/arduino-uno-rev3-smd
Microcontroller ATmega328P
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limit) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
PWM Digital I/O Pins 6
Analog Input Pins 6
DC Current per I/O Pin 20 mA

So you are fine with ~14V with fluctuations.
 
I’m going to use relays that have transistors built in for micro controllers as I’ve used them before. I will probably only use one for the control side of an automotive relay since I looked up the specs and the relay can only handle 10a and the motor is rated at 12A. I don’t think the Arduino has the current to trip an automotive relay.
Why not just use a transistor to drive the automotive relay?

My basic wiring diagram in my head is one of the output pins to micro controller relay. Switch on one of the analog input pins supplied with 5v from the arduino, for switching high and low.
You only need a digital pin, this is simple on off, doesn't need any fancy analog footwork. Gpio is what you use. Configured to output high or low based on the transistors drive requirements.

The code itself just being an on off timer using delay probably.

I know I’ll need a bread board as well as leads. I’ll hot glue connections which will keep it serviceable but in place otherwise
+1 to the Arduino hats mentioned above
Edit - an Arduino screw shield would be way better than using a breadboard and hot glue....
Screenshot_20260105-165444.png
 
Last edited:
sounds like something that should just have an on/off switch. kudos for attempting the fix though!
 
sounds like something that should just have an on/off switch. kudos for attempting the fix though!
The original controller does the same thing. It’s a little more advanced in that instead of having 2 time settings it has 10 settings and all but setting 10 isn’t working. It turns off for a very short time to let the spinning platter refill with salt, and turns back on to throw it. But as it is right now, it only cycles twice before you have to turn it back off and on to reset it.

Theoretically the higher the time delay, the less salt is spread.
 
Why not just use a transistor to drive the automotive relay?


You only need a digital pin, this is simple on off, doesn't need any fancy analog footwork. Gpio is what you use. Configured to output high or low based on the transistors drive requirements.


+1 to the Arduino hats mentioned above
Edit - an Arduino screw shield would be way better than using a breadboard and hot glue....View attachment 777251
I could probably use a transistor to make the automotive relay work. I’ll have to look into it. I had no idea a shield like that existed
 
I could probably use a transistor to make the automotive relay work. I’ll have to look into it. I had no idea a shield like that existed
If you don't mind paying some shipping I have no doubt that digikey would have a relay that works on 5ma drive current and can handle your 15A, I would oversize the relay to be honest, for insurance. Inductive loads like motors can sometimes pull way over their rated current on startups.

A couple Google searches could probably pull up some kind of relay shield that meets all your needs in one little package.
What Arduino did for the diy electronics community is crazy.
 
Last edited:
Yeah, I looked into the screw shield and at the very least that’s what I should use. Digikey probably has something, they probably have everything

As far as the relay I was thinking of using a mofset to control an automotive relay as another option. I don’t think I’d use a mofset for that draw itself even though on paper they can do 48a or something like that.
 
For this I'd avoid a MOSFET because they are very sensitive to static discharge and won't provide you any benefit here. MOSFETs can be a little (read barely measurable for your application) more efficient when on, and they generally switch faster(you won't benefit from this either). Transistors will handle your task better, and be more fault tolerant/handle abuse.

Configuring a MOSFET to drive a DC motor directly would be much more complicated, it's not as simple as connecting it like a relay. Back emf will smoke the fet.
 
For this I'd avoid a MOSFET because they are very sensitive to static discharge and won't provide you any benefit here. MOSFETs can be a little (read barely measurable for your application) more efficient when on, and they generally switch faster(you won't benefit from this either). Transistors will handle your task better, and be more fault tolerant/handle abuse.

Configuring a MOSFET to drive a DC motor directly would be much more complicated, it's not as simple as connecting it like a relay. Back emf will smoke the fet.
Good to know. In the past, I’ve written and wired them with the brute force approach, and it’s always worked. A relay is going to be most likely the easiest.
 
Good to know. In the past, I’ve written and wired them with the brute force approach, and it’s always worked. A relay is going to be most likely the easiest.
I'm far from an expert in this, but I think either a 5v capable relay directly driven by the arduino, or a standard auto relay driven by a cheap transistor (3904 or 3906 probably) would be the simplest.

Dont get me wrong, FETs are sweet and have their place (fast switching or maximum efficiency situations), but transistors are reliable and much harder to break. Like a truck vs a supercar. When you need shit to work and dont know what the conditions might be - trucks gonna get it done. When you need maximum efficiency and speed, super car wins all day - as long as your track is well maintained.

Also curious what you mean by you've written and wired them in the past - driving a motor from a mosfet without a freewheeling diode and appropriate snubbers will blow up most mosfets like 100% of the time.
Like mosfets are the primary choice for motor control, but thats generally when you get talking about speed control (fast switching - like ns/mhz timeframes) or battery powered applications (that extra 15% efficiency starts to be a big deal).

driving a relay (even if its connected to a motor) isnt motor control, transistor is just a more tolerant driver here.
 
Last edited:
I’ve used arduino in the past I mean. I never do anything fancy. Last project I did which is still running is an interface for a thermostat to run a Chinese diesel heater. The arduino listens for a change in input from a home style thermostat, to switch the Chinese heater on and off. For that one, I literally used a modified version of the button press example code, and used the example wiring. It uses a couple relays to close the contacts on one of 2 buttons
 
  • Like
Reactions: travm
like this
Right, and thats simple, you're not directly switching a motor, so back EMF isnt a thing, and you're using a relay anyway so the MCU is isolated. That's a standard method.
Its when you get into directly switching a motor that some kinda complex things start going on - electric fields and whatnot.
 
I think putting a relay shield on it would be a good idea. Since the only other thing I would have needed is a bread board or screw shield, I can use simple automotive screw terminal buss blocks for negatives and any positives that have to be tied together.

The original is a variable speed but we ran it on 10 even when it worked right. I just need the delay so that it refills the platter
 
I think putting a relay shield on it would be a good idea. Since the only other thing I would have needed is a bread board or screw shield, I can use simple automotive screw terminal buss blocks for negatives and any positives that have to be tied together.

The original is a variable speed but we ran it on 10 even when it worked right. I just need the delay so that it refills the platter
There's so much Arduino stuff, you could probably find a motor control shield that allows you to use PWM to control speed if you wish. A well designed shield should have all your required connections. For any splices or off board power connections, I'd recommend using Waco lever nuts. I used those for the last fan resistor I installed in my truck and think they're the best. Knock offs work too.
Something like this. They make all different configurations, for splices or tees,etc. these are single conductors for making splices, you'll need a different type if you want to join 3 or more wires together.
Screenshot_20260109-073944.png
 
May I suggest the IRLZ44N Mosfet?
It can do 16A @ 12V driven directly from an Arduino pin. You just need a fast diode across the motor (to not kill the FET) and a fairly small resistor between the Arduino pin and the transistor gate.
 
May I suggest the IRLZ44N Mosfet?
It can do 16A @ 12V driven directly from an Arduino pin. You just need a fast diode across the motor (to not kill the FET) and a fairly small resistor between the Arduino pin and the transistor gate.
Definitely an option. I’m not sure if I have ground all the way back to the controller or not. It might be grounded to the body somewhere but I’m not sure.
 
Definitely an option. I’m not sure if I have ground all the way back to the controller or not. It might be grounded to the body somewhere but I’m not sure.
You've gotta have ground everywhere. Electronics don't work without it.
 
You've gotta have ground everywhere. Electronics don't work without it.
Yeah I know. Most vehicles use the entire frame and body as a ground. I know I have to get ground into the arduino for it to work
 
Yeah I know. Most vehicles use the entire frame and body as a ground. I know I have to get ground into the arduino for it to work
For the Arduino you can use whatever was available at the existing controller for ground.... If the existing controller used a wire to the motor just use the same. Be careful to ensure your board has a 15v tolerant LDO +5v regulator.
 
Back
Top