Statement: Driving Pinlight Lamps is very challenging. The design requirements are 4vdc @ 15ma per segment, if you are interested look here.

So for the 7-segment displays total current is 7 x 15ma. or 105 ma. Now multiply that by 19 displays x 150ma or 1995 ma or just under 2 amps. For the 16-segment displays, which there are 4 the total current is 16 x 4 x 15ma or 960 ma or just under 1 amp. An Arduino can't even handle on segment. So I need to buffer the displays from the arduino.

Power Rail

Ground Rail

Plan: By the use of complementary BJT that is to say with a PNP Collector connected to the Power Rail and a NPN Emitter connected to ground. By using the BJTs I can switch columns from NPNs Base and each lamp segment from the PNPs Base. I don't think I will need a limiting resistor on between the Power Rail and the NPNs Collector.

Most likely I will be using 2 BCD to 7-segment encoder as problems with fan out might occur.  The 4 16-segment lamps will be driven directly from one 16-bit port. So using a quick math of total-segments == (16x4) + (7x19) == 64 + 133 = 197 segments! At .2 seconds per segment = 39.4 seconds to access all 197 segments. Uyk! If I ran the multiplexer twice that speed or rather half the total time per segment = 17.2 seconds. Better but still cruddy.  So what would happen If I divided  the tasks?

Possible Solution 1:  use four separate 74LS247 BCD  to 7-Segment  Decoders, each one called port A, port B, port C, port D and one Port E (16-bits). By using 3 x BCD to 1 of 8 decoders 74LS138 ganged together with out using other gates.


~~Cris H.

Possible Solution 2: The mega has 50 odd digital ports? so 50/3 = 17 so I only need 6 more digital ports. here is my pin list:  (NOPE!!)


Arduino Pin#222324252627282930313233343536
ReferenceDisplay 0Display  1Display 2Display 3Display 4
Arduino Pin#373839404142434445464748495051
Display 5Display 6Display 7Display 8Display 9


Possible Solution 3: In reality this will be the way to go. 1 will be using I2C 16-bit io-expanders I can use 15 bits from each expander to run 5 lamps. So this implies I will need 4 expanders to run the lamps. Now I can use 16 digital I/O or one more expander for the data lines for the 16-segment displays. (WINNER-WINNER-CHICKEN DINNER)