Pages: [1] 2 3   Go Down
Author Topic: 'High' voltage 7-seg LED interface  (Read 2264 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hay all,

I need to interface 3 2.3" 7-seg displays to the Arduino. I'd like to use something like the MAX72xx but the forward voltage of the segments is 9v @ 20mA.

I have been looking around but as yet not found anything that would work. Would it be possible to connect transistors (MOSFET or NPN?) to the MAX72xx to provide the higher voltage needed? Or am I missing the perfect replacement somewhere!

Cheers!
Logged

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 121
Posts: 8458
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Assuming the LEDs are commom anode any driver/darlington type chip will work you just have to raise the voltage they are driven with.

As you say those LEDs have about 9v forward voltage so if you run them from say 12v things should work fine.

If you have a look at my speedo project http://www.robgray.com/grayit/embedded/current/speedo/schem/index.php and check out the schematic you'll see that I'm using TPIC68595 high-current shift regs and the LED's anodes are connected to the pre-regulator (battery) voltage which is a nominal 12v.

At 20mA the high-current drivers probably aren't really required but it seemed like a good idea at the time.
« Last Edit: July 20, 2010, 06:20:32 pm by graynomad » Logged

Rob Gray aka the GRAYnomad www.robgray.com

Somewhere in Arizona
Offline Offline
God Member
*****
Karma: 0
Posts: 725
Arduino must be a drug, because I'm addicted!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I love the ULN2803A chips... There are 8 transistors per chip, so you could power a 7 segment with a decimal with one chip and your controller. Keep in mynd the ULN2803A is only an array of transistors, and that you need to use another chip to actually send the signals. You would need 420mA to power 21 segments, so a 1A power brick (REGULATED!!!) would be more than enough...

This solution ONLY works if the displays are common ANODE (One posotive, and seven negatives, one for each segment.)!
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks, annoyingly mine are common cathode (sorry should have said). I'll look into other options as well, using these ideas as starting points. But if anyone else knows a solutions I would be more then happy to hear!
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If I were to use a MAX72xx, could I use some form of transistor on the output to shift the voltage level? Or alternatively, is there another library for Arduino that would enable multiplexing from the board itself?
« Last Edit: July 21, 2010, 09:00:54 am by smartroad » Logged

Somewhere in Arizona
Offline Offline
God Member
*****
Karma: 0
Posts: 725
Arduino must be a drug, because I'm addicted!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Well, you CAN do that, but I think Shift Registers are easier. You can use 21 NPN transistors to power the segments from the shift registers... You can probably find something like the ULN2803A, but they show ALL pins. I will also look for these! Basically you needs at least 21 NPN transistors...
Logged

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 121
Posts: 8458
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

How about this then?



It inverts the logic but that doesn't matter. Off the top of my head mind, I haven't tried it but it should work, write high from Arduino and the 2803 shorts across the segment thus turning it off. Write low and 2803 turns off and the segment lights via the resistor.

Quote
is there another library for Arduino
Library or not you still have to handle the hardware. Anyway the multiplexing is easy once you get your head around it.

Actually why bother, just use three TPIC68595s (high-current version of the 595 SR) and don't mux, three pins, three chips and you're done, or are you short of board space (unlikely with those huge displays).
« Last Edit: July 21, 2010, 09:35:14 am by graynomad » Logged

Rob Gray aka the GRAYnomad www.robgray.com

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

That is the idea I was just fleshing out Graynomad! I was just trying to figure out any reason why it wouldn't work.

Previously had thought of using individual darlingtons:



(Ignore that they are the wrong displays and that I haven't put any resistors in place and they are the wrong model of transistor, this was just to get an overview of the result, not the finished product smiley)
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

"Anyway the multiplexing is easy once you get your head around it."

Don't exactly have a problem with it, just concerned with the lack of pins on the Arduino and that some are 'reserved'.

Was reading up how to bit-bang the ports and I need a full 8 bit port, but the only one available I am warned of of using as it is the TX/RX pins for programming. I have ideas in place to mix ports but it would just be easier if I could use just that one. As an aside, I am not using serial for the project, would hamper the programming of the chip if used the RX as an output?
Logged

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 121
Posts: 8458
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Your post and my edit passed in hyperspace, so just on case you missed it

Quote
Actually why bother, just use three TPIC68595s (high-current version of the 595 SR) and don't mux, three pins, three chips and you're done, or are you short of board space (unlikely with those huge displays).

Solves your pin problem.
« Last Edit: July 21, 2010, 09:44:54 am by graynomad » Logged

Rob Gray aka the GRAYnomad www.robgray.com

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I can't find TPIC68595 on either Farnell or RS Components, am I being exceedingly dumb here? :LOL:
Logged

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 121
Posts: 8458
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Oops, my bad.

TPIC6[glow]A[/glow]595

Well it sounds almost the same  :-[

Here's a data sheet

http://www.robgray.com/grayit/embedded/components/datasheets/TPIC6B595.pdf

And I just realised that I've used the

TPIC6[glow]B[/glow]595

That looks almost the same.

Both available at Farnell and Digikey.

Sorry about that, I cut and pasted from my schematic, obviously that's wrong as well.
Logged

Rob Gray aka the GRAYnomad www.robgray.com

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

:lol: Graynomad

Ordered a couple of the A's. Now I just need to figure out how to get the info to them!

Cheers for your help guys!
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 56
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes! Got one display working just to make sure that it all works and to test out coding.

So cool to see a 7-seg display connected by only 3 wires!

Next is to figure out how to split an int into its base units. Have to get the minutes from an int var and pull out the 10's and 1's from it. Thinking cap on!
Logged

nr Bundaberg, Australia
Offline Offline
Tesla Member
***
Karma: 121
Posts: 8458
Scattered showers my arse -- Noah, 2348BC.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Try

Code:
tens = value / 10;
units = value % 10;
Logged

Rob Gray aka the GRAYnomad www.robgray.com

Pages: [1] 2 3   Go Up
Jump to: