Intro: A Countdown Clock With LEDs
These are some brief notes about a 'Countdown clock' I built 10 years ago for Y2K, The clock is 4 feet square from the front. It is about 4 inches thick, and runs on an embedded microcontroller. Each Segment is made from around 20x 10mm LEDS.
I can't take a picture with it on, because it is WAAAY too bright !
The panel was carved from a template I made for an ordinary router, with an extended template following cutter. I made the template in hardboard (fibre board US-ian ?) and just carefully aligned it with marks on the panel to cut it out.
Laying out the second Leds was more of a bitch than I expected - do the math carefully to pitch them PERFECTLY.
Step 1: A Digit
Here's a view of the back of a segment. I used the classic LM317 constant current circuit to drive each bank of LEDs.
The drivers for the displays are done with serial-to-parallel converters which seem to have been replaced with these things:
...these new parts will do all I did then with the 317 as well - a complete LED driver in one chip. Only a single resistor sets the brightness for all the leds !
Each digit is driven by that chained ribbon cable, which carries all the common signals for these chips, Vcc, GND Clock, Latch Enable and output enable. So there are only 6 wires leave the computer for ALL the segments of ALL the characters AND the 60 second LEDS round the edge. Each drive chip though has one unique line( the pink wire) that daisy chains through the whole system. The display looks like a very long shift register - see diagram below
An update for the display takes a very tiny fraction of a second.
Step 2: The Microcontroller.
I absolutely love the 8052 microcontroller, its second sourced and tweaked by just about everyone. A professional user, can even download VHDL code to implement one in an FPGA, and tweak the whole core to drive any weird hardware I care to conceive.
Makers include Atmel, NXP and WinBond.
Development tools are dead cheap, there are free assemblers and free 'C' compilers (SDCC) too.
I actually programmed this entirely in Pascal with a piece of assembler code specially written to do the display update as fast as possible. At some point I'll post the code too.
This is the controlling computer. The CPU is a called a Dallas DS2250T, and it came as a little SIMM card style board containing 32K of battery backed RAM, used for programs and 8K of RAM for program data use. The big 40 pin chips are more Serial to parallel chips for the second LEDs.
Beneath the 40 pin packs is an LS125 line driver chip, to drive the ribbon cables.
The white connector at the top was for a set of push buttons for setting the clock.
Step 3: Software Notes
I wrote a simple piece of PC code to work out exactly how many hours there were in any interval between when you wanted the countdown to start and "zero hour",
The embedded program just tested its internal clock every second and decremented the display. Every minute, all the Leds lit up, and gradually turned off until you reached 60 again.
There is a little pushbutton panel for setting up the display, just like an alarm clock.