Large 7 Segment Display Made from Glue

Programer

Active Member
Reputation
0
We here at Hack A Day love LED’s, and all things LED related, but one of the biggest problems with LED’s are the small size. We want bigger and brighter, matrices the size of our TV, seven segments as big as a wall and a single white led the size of a baseball, and brighter than the sun!
I was recently commissioned to make a device which uses a pretty large number display, and I went out shopping. The seven segment we liked best was still quite pricey, and would not fit our enclosure correctly anyway. We ended up going a different route, but it really got me thinking… What if you wanted to make something with a fairly large display? And how could one go about doing it cheaply at home?
I first thought about acrylic rods, but no one near me had any of small diameter, or at a decent price. Never mind that I don’t have that many tools on hand, and I could just see me trying to drill out the end of a thin plastic rod using a electric hand drill, and my knees as a clamp. Looking around the HQ I found my stash of glue-sticks. I thought would make an interesting display and it is easy to work with.
Before I knew it I had a working (serial and expandable) 9 inch tall 6 inch wide 7 segment display. I will be the fist to admit, its not spectacular in quality, or brightness, though the display itself did only cost four dollars in material. A quick and easy project, especially if you need a quick scoreboard or large clock.
Join us after the break to see how the display and the controller circuit are made.

Supplies:
14 LEDs, as bright as you can get without generating heat. I am using 3mm Amber LED’s that run at 30 milliamp each, and are pretty bright. The glue-sticks will absorb a lot of light, which is a bummer.
7 Hot melt glue-sticks, big enough that your LEDs can stick in each end, pointing to middle. You will also use a lot of hot glue so keep some extra around.
7 NPN transistors, I am using 2222′s
7 1k ohm resistors
7 22 ohm resistors, this is for my LED’s and is letting 30 milliamp of current pass though 2 LEDs in series, use an online led calculator to get the correct value for your LEDs
1 74HC595 Shift Register
Electrical Tape
Cellophane Tape
Something to mount the display on. In my case some quickly painted cardboard.
Thin Wire (lots)
Perforated circuit board
Solder
Tools:
Soldering Iron
Hot Glue Gun
Wire Wrap tool (makes life easier but not required)
Wire cutters
Helping Hands
Utility Knife
Awl (a tool for piercing holes)
Marker
Making the Display:
In my opinion the most tedious part is wiring up the LED’s. I connected a loop of wirewrap wire to each lead of each LED and soldered. The wirewrap tool makes this an easy process but if you do not have one do not worry. Just get some wire from a ribbon cable and strip a little off the end, tin the end of the wire with some solder, and get a small amount of solder to stick to your component lead.
Once the two ends are tinned its just a matter of melting the 2 together.  I find that using tweezers really helps. You want about 4-5 inches of wire running off of each LED lead. This will give you more than enough slack to work with later on. Once you have 28 wires soldered to 14 LEDs you can set them aside for now and start heating up the glue gun.


I want the LED’s to be inside each end of the glue-sticks pointing to the middle. Originally I thought I could use a drill bit and by hand bore out a little divot in to the ends of the glue-sticks. This worked really well for the first couple holes, but it was not long before the drill bit was doing more melting than cutting. I also learned that freezing a glue stick, even for a little bit, makes it really brittle.

It finally dawned on me that I was working with glue-sticks, and that it would just be easier to use the nozzle of the glue gun to make the divot, then quickly bury the LED before the glue set back up. When using the hot glue nozzle, you do not need to go down very far or else it might blow out the side of the glue stick your trying to work with. If you do mess up, its just glue-sticks, they can be easily fixed with hot glue. I managed to mess each and every single one of these up in a special way and they all came out about equal.

After the sticks cool down I wrapped the ends in electrical tape, this does a few things: first it keeps light from leaking out of the ends, second it is wrapped around where the LED’s are to prevent a bright spot on each end, and Third it helps me even up the visible segment sections. After you get all the glue-stick LED tubes taped up its a good Idea to test each led to ensure you did not accidentally break a wire or short something out while twisting up that tape. I used a 9 volt battery with a 500ohm resistor in series with the LED’s to test quickly.

