2.3" 16 segment common anode LEDs, HT16K33 and ULN2803 (now common cathode)

I see, so 120R for both 2 and 4 LED segments. The decimal point will not be used.

Attached is an updated schematic based on the Youtube video. Hopefully it is good enough to breadboard the circuit. The example load in the video is 25W.

With all 10, 4 LED segments and 6, 2 LED segments lit, total current drain is 400mA at 6v, which is 2.4W, so it seems like a smaller MOSFET can be used such as the NTR1P02T1G, rated at 1 amp, 20v. Also, it is probably best to use a 9v supply, recalculating resistor values.

Please let me know what you think about this. Thanks again for the help.

EDIT: I just noticed that nowhere is +12v connected to the display.

so 120R for both 2 and 4 LED segments.

No. Sorry, I hoped by pointing out what was wrong with one calculation you would realise the other is also wrong.


Please post your schematics so they can be viewed in the post, like above. Its a 2-step process: Attach the file as you have done and post. Then copy the address of the attachment, modify the post, click insert image and paste in the copied address.

I don't think that will work. The extra transistor will logically invert the signal from the COM pins.

in your previous working circuit, the COM pins on the HT chip go low to sink current from the common cathode of each digit in turn of your 0.8" displays, turning that digit on. The other COM pins go high at the same time to switch the other digits off.

In the circuit above, when a COM pin goes low, the npn transistor will switch off, which will in turn switch the MOSFET off.

R2 = (12 - 1.5 - 6) / (.019 * 2) = 120R (4 LED segments)
R1 = (12 - 1.5 -6) / .019 = 240R (2 segments)

I found this on an EE site, so maybe just a diode will work because the potential is 12v - 5v, well within range.
"A P channel FET is easier to switch as the gate voltage only has to range from the power voltage to around 10 V less for most FETs." Does this look like it will work?

I think I'm looking at this wrong. The row lines go high when selected, and the Darlingtons on the cathodes of the LEDs ground them since they invert the signal.

The COM lines go low when selected, so a transistor SHOULD invert the signal to turn on the MOSFET. The source side of the MOSFET should go to 12v, and the drain to the anode. The above drawing is wrong.

The issue is switching on the MOSFET when the COM lines go low.

Is this correct?

Series resistors look ok now.

Yes, sounds like you understand the switching issue now.

I have another suggestion. An equivalent to the ULN2803 chips is UDN2981/2984. These are high-side drivers and could replace the MOSFETs. They have a high voltage drop, like ULN, but with 12V supply that's not a serious issue. But the problem is they are not inverting. ULN is inverting: a high signal on an input pulls the output low allowing it to sink current. Because you are running common anode displays with a chip designed for common cathode displays, you need inverting drivers on both high (anode) and low (cathode) sides of the display.

You could use 74hc04 hex inverters to invert the COM signals before sending them to the UDN chip to drive the anodes.

Would this be easier with common cathode displays, and a non-inverting Darlington array? If not, I'll update the schematic with a 74HC04 between the HT16K33 and the 2N3904. Thanks again.

I can't think of a non-inverting Darlington driver either, so you might need inverters for that idea too.

For driving the MOSFETs, use 74hc07 rather than 74hc04. The '07 is non-inverting and has open-collector outputs which are ok up to 30V.

If it were my project, I might consider abandoning the HT chip in favour of 2x tpic6b595 shift registers per digit. But that would be 12 chips and a lot of series resistors. This would not be multiplexed.

Or 2x tpic6b595 and 1x tpic6b595 driving high-side MOSFETs for the anodes. But then you have to perform multiplexing in your Arduino sketch.

This shows how to connect a p-channel MOSFET.
Hgzh9.png

Hgzh9.png

1 Like

From what I've learned here about this circuit, and that happens to be a lot, it looks like this can work.

The only question I have, is whether R3 is necessary, and if so, are the values of R3 and R8 appropriate?

If it does work, I'll probably recalculate the R values for a 9v supply, and use a smaller MOSFET. If no glaring errors are pointed out, I'll order a few parts and will breadboard next week.

Thanks again.

EDIT: With VCC at 7v maximum, I'm not sure that the 74HC07 will turn on the MOSFET. I was thinking that it could be connected to 12v. So maybe a 2N3904 as a switch switch driven by an inverting 74HC04 will work.

Can it work?

ROW pins pull high when active and high impedance when passive, the ULN2803 need input current to turn on, this looks acceptable.

COM pins pull low when active and is high impedance when passive, there is a non-inverting driver with 5V CMOS input and output. A floating input on a CMOS will often be staying in the previous state, i.e. low. The transistor input will be either 0V or 5V, but the transistor is supplied from 12V, this means it would be on all the time if it was a P-Channel transistor, but symbol shows N-Channel transistor wired to always pass current.

This is not going to work.

The problem is the two different supply voltages. A real mos driver chip could do it or a transistor more, but a transistor includes an inversion that you do not need, this has to be fixed with a transistor more or a inverter and you need a pullup on the COM outputs.

Thank you. Are these the changes you are describing?

MitchSF:
Thank you. Are these the changes you are describing?

Exactly, you forgot to put 12V on the circuit.
It is a good schematic praxis to feed positive voltage from the top, i.e. turn you mosfet around and point S up.

And one more item, when using a BJT transistor you need a base resistor, you could use a small N-channel mosfet if you want to avoid that.

Changes made. Thanks again.

Is the NTR1P02T1G a good choice to substitute for the NDP6020P? That one seems like overkill in this circuit.

That improved the schematic, but move the gate resistor so it goes up from the gate to 12V, that way it is much faster to see it is a pullup.

What was the current? 0.6 to 0.7A? I would prefer a transistor with a bit more headroom than NTR1P02T1G, i.e. 2+A rating, but it is not really necessary.

Thanks again.

With all 16 segments lit, maximum current is 400mA. Hopefully this will be the final drawing.

I cannot see any problem with it now. I hope you agree with me that changing the transistor and resistor position makes it easier to read the schematic.

If you plan on making a PCB I would recommend making a full schematic and use a program that can coordinate PCB layout with schematic, this reduces the risk of errors.

Very good. Thanks again for the help.

I use DipTrace to design pc boards. A full schematic will be drawn. I'll post the results after the breadboard is completed with one or two displays.