I am an electronics noob, so I am probably using the wrong terminology. But here is the situation.
I am trying to energize the coils of 10 relays at once using a HIGH signal from the arduino and I am worried that the current to enable the coils simultaneously is way too much for the arduino to handle. I have some thoughts on how to do this, namely using a "master" relay to then run the coils to the ten other relays, but the delays are starting to add up (already using multiple shift registers, and other relays in the project so a few dozen milliseconds here and there are actually getting significant).
I have an A/V background and I keep thinking there must be a Distributed Amplifier type solution: one in, many out. I hope there is some ultra simple IC out there that solves this one for me and feel free to call me an idiot as you point me to it.
I don't need a shift register for this, as it is either all or nothing. Either the 10 relays need to close or not.
If you never need the ability to control each individual relay...
You could use a cheaper transistor like a tip31 (3amps) otherwise you might be better off using a unl2803, from each of your shift register pins, are you using flyback diodes with the arrays or using a prebuilt board?... if it's a board with relay and transistors and what not, a simple npn/pnp should switch them all on ok.
I am confused a bit......
if you want all 10 to come on at the same time, then your circuit only needs one signal. you have that requested.
If all 10 come on at one time, can you just use one much larger relay ?
it could cost less to use on SSR that could handle 30 amps. I am assuming you are not switching 100 amps.
as was stated, one signal to one transistor could power all 10 relays. you MUST feed that transistor with a separate power supply, the Arduino cannot deliver that much power. the coils from 10 relays at 60 to 200ma each is too much for the arduino.
or, one signal could be sent to 10 individual transistors. a bit of selection is required. the coil resistance should be available from the data sheet. your coil voltage could be much higher as it is not required to be part of the arduino power supply.
if each relay needs 150ma and your selected current gain (hFe) is 40 ( the 3904 is not a darlington) then you have 200 /40=5ma each for the 3904 to be put into saturation. times 10 transistors on one pin, you only need 50ma out of that one pin.
since you cannot get that much, you need to select a different way. a transistor with a higher hFe ( the pn2222 is 100) so 10 PN2222 would need 20ma for this. I am not a fan of pushing limits.
a note here, a mosfet, say a 2n7000 operates on gate voltage, not current so it would not consume anywhere near that power. and it is in the same case size. remember each transistor/coil needs a diode.
the shift register with 10 channels out would move that power requirement from your pins, but it would take more pins because it is a serial device. the shift register offers you the ability to shift any one at a time, or any combinations or all at once. a very good option. Anyone have a preferred shift register with 10 channels ?
one large mosfet will work well for the stated application. but is the stated application complete ?
which begs the question, what is the load ? why is a relay needed at all ? if you are driving 10 channels, could you just use 10 mofets rated for 10 amps ?
a note of caution. MOSEFT data sheets require reading. it seems they rate a mosfet at 25 amps. then deep in the data you have to peal away the layers to find it can switch 25 amps, but may be rated for 8 amps continuous.
Using a simple BJT to power lots of relays may run into the Arduino pin current limit -
if each relay takes 100mA you'd need 1A, but most switching transistors capable of an
amp or two need 5--10% base drive, ie 50 to 100mA, which is beyond the capability
of an Arduino pin.
A Darlington or logic-level MOSFET would be a better choice, for large currents a Darlington
is going to need heatsinking, choose the right MOSFET and it won't be an issue
(low enough Rds(on) - you have to calculate the power dissipation.
Thank you all for the ideas. Thankfully I have yet to buy my parts as I am now going to replace all my relays with mosfets since this is a DC only project. On a related note, do any of you have recommended reading for me on what else I am missing in regards to transistors, mosfets, and the general mysteries of electronics?
Once I sit down to rework my circuit diagram I will share it here so you guys can rip it apart before I invest in possibly the wrong parts. The project is a 10 character by 10 line split flap display. I solved one of the major brain twisters (which I posted here for a solution on) using a keyed card system. I am sure I will need help on resistors and diodes and where the they have to go!
also, it would seem you need to move any of those 100 pins individually. that leans heavily towards the shift register or port expander. there are 16 channel port expanders with libraries on this forum.
10 characters, by 10 lines, that would seem to be 100 outputs.
if that is the case, look at how to use the LED arrays. same circuits, same sketches.
Shift Registers are involved in handling the individual flaps. Each output is going to a (now mosfet, was relay) that enables current to flow to individual dc motors.
I am trying to serialize the rows for universal connections, thus the need for the 1 to 10 solution. I want to have each row to have the electronics needs for itself and just a ribbon cable to go between rows (as well as power cables). So, while 2 shift registers are overkill per row, it would simplify the interconnects and logic driving them (plus allow for some possible LED feedback).
Since this thread was specific in its question, I will start another one with the schematic and diagram of the cards/switches (ms paint?) and link it below.