Now that all the segments are ready to go, I lay them out on the cardboard and mark each end of the glue-sticks, and where the wire pokes out with a marker. I then used my awl to punch holes though the cardboard so that the wires can pass though. Finally I used hot glue to mount each segment in its proper place, and on the back side put a dab of glue where each wire comes though.

All that is left for the display is wiring up the LED’s and their current limiting resistors. Each side of the glue-stick is wired in series with each other. Current flows into the anode of one LED, out of its cathode, into the anode of the second LED, out of its cathode though the resistor to ground. (yes I know its backwards but its easier to explain) In order to do this I grabbed my 9 volt and resistor and found the anode and cathode of both LED’s in a segment, twisted the appropriate wire leads together and soldered.
I solder the current limiting resistor to the negative side of the LED series pair and use a bit of cellophane tape to hold down the wires once I am done. From here you should be able to connect each segment up and control the display. But that means you need 7 leads running to your micro controller, and if you wanted another display, well that’s 7 more leads. In order to make this thing easily controlled and easily expanded I will add some simple circuitry.
Making the Controller:

The heart of the circuit is the 74HC595 serial to parallel shift register. This handy little device lets us control the display using a total of 5 wires, and we can chain as many displays as we want without increasing wire count. Shift registers are pretty simple devices to operate, in the case of the 595 you have to worry about three things.
Storage or Latch:
The 74HC595 contains an extra register called the storage register. This feature means you can wait until all the bits have shuffled in before letting them go to output, it also means once the output is in storage, you do not have to update it again until you need to change it. Before you can send data you must lower (ground) the Storage clock or Latch pin. Once you are done sending data you then raise it (+5v) to set the storage register and show output.
Serial Data:
you are going to be sending data 1 bit at a time from your micro controller to the shift register though this input. Have your MCU set a pin high or low then toggle the serial clock.
Serial Clock:
Once your bit is set, a transition from low to high on this input sends the data into the shift register.
As data comes in serially it is sent though a chain of filp-flop circuits, which among other uses forms a basic memory. The 74HC595 is an 8 bit device, so if you lower the latch, send 8 bits to it serially then raise the latch, you would see all 8 bits at once on the chip’s output. This converts serial data to parallel data.
One has to keep the shift register’s absolute max values in mind. Typically this chip will let you pass about 20 milliamps per out put pin, which sounds great for driving LED’s. The catch though is that the entire device can only handle about 70 milliamps before going out of spec. Each one of my segments is going to be drawing about 30 milliamps each. Though these chips can put up with some abuse, this is way out of spec.
To deal with the current required by the LED’s you could use a proper LED driver/sink. There a ton of them out there, but I do not have any. I do have a pile of transistors that can handle 10x that current and more with no issue. This setup is an improper version of transistor as a switch, but will work for a small display and saves the headache of inverted data. More importantly it will let my shift register control each segment with a fraction of the current while the transistor does the heavy lifting.

(click for large version of schematic)
From here everything just needs to be wired up. This could be done pretty easily on a piece of perforated circuit board. If you are like me, or just out of perfboard, and the closest radio shack is an hour away, and you already have the wire wrap out … well you could “dead bug “and solder it. Components are secured into place, and connections are insulated with hot glue and tape.


In order for the display to communicate to your MCU I used a section of 5 conductor ribbon cable. The wires are in the following order. +5, Ground, Data, Latch, Clock. For the display to connect to another display I wired up a little header with +5, Gound, Data, Latch, and Clock, BUT the data is no longer coming from the MCU. It is now being sent by pin 9 of the shift register. Since the shift register is 8 bits if I have 2 of them chained in this way I can then send 16 bits of data, 8 of which will “spill out” of the first register on pin 9 and into the input of a second or third or fourth register.
Since the 74HC595 is one of the most popular shift registers out there, you will be able to find additional documentation for whatever micro controller you are using. I happen to have my arduino near buy as usual so I just whipped up some simple copy n paste software that uses the shift out function.

