I came up with the circuit below to drive a single 7-segment display from an Arduino via a shift register (74LS595). Is the circuit correct/good enough or am I perhaps missing something critical in the design?
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It only takes a minute to sign up.Sign up to join this community
It looks good for the most part. It's certainly functional.
There's some things I'd change though, mainly on the pedantic side.
This is what I'd do personally because I value efficient/smaller designs:
The intention is to multiplex four displays using this circuit, selecting the digits using the Arduino and switching the segments via the shift register. It's also about learning transistors and how to use them as switches.
With this information, I'd do the following:
Or, I'd just get rid of the 4 PMOS and connect the anodes through a 220 Ω resistor to the Arduino and remove the 7 resistors at the cathodes. This however leads to the fact that you will have to cycle through each LED in each 7-segment display. And... maybe I'd just... also remove the 74LS595 and connect it to 7 pins of the Arduino.
To make it crystal clear, this is what I would do:
I'll only show the first 2 LED's. I won't make 4x7=28 LED's.
You select with \$A_0, A_1, A_2, A_3\$ and activate one LED at a time with \$C_0,C_1,C_2,C_3,C_4,C_5,C_6\$.