Go Down

Topic: Hooking up 2 7 Segments with 595 (Read 1 time) previous topic - next topic

replay

Hello!

I have been trying to set up a display using two of these 7 segment displays : http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?freeText=105591&langId=-1&storeId=10001&productId=105591&search_type=jameco&catalogId=10001&ddkey=http:StoreCatalogDrillDownView

and some 595 shift registers to be display the output of an analog read fro the arduino. I built the circuit pretty much exactly like the one shown on Paul's Electronics tutorial, except I only used 2 displays and 2 595s: http://www.sqlskills.com/blogs/paulselec/post/Arduino-cascading-shift-registers-to-drive-7-segment-displays.aspx

but when I plug my arduino into the computer it says it is drawing too much power. I do not think I need an external power source since the displays are comparable to smaller ones used in the tutorial. I have all of the common cathode pins going to ground.

Any idea what I could be doing wrong? I've never used 7 segments or shift registers before so I'm a bit lost on where to start...

Thanks!

I can put up a schematic of what I have if that would be better

johnwasser

Are you using the 220 ohm resistors between the common cathode and ground as shown in the schematic?  If not, that could significantly increase the current draw.
Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

replay

I didn't have any 220s around so I used a 330 ohm resistor. Do you think the problem could be in the way I hooked up the 7 segments?

thanks for the response!

johnwasser

My best guess is that +5 has gotten shorted to ground somehow.  :(
Send Bitcoin tips to: 1L3CTDoTgrXNA5WyF77uWqt4gUdye9mezN
Send Litecoin tips to : LVtpaq6JgJAZwvnVq3ftVeHafWkcpmuR1e

Grumpy_Mike

Quote
I can put up a schematic of what I have if that would be better

Yes please do.

Quote
My best guess is that +5 has gotten shorted to ground somehow.

I would put money on it.

replay

I rebuilt the circuit and am not getting that message anymore, so I think that was the problem. I don't have it working yet, I'm afraid I might have burned something out in the process, is there a good way to test 7 segments? I'm going to get some more parts now, I'll put up a revised schematic later

Thanks!

CrossRoads

Yes - connect the cathode to ground.
Put a piece of wire on one end of a 330 ohm resistor, connect the wire to +5V.
Touch the other resistor lead to each segment pin, each pin should  light up a segment (except the other common cathode pin, and maybe the 2nd decimal point if the part has 2).

I do the same to figure out displays that I can't find a data sheet 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.

replay

ok, so i guess the other issue is that the segments need 12 volts (the data sheet was a bit confusing and i couldn't figure out what the actual forward voltage was). i found this tutorial http://deleteaso.com/2-sparkfun%E2%80%99s-7-segment-red-65%E2%80%B3-display-and-arduino/ which seems pretty straightforward, except for how the 7 segment is connected to the external supply- does anyone have a clearer diagram of this?

thanks!

CrossRoads

Ah, that's a Big display with 5 LEDs in series.
Do you have the Common Cathode (top picture of data sheet) or the Common Anode (bottom picture)?
One is much easier (in my opinion) to work with than the other.
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.


CrossRoads

Oooh, that's too bad.
Okay, you can still pull this off - you'll need a ULN2003 (or 2803 if  you want the DP allso).
For each segment: +12V to current limit resistor to LED segment pin.
From LED segment pin connect to ULN2003 output pin.
Drive the ULN2003 input high will bring the ULN2003 output low, turning off the segment.
Drive the input low to let the segment turn on.
Create a lookup array of data to send to the shift register:

display[0] = B01000000; // turn on segments a,b,c,d,e,f
display[1] = B01111001;  turn on segments b,c
etc.

shiftout(datapin, clockpin, MSBFIRST, display
  • );

    where x is the number, letter, character, etc. you want displayed.
    0,1,2,3,4,5,6,7,8,9,A,b,C,c,d,E,F,H,J,L,P,U,u should all be recognizable
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.

replay

alright i have a couple of 2803s on hand, i will give this a try, thanks!!

Go Up