// hot glue seven segment display test

// define pins used
#define dataPin 2
#define latchPin 3
#define clockPin 4

// define light patterns
byte one = B01100000;
byte two = B11011010;
byte three = B11110010;
byte four = B11100100;
byte five = B10110110;
byte six = B10111110;
byte seven = B01100010;
byte eight = B11111110;
byte nine = B11100110;
byte zero = B01111110;

void setup()
{
pinMode(dataPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}

void loop()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, one);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, two);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, three);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, four);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, five);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, six);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, seven);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, eight);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, nine);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, zero);
digitalWrite(latchPin, HIGH);
delay(2000);
}

I define  a bunch of bytes, each one of those bits is a segment on (1) or off (0). Since we are only using 7 out of 8 bits, bit 0 is always going to be 0, though this could be a decimal point or otherwise. When I wired the segments I started at the top and wired it to bit 1 of the shift registers output, and went in a clockwise motion leaving bit 7 as the center segment. Of course when I flipped the display around I quickly noticed that I had actually wired it counter clockwise (oops). This does not really matter, you just need to know which segment is wired to each bit.
In the setup function I just make my micro controller pins as outputs
and In the loop function I:
Lower the latch
use shift out to send 1 byte (8 bits of data) to the shift register
Raise the latch to see the results
Pause for 2 seconds and go to the next number
And there you go! A giant 7 segment display made out of glue sticks, easy to control, easy to chain, and while not the most awesome thing ever, I hope it inspires you in your future projects.

Filed under: led hacks, tool hacks



Posted on Thu, 25 Aug 2011 21:54:56 +0000 at http://feedproxy.google.com/~r/hackaday/LgoM/~3/JnmI_tuOg40/
Comments: http://hackaday.com/2011/08/25/large-7-segment-display-made-from-glue/#comments
 
We here at Hack A Day love LED’s, and all things LED related, but one of the biggest problems with LED’s are the small size. We want bigger and brighter, matrices the size of our TV, seven segments as big as a wall and a single white led the size of a baseball, and brighter than the sun!
I was recently commissioned to make a device which uses a pretty large number display, and I went out shopping. The seven segment we liked best was still quite pricey, and would not fit our enclosure correctly anyway. We ended up going a different route, but it really got me thinking… What if you wanted to make something with a fairly large display? And how could one go about doing it cheaply at home?
I first thought about acrylic rods, but no one near me had any of small diameter, or at a decent price. Never mind that I don’t have that many tools on hand, and I could just see me trying to drill out the end of a thin plastic rod using a electric hand drill, and my knees as a clamp. Looking around the HQ I found my stash of glue-sticks. I thought would make an interesting display and it is easy to work with.
Before I knew it I had a working (serial and expandable) 9 inch tall 6 inch wide 7 segment display. I will be the fist to admit, its not spectacular in quality, or brightness, though the display itself did only cost four dollars in material. A quick and easy project, especially if you need a quick scoreboard or large clock.
Join us after the break to see how the display and the controller circuit are made.

