TL;DR: I want to use a lower voltage (5V) to switch current from a higher (12V) voltage source at the source end instead of the drain end.
Longer story: I'm trying to control some large seven-segment displays with an Arduino by multiplexing across the digits. This presents a few design considerations:
- Vf on the segments is 8V-10V (because each segment is actually 5 LEDs in series), so I'm going to drive them with 12V.
- The displays are common-anode, so control of the segments happens at the cathode/drain, but control of the digits happens at the anode/source
- The multiplexing will be such that all segments of an individual digit will be lit at once, and then we will switch to another digit. So, we have to allow for multiple drains to be open at once, but not for multiple sources.
There are many other posts asking for controlling higher voltages with lower, but the ones that I found all advise to put the load in the collector of a BJT. Indeed, this is what I've done at the drain side, to control the segments, but I also need to control the supply to the common anode of each digit.
The simplest way I've found is to use a PNP/NPN pair (Q1_1 and Q1_2 control digit 1, Q2_1 and Q2_2 control digit 2), but this seems like overkill. I feel like this can be done with only one transistor per anode (but maybe with more total components... resistors, capacitors, etc).
Here are the questions I have about this circuit (note: I only included 3 LED's per digit, for simplicity):
- Primary question: Is this PNP/NPN pairing a sensible way of doing it, or is there a more-standard way?
- Secondary question: Note that both of the transistor pairs share the same emitter resistor (since only one is enabled at any one time). I suspect that this prevents the NPN from getting to saturation since that resistor would pull the NPN's emitter voltage up above 5V. My solution for this would be to move the resistor to be between the PNP's base and NPN's collector, but this would require one resistor per digit (which isn't a big deal here, but, for a larger project, it could be, and I'm curious if there's a way to get away with just a common resistor). Is is just a matter of setting that resistor to a lower value so that the PNP can, at least, saturate?