View Single Post
Old 06-21-2010, 10:46 PM   #67 (permalink)
bobski
EcoModding Apprentice
 
Join Date: Jan 2010
Location: Newark, DE
Posts: 143

'91 CRX - '91 Honda CRX DX
90 day: 34.91 mpg (US)
Thanks: 0
Thanked 14 Times in 14 Posts
For those of you building your own LED displays, take a look at the SAA1064 display driver chip. It's capable of driving up to 32 discreet LEDs or two sets of 16 LEDs in common-anode display modules (the 16-LED groups can be divided up however you like). That's four 7-segment digits + decimal points, but they have to be single or double-digit CA modules... No common cathode or 4 digit modules. The chip has internal programmable constant-current drivers (0 to 21 mA in 3 mA steps) which means no external current-limiting resistors for the LEDs. In addition, the current can be changed on the fly, allowing dimming of the display.
The chip is controlled by I2C serial, so it only takes up two I/O pins on the Arduino, and multiple chips can be controlled on those same two wires... I2C uses device addresses.
The best part: Mouser sells them in a breadboard/protoboard-friendly DIP-24 package for $1.54 a piece.
Here's the datasheet: link
Just the bare chip will drive 16 LEDs. Add a 2.7nF cap and two NPN transistors (2N3904s have worked for me) to enable multiplexed output to 32 LEDs (only 16 LEDs are active at any given time, but the chip alternates back and forth faster than the eye can perceive, so they appear to be constantly lit).
This is a "dumb" chip in that it doesn't provide any number fonts, which is actually good for the HUD application... You define your own fonts in the code on the Arduino, so it's a simple matter of playing with a few values to get horizontal and/or vertical mirror-imaged numbers, or really whatever combination of display segments you like. In stead of four 7-segment digits, you could drive a pair of 16-segment (or 14 with 2 free LEDs) alphanumeric digits. Here's a wikipedia page if you're not sure what I'm talking about: link
Additionally, it can be used to drive a bar graph, an assortment of indicator LEDs, or unit indicators to go with a group of numerical digits. You could get nice unit indicator text by printing inverted text (white on black background) on transparency sheets, then cutting it out as a block and back-lighting it with LEDs.

Here's a vid of it running a bar graph I put together recently:
  Reply With Quote
The Following User Says Thank You to bobski For This Useful Post:
BackBlast (10-22-2011)