Supplies:
14 LEDs, as bright as you can get without generating heat. I am using 3mm Amber LED’s that run at 30 milliamp each, and are pretty bright. The glue-sticks will absorb a lot of light, which is a bummer.
7 Hot melt glue-sticks, big enough that your LEDs can stick in each end, pointing to middle. You will also use a lot of hot glue so keep some extra around.
7 NPN transistors, I am using 2222′s
7 1k ohm resistors
7 22 ohm resistors, this is for my LED’s and is letting 30 milliamp of current pass though 2 LEDs in series, use an online led calculator to get the correct value for your LEDs
1 74HC595 Shift Register
Electrical Tape
Cellophane Tape
Something to mount the display on. In my case some quickly painted cardboard.
Thin Wire (lots)
Perforated circuit board
Solder
Tools:
Soldering Iron
Hot Glue Gun
Wire Wrap tool (makes life easier but not required)
Wire cutters
Helping Hands
Utility Knife
Awl (a tool for piercing holes)
Marker
Making the Display:
In my opinion the most tedious part is wiring up the LED’s. I connected a loop of wirewrap wire to each lead of each LED and soldered. The wirewrap tool makes this an easy process but if you do not have one do not worry. Just get some wire from a ribbon cable and strip a little off the end, tin the end of the wire with some solder, and get a small amount of solder to stick to your component lead.
Once the two ends are tinned its just a matter of melting the 2 together.  I find that using tweezers really helps. You want about 4-5 inches of wire running off of each LED lead. This will give you more than enough slack to work with later on. Once you have 28 wires soldered to 14 LEDs you can set them aside for now and start heating up the glue gun.


I want the LED’s to be inside each end of the glue-sticks pointing to the middle. Originally I thought I could use a drill bit and by hand bore out a little divot in to the ends of the glue-sticks. This worked really well for the first couple holes, but it was not long before the drill bit was doing more melting than cutting. I also learned that freezing a glue stick, even for a little bit, makes it really brittle.

It finally dawned on me that I was working with glue-sticks, and that it would just be easier to use the nozzle of the glue gun to make the divot, then quickly bury the LED before the glue set back up. When using the hot glue nozzle, you do not need to go down very far or else it might blow out the side of the glue stick your trying to work with. If you do mess up, its just glue-sticks, they can be easily fixed with hot glue. I managed to mess each and every single one of these up in a special way and they all came out about equal.

After the sticks cool down I wrapped the ends in electrical tape, this does a few things: first it keeps light from leaking out of the ends, second it is wrapped around where the LED’s are to prevent a bright spot on each end, and Third it helps me even up the visible segment sections. After you get all the glue-stick LED tubes taped up its a good Idea to test each led to ensure you did not accidentally break a wire or short something out while twisting up that tape. I used a 9 volt battery with a 500ohm resistor in series with the LED’s to test quickly.

Now that all the segments are ready to go, I lay them out on the cardboard and mark each end of the glue-sticks, and where the wire pokes out with a marker. I then used my awl to punch holes though the cardboard so that the wires can pass though. Finally I used hot glue to mount each segment in its proper place, and on the back side put a dab of glue where each wire comes though.

All that is left for the display is wiring up the LED’s and their current limiting resistors. Each side of the glue-stick is wired in series with each other. Current flows into the anode of one LED, out of its cathode, into the anode of the second LED, out of its cathode though the resistor to ground. (yes I know its backwards but its easier to explain) In order to do this I grabbed my 9 volt and resistor and found the anode and cathode of both LED’s in a segment, twisted the appropriate wire leads together and soldered.
I solder the current limiting resistor to the negative side of the LED series pair and use a bit of cellophane tape to hold down the wires once I am done. From here you should be able to connect each segment up and control the display. But that means you need 7 leads running to your micro controller, and if you wanted another display, well that’s 7 more leads. In order to make this thing easily controlled and easily expanded I will add some simple circuitry.
Making the Controller:

