3461BS, 12 pins, 7 segments, 4 digits help needed

Hello all, thank you for dropping in.
I am new to Arduino, coming from a background in Game Art and Design.

When I assembled my starterkit, I figured that numerical displays would come in handy.
Without any prior knowledge about how to look stuff up to see what is commonly used etc, I figured that anything would be as good as anything else for a beginner.
(Gotta start somewhere)

I have bought a 4 digit, 7 segment display with 12 connection pins.
On it, there is the serial "3461BS"

Every tutorial and resource I find works with a 16 pin system, or doesnt list any graphics/photos of how to connect the component with my Arduino Uno.
I was hoping to use it in combination with my Shiftregister, an "74HC595N", so that it doesnt use up all my connection ports.
I do not have a shield or anything, so I`d have to connect everything via my breadboard.

Does anybody have tutorials or resources to advice?
Or can anyone with the same components provide some photos of how to connect these parts?
I am very much a visual thinker, so a dry electronic schematic isn't much help I`m afraid..

Thanks in advance!

PS:
I found these resources already, but they weren't much help with my current level of knowledge.
http://forum.arduino.cc/index.php?topic=139675.0
http://learn.parallax.com/4-digit-7-segment-led-display-arduino-demo
http://duinobits.com/ultimate-starter-kit-guide/4-digit-7-segment-led-display/
http://www.datasheetarchive.com/dl/Datasheets-SW20/DSASW00381837.pdf

1 Like

What you'll find out is that you have 8 segment pins and 4 digit pins.
The 8 segment pins connect all the As together, all the Bs, etc:

AA
F B
F B
GG
E C
E C
DD DP

The 4 digit pins will connect either the anodes or the cathodes of the segments of each digit together:
--|>|-- A Common Anode - the left side of the all the LEDs are connected
--|>|-- B
--|>|-- C Common Cathode - the right side of all the LEDs are connected
--|>|-- D
--|>|-- E
--|>|-- F
--|>|-- G
--|>|-- DP

So to drive it - you generally drive the parallel segment lines, say with HC595 shift register, and enable the common anode or the common cathode. That lights up one digit.
Then turn off the common pin, drive the next set of segment info, turn on the next common pin.
Repeat for all 4. Then start over.
If you leave each digit on for 6mS, that will update the display every 24mS, for a ~40Hz refresh rate. Persistence of vision will then trick your eye into seeing all 4 displayed at once.

To drive 1 digit, you are either sourcing up to 160mA into a common anode, or sinking 160mA from a common cathode. Easiest way to do that is to have the 595 output highs for an on-segment, and use a NPN transistor to sink current from a digit.
Be sure to use a current limit resistor between the 595 output and the segment pin it connects to.
595 is only rated for 70mA total - a better shift register is cd74AC164 which can source up to 24mA per output instead.

Ah, that sounds like something I can manage.

Im just having a hard time visualizing how to connect the various pins together on my breadboards. Also, if I understand you correctly; Id need another shift register to use my Digit segments properly?

Connecting everything up on the breadboard, I can't explain that in a few sentences in the forum.
You have 12 pins. You need 8 current limit resistors. You need 4 transistors with a resistor to limit current into their base pins. Do some experimenting, see what works for you.

Arduino can drive all pins - or you can use shift or two drive the segments and the cathode control signals.

Thank you for your time and patience!
With these drawings, I think I should be able to tinker some more with this.

I appreciate it!

Tinkering is fine, but what you need for such displays, is a MAX7219. You should move to that before concerning yourself with discrete shift registers. Actually, programming the MAX7219 is exactly the same in most respects, as programming shift registers as that is what it contains internally, but it performs all the display multiplexing for you - you just tell it how you want the LEDs to be driven and the data to show on the matrixed display.

And the MAX7219 coincidentally features on the very page you cited! Well, it is no coincidence as the two components automatically go together.

Some people are under the misunderstanding that a common cathode displays are necessary to be used with a MAX7219. That is complete nonsense.

Ah, the guy who gave us a one-day lesson on Arduino said that the 74HC595N was sort of the same thing as the MAX7219, so I took his word for it.
I do have a MAX7219CNG that came with my 8*8 dot matrix, but I was planning on using these displays in the same project.

Do I need an extra MAX chip now, or can I somehow route it via the same one?

Well as it happens, two MAX7219s require no more pins on the Arduino to interface, than one! (They "chain" from one to the next.)

A MAX7219 is fully occupied with an 8 by 8 matrix (64 LEDs), but a second one could drive two 4 digit displays (32 segments each).

Oh that is pretty good to know.
I`ll have to order a second one then and find some tutorials on how that exactly works.

Thanks Paul!

Note my comment regarding common anode 7-segment displays.

With common cathode displays, the MAX7219 has one byte for each digit. In fact, it has a character generator which you can enable so that it encodes a four-bit or "nybble" value into a corresponding segment pattern, but only for digits 0 to 9, plus "H", "E", "L", "P", "-" and blank, so that is not terribly useful anyway.

If you use it for common anode displays, what happens is that each of the eight data bytes in the MAX7219 will contain the bits for a particular segment for each of the eight (if connected) digits, so the code to drive it is just a trifle more tricky and there may not be libraries designed for that. Not that I tend to use libraries anyway - I find the MAX7219 much easier to "bit-bang" without.