Did some "reverse engineering" on the driver part of the device introduced in a recent post and "designed" (ahem…) a new driver circuit based on my findings. See some amazingly craptastic ASCII art below.
Q1..Q7 BC327 Q8..Q14 TIP32C IC1 74LS138 R1..R7 220 OHMS IC1 ·-------· ·---------· ! ! ! ! ! Q8 ! Q1 ! ! b e ! ! ARRAY 0 --c e-· b-----|R1|------ O0 Vcc ----- +5V ! c !(15) (16)! ! ! ! ! +5V GND ! ! ! ! ·-------· ! ! ! ! ! ! ! Q9 ! Q2 ! ! b e ! ! ARRAY 1 --c e-· b-----|R2|------ O1 GND ----- GND ! c !(14) (8) ! ! ! ! ! +5V GND ! ! ! ! ·-------· ! ! ! ! ! ! ! Q10 ! Q3 ! ! b e ! ! ARRAY 2 --c e-· b-----|R3|------ O2 E1 ----- GND ! c !(13) (4) ! ! ! ! ! +5V GND ! ! ! ! ·-------· ! ! ! ! ! ! ! Q11 ! Q4 ! ! b e ! ! ARRAY 3 --c e-· b-----|R4|------ O3 E2 ----- GND ! c !(12) (5) ! ! ! ! ! +5V GND ! ! ! ! ·-------· ! ! ! ! ! ! ! Q12 ! Q5 ! ! b e ! ! ARRAY 4 --c e-· b-----|R5|------ O4 E3 ----- ARDUINO PIN 2 ! c !(11) (6) ! ! ! ! ! +5V GND ! ! ! ! ·-------· ! ! ! ! ! ! ! Q13 ! Q6 ! ! b e ! ! ARRAY 5 --c e-· b-----|R6|------ O5 A0 ----- ARDUINO PIN 5 ! c !(10) (1) ! ! ! ! ! +5V GND ! ! ! ! ·-------· ! ! ! ! ! ! ! Q14 ! Q7 ! ! b e ! ! ARRAY 6 --c e-· b-----|R7|------ O6 A1 ----- ARDUINO PIN 6 ! c !(9) (2) ! ! ! ! ! +5V GND ! ! ! ! ! ! ! ! ! ! ! A2 ----- ARDUINO PIN 7 ! (3) ! ! ! ! ! ! ! ··--------· DATA ------------------------------------------ ARDUINO PIN 4 CLOCK ------------------------------------------ ARDUINO PIN 3
On the right side is the part that connects to Arduino: pins 5…7 select which one of the LED arrays will be lit and pin 2 enables the 74138 output. Arduino pin 4 feeds data to shift registers in the display part; pin 3 clocks them. (Note to self: check that clock part; how much current will 74164's draw?)
Note to self: add resistors between BC327 emitter and TIP32C base.
74138 truth table is as follows:
I N P U T S O U T P U T S ------+-------+---------------- E E E ! A A A ! O O O O O O O O 1 2 3 ! 0 1 2 ! 0 1 2 3 4 5 6 7 - - - + - - - + - - - - - - - - H X X ! X X X ! H H H H H H H H X H X ! X X X ! H H H H H H H H X X L ! X X X ! H H H H H H H H L L H ! L L L ! L H H H H H H H L L H ! H L L ! H L H H H H H H L L H ! L H L ! H H L H H H H H L L H ! H H L ! H H H L H H H H L L H ! L L H ! H H H H L H H H L L H ! H L H ! H H H H H L H H L L H ! L H H ! H H H H H H L H L L H ! H H H ! H H H H H H H L
As can be seen the 74138 outputs (pins 9…15) are active-low. The outputs drive BC327 (PNP) transistors, which then drive TIP32C (PNP) transistors. TIP32C's drive the display modules.