The heart of the circuit is the 74HC595 serial to parallel shift register. This handy little device lets us control the display using a total of 5 wires, and we can chain as many displays as we want without increasing wire count. Shift registers are pretty simple devices to operate, in the case of the 595 you have to worry about three things.
Storage or Latch:
The 74HC595 contains an extra register called the storage register. This feature means you can wait until all the bits have shuffled in before letting them go to output, it also means once the output is in storage, you do not have to update it again until you need to change it. Before you can send data you must lower (ground) the Storage clock or Latch pin. Once you are done sending data you then raise it (+5v) to set the storage register and show output.
Serial Data:
you are going to be sending data 1 bit at a time from your micro controller to the shift register though this input. Have your MCU set a pin high or low then toggle the serial clock.
Serial Clock:
Once your bit is set, a transition from low to high on this input sends the data into the shift register.
As data comes in serially it is sent though a chain of filp-flop circuits, which among other uses forms a basic memory. The 74HC595 is an 8 bit device, so if you lower the latch, send 8 bits to it serially then raise the latch, you would see all 8 bits at once on the chip’s output. This converts serial data to parallel data.
One has to keep the shift register’s absolute max values in mind. Typically this chip will let you pass about 20 milliamps per out put pin, which sounds great for driving LED’s. The catch though is that the entire device can only handle about 70 milliamps before going out of spec. Each one of my segments is going to be drawing about 30 milliamps each. Though these chips can put up with some abuse, this is way out of spec.
To deal with the current required by the LED’s you could use a proper LED driver/sink. There a ton of them out there, but I do not have any. I do have a pile of transistors that can handle 10x that current and more with no issue. This setup is an improper version of transistor as a switch, but will work for a small display and saves the headache of inverted data. More importantly it will let my shift register control each segment with a fraction of the current while the transistor does the heavy lifting.

(click for large version of schematic)
From here everything just needs to be wired up. This could be done pretty easily on a piece of perforated circuit board. If you are like me, or just out of perfboard, and the closest radio shack is an hour away, and you already have the wire wrap out … well you could “dead bug “and solder it. Components are secured into place, and connections are insulated with hot glue and tape.


In order for the display to communicate to your MCU I used a section of 5 conductor ribbon cable. The wires are in the following order. +5, Ground, Data, Latch, Clock. For the display to connect to another display I wired up a little header with +5, Gound, Data, Latch, and Clock, BUT the data is no longer coming from the MCU. It is now being sent by pin 9 of the shift register. Since the shift register is 8 bits if I have 2 of them chained in this way I can then send 16 bits of data, 8 of which will “spill out” of the first register on pin 9 and into the input of a second or third or fourth register.
Since the 74HC595 is one of the most popular shift registers out there, you will be able to find additional documentation for whatever micro controller you are using. I happen to have my arduino near buy as usual so I just whipped up some simple copy n paste software that uses the shift out function.

// hot glue seven segment display test

// define pins used
#define dataPin 2
#define latchPin 3
#define clockPin 4

// define light patterns
byte one = B01100000;
byte two = B11011010;
byte three = B11110010;
byte four = B11100100;
byte five = B10110110;
byte six = B10111110;
byte seven = B01100010;
byte eight = B11111110;
byte nine = B11100110;
byte zero = B01111110;

void setup()
{
pinMode(dataPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}

void loop()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, one);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, two);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, three);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, four);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, five);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, six);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, seven);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, eight);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, nine);
digitalWrite(latchPin, HIGH);
delay(2000);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, zero);
digitalWrite(latchPin, HIGH);
delay(2000);
}

I define  a bunch of bytes, each one of those bits is a segment on (1) or off (0). Since we are only using 7 out of 8 bits, bit 0 is always going to be 0, though this could be a decimal point or otherwise. When I wired the segments I started at the top and wired it to bit 1 of the shift registers output, and went in a clockwise motion leaving bit 7 as the center segment. Of course when I flipped the display around I quickly noticed that I had actually wired it counter clockwise (oops). This does not really matter, you just need to know which segment is wired to each bit.
In the setup function I just make my micro controller pins as outputs
and In the loop function I:
Lower the latch
use shift out to send 1 byte (8 bits of data) to the shift register
Raise the latch to see the results
Pause for 2 seconds and go to the next number
And there you go! A giant 7 segment display made out of glue sticks, easy to control, easy to chain, and while not the most awesome thing ever, I hope it inspires you in your future projects.

Filed under: led hacks, tool hacks



Posted on Thu, 25 Aug 2011 21:54:56 +0000 at http://feedproxy.google.com/~r/hackaday/LgoM/~3/JnmI_tuOg40/
Comments: http://hackaday.com/2011/08/25/large-7-segment-display-made-from-glue/#comments
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…