This is a serially-interfaced 7 segment LED kit which can be linked together to create numerical displays.
The LED display is a large 45mm/1.75" unit with super-bright LEDs and is easily daylight visible.
The board contains a shift register and a power stage to control the display.
This can be controlled via a microcontroller - with Arduino examples included here.
Here at Renewable Energy Innovation we have been asked to provide large visible displays, mainly to show power and energy. These are generally run form 12V DC supplies. In fact we have been asked to do it so many times, that I thought I would design a relatively simple LED display unit which can be wired together to create large numerical displays. So here it is. The kit is available from us, via the links here. Or here are full instructions for you to build your own.
This shows three digits wired together.
Here is the three example codes (available below) in action:
We are now selling our kits as The Curious Electric Company.
This is a relatively simple to put together kit. The kit includes these parts (plus 2 connectors and a filter capacitor, not shown):
Note: You will need: soldering iron, solder, wire cutters.
The construction instructions are available here:
This board is a relatively simple design. Each of the 7 segments of the LED is controlled by one bit of a shift register. The decimal point is also controlled by the shift register. This means each board is controlled via an 8 bit binary number.
Data is moved into the shift register serially (check the example code for more details). The LATCH pin is taken LOW. Serial data is then moved into the shift register by first setting the DATA line to 0 or 1, then pulsing the CLOCK line. When 8 bits have been shifted in then the LATCH pin is taken high and the output displays whatever values are in the register.
The output from the shift register is just 5V, which is not enough to drive the large 7 segment LED display. This requires 12V and curent limiting resistors (330 ohm for 12V). A UN2003 7 transistor array is used to control each of the 7 segments. These transistors control the low side of the device. The 7 segment display must be a common-anode type.
The decimal point is a special cas as it only contains one LED, hence must have a different current limit. An additioanl NPN transistor is used along with a 1k current limiting resistor to control the decimal point.
If you have more than one board in series (they are designed to fit together to make large numerical displays), then you need to clock in all the data to control every part of the display. For example - if we have three digits then we must clock in three 8-bit digital numbers and then set the LATCH high. This will then control all three digits.
Check out the instructions and the exmple code for more information.
The device is wired with the following connectors (P1 (input) and P2 (output) are as follows):
Pin 1 → Serial LATCH
Pin 2 → Serial CLOCK
Pin 3 → Serial DATA
Pin 4 → GROUND
Pin 5 → +5V
Pin 6 → GROUND
Pin 7 → +12V
Here is the circuit schematic:
||Super Bright Common Annode. 7 Segment LED. Kingbright. 45mm||SA18-11_C A|
|P1||INPUT||6 way 90 degree pin|
|P2||OUTPUT||6 way 90 degree socket|
|Q1||NPN for Decimal Point||BC548|
|R1||Limit transistor base current||1k|
|R2||Limit current to DP||1k|
|R6||Limit current to LED chain||330|
|R7||Limit current to LED chain||330|
|R8||Limit current to LED chain||330|
|R9||Limit current to LED chain||330|
|R10||Limit current to LED chain||330|
|R11||Limit current to LED chain||330|
|R12||Limit current to LED chain||330|
|U1||8 bit shift register||74HC595|
The code for this project was written using the Arduino bootloader and IDE. (Note: It was written on version 1.02 of the IDE and is untested on other versions).
This project assumes some knowledge of the Arduino platform. If you do not have this then please start with the numerous examples available within the Arduino community.
Here are the examples, which you will need to download and add to your Arduino sketchbook:
The code has numerous comments and is based upon ShiftOut code from the Arduino reference website.
Here is the example code in action:
This is a fully open-source project. The PCB and schematic for this project were drawn using the open-source KiCAD electronics design package.
Here are the full KiCAD design files for this project, if you would like to make your own or use the ideas here.