Go Down

Topic: Shift register and 7 segment led confusion (Read 1 time) previous topic - next topic

Hi all. I'm fairly new to the arduino and electronics. I have gone through all the projects that came with the kit and understand it all. However I am now wanting to drive a 7 segment led using a shift register.

One of the projects that came with the kit was driving 8 LEDs with a shift register which I understood as you drove the positive lead of the led high when you want it on. However with the 7 segment led I have, it has the positive as the common to the device (ie all LEDs) and you need connect the LED segments you want to light up to the negative. how can I do this with the shift register? You don't simply drive the pin low do you?

Or can I not use a shift regIster for this?

Many thanks

weirdo557

you hook up the common to +5 and write it low to turn it on, high to turn it on. it is that simple :). be sure to use current limiting resistors on the shift register outputs!

liudr


write it low to turn it on, high to turn it on. it is that simple :)


It would be simpler if you wire the common to 5V, wire one led in series with a resistor, say 220Ohm, and the end of the resistor to one shifter register output pin. You write high to turn it off and low to turn it on. That's why I don't like common anode stuff, high is off, low is on, one additional layer of understanding for newbies.

Be a little more helpful to the newbies, check what you submit!

CrossRoads

Be sure to check the current rating of the shift register as well.
A part like the 74HC595 is only good for 6mA, while a functionally equivalent TPIC6B595 is good for 150mA.
Lots of variety out there, read the data sheets and size your current limit resistors accordingly.
Check the 7-segment display - it may have a lower max current rating as well.
As  you wire it up, try and create a standard for yourself as well, such as:
   A
F    B
  G
E    C
   D   and decimal point.
In the bits you shift out:
Bit 0 (LSB) = A
1 = B
2 = C
3 = D
4 = E
5 = F
6 = G
7 (MSB)  = decimal point

This will help in debugging your code later too.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

liudr

http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf

This is the one I use. The current per output is <25mA, good enough for most LEDs.

CrossRoads

Ok, remember current limit resistors tho.
I'm looking at pages 9-10-11-12 where it shows VOL of 0.33max fovr VCC = 4.5V & IOL of 6mA.
I guess for LEDs we're not so interested in getting all way down there, just need at least down to 2.5V so the LED will turn on.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Thanks for all the help guys. That seems pretty clear now. Going to get this little project out the way then move on to something a little more ambitious.... Rgb led matrix look out!

Thank again.

CrossRoads

http://arduino.cc/forum/index.php?topic=52981
Take a look here then too.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Go Up