Yes I know this question has been asked before, but unfortunately I can't ever seem to completely understand what someone has posted. What I'm looking to do is increase the voltage of the Arduino's digital output so that instead of 0-5v (that's it regularly right?) it'll go from 0-24v. The solution I choose needs to be able to handle high frequencies of on/off. (Up to 1000 pulses/second) The technical details of what I need are here. (page three)
Whatever the solution is the simpler the better. I'm happy to build simple circuits, however if there's a self contained off-the-shelf method that would work too. I need to do this for 8 separate digital outputs, so any solution works as long as I can do it in <$100.
Finally the arduino board I'll be using is the Arduino Mega 2560
Any help you can offer, including just the name of what exactly I'm looking for (so I can google to purchase/make it) would be a great start.
Edit: An acceptable alternative is some sort of arduino shield which has 8 digital outputs which can operate at 24V (and still support up to 1000 pulses/second on two if the eight at the same time)
Instead you use the signal from the IO pin to switch another voltage on or off.
There are many ways of doing this, depending on what the voltage and current is you want to switch on and off.
As the amount of current available at an IO pin is quite small, you may need a multi-stage switch. The IO pin switches on a low voltage which has a higher current, which then switches on a higher voltage with even more current. This is what happens when you use a transistor to drive a relay. The IO pin switches on the transistor, the transistor switches on the relay.
If you are wanting a simple "On" or "Off" signal to the motor, when the on an off periods are quite long, then a relay may be the easiest way to handle high currents and voltages.
If you want to control the motor with PWM then a MOSFET may well be the best switching solution.
Instead you use the signal from the IO pin to switch another voltage on or off.
There are many ways of doing this, depending on what the voltage and current is you want to switch on and off.
As the amount of current available at an IO pin is quite small, you may need a multi-stage switch. The IO pin switches on a low voltage which has a higher current, which then switches on a higher voltage with even more current. This is what happens when you use a transistor to drive a relay. The IO pin switches on the transistor, the transistor switches on the relay.
If you are wanting a simple "On" or "Off" signal to the motor, when the on an off periods are quite long, then a relay may be the easiest way to handle high currents and voltages.
If you want to control the motor with PWM then a MOSFET may well be the best switching solution.
Thank you for the fast reply. It's not quite PWM, the arduino will be talking to a stepping motor driver which uses pulses to determine motor speed. I define a "pulse" as a single on/off. I may need to pulse up to 1000 times a second. My understanding of relays is that they use moving parts, so that is probably not a good thing to use in this situation?
MOSFET looks like a good solution I think. However, do you know if it takes more than one microsecond to go from on to off? Will it add noise or latency or anything I should be worried about?
the arduino will be talking to a stepping motor driver which uses pulses to determine motor speed.
I don't think you quite get what a stepping motor needs.
Yes it needs pulses but at what current and what configuration?
Do you know the difference between a bi polar and unipolar motor?
Also you need to know if you need a regulating driver or just a current driver. Most stepping motors will need some sort of regulating driver if you feed them with 24V.
the arduino will be talking to a stepping motor driver which uses pulses to determine motor speed.
I don't think you quite get what a stepping motor needs.
Yes it needs pulses but at what current and what configuration?
Do you know the difference between a bi polar and unipolar motor?
Also you need to know if you need a regulating driver or just a current driver. Most stepping motors will need some sort of regulating driver if you feed them with 24V.
Admittedly my knowledge is very scarce. However, I will be talking to a driver, which does all the fancy stuff for me. (Its all in that document I linked in my first post) The driver uses a pulse to change the speed of the stepping motor. It also has inputs for rotation direction, step size, and a few other options. I realize that sending a pulse to a stepping motor, would not drive it. That is why I have a "driver" which does that for me. The driver and motor are sold together, so if they aren't right for each other I'll be quite surprised.
Also since there will be >10amps available I will go with a MOSFET. If it doesn't work out, I will look into the Bipolar Junction Transistor.
It is not so clear but it looks like there is a 5V and 24V version and I am guessing you have the 24V one.
OK so in that case you don't need a FET at all, you are just controlling a few mA.
So you can either do it with a simple transistor, or an open collector buffer like the 74LS07. That chip will convert 6 signals.
Not sure what you mean. The 74LS07 has what is called an open collector output. That is what is shown on your data sheet. This sort of output is either open or pulling down to ground.
Normal arduino output connect either to +5V or ground.