How to read an equipment's 7 segment display

Thread Starter

RodSTAR

Joined Jan 3, 2008
15
Hello guys,
I want to read the pins from a 7 segment display (5V DC) from an old working equipment. My purpose is to remotely monitor the value of that display (equipment status). Preliminary I plan to use an Arduino to software decode pins and send value (0-9) to network.

I'm mostly a software guy, so the question is:

Question 1/2: a or b?
a)Would it be safe if I just connect display's pins directly to Arduino's pins,
b)or should I add some resistances or even optocouplers to be read by Arduino's pins?

Question 2/2: In the case of using a Parallel to Serial IC, is there some one that already decodes 7 segment displays or am I just limited to a 74HC165 general purpose shift register?
 

MrChips

Joined Oct 2, 2009
34,807
I have done this already but you really need to state the make and model of the equipment that you want to read.
 

shteii01

Joined Feb 19, 2010
4,644
I have done this already but you really need to state the make and model of the equipment that you want to read.
Why?
They already said the equipment is using 5V logic. Arduino is 5V system that is also using 5V logic.

The only real question is how much current the original equipment outputting to the original led.
 

dl324

Joined Mar 30, 2015
18,326
a)Would it be safe if I just connect display's pins directly to Arduino's pins
You could do this if the Arduino and the display signals use the same the same voltage.

We need more information regarding the display. If it's multi-digit, it might be multiplexed. You also need to consider if '6' and '9' have 'tails'.
 

MrChips

Joined Oct 2, 2009
34,807
Why?
They already said the equipment is using 5V logic. Arduino is 5V system that is also using 5V logic.

The only real question is how much current the original equipment outputting to the original led.
Because you need to know how the seven-segment displays are interfaced.
Is it multiplexed or non-multiplexed?
Is it common anode or common cathode?
Is it BCD or straight seven-segment?
 

Thread Starter

RodSTAR

Joined Jan 3, 2008
15
I have done this already but you really need to state the make and model of the equipment that you want to read.
Well, it's a YPV 4.5kW chinese servodrive.

You could do this if the Arduino and the display signals use the same the same voltage.

We need more information regarding the display. If it's multi-digit, it might be multiplexed. You also need to consider if '6' and '9' have 'tails'.
I've measured it and it rates 4~10 mA.
It's a single digital display, so it's not multiplexed (that's a good luck).
They play "tails" to '6' and '9' digits.

Because you need to know how the seven-segment displays are interfaced.
Is it multiplexed or non-multiplexed?
Is it common anode or common cathode?
Is it BCD or straight seven-segment?
Is it multiplexed or non-multiplexed?: it's non-multiplexed
Is it common anode or common cathode?: no idea yet, but not a problem according to case, i will read 5v as active or inactive.
Is it BCD or straight seven-segment? not idea if uses a BCD or comes directly from the DSP processor, but I think that point irrelevant to my question.

So,
if that 5V segments drive less than 10 mA would it be safe to connect them direct to my 5V Arduino?
 
Last edited:

dl324

Joined Mar 30, 2015
18,326
I've measured it and it rates 4~10 mA.
It doesn't matter what segment current is. You need to tap into the control signals.

If it's common anode, you need to invert the segment signal. With common cathode, you use the signal directly.
They play "tails" to '6' and '9' digits.
A lookup table to decode the digit on your Arduino might be the easiest to implement.

You still need to determine the voltage levels from the display. If it's the same as the Arduino voltage, interface is straightforward; otherwise, level shifters may be necessary.
 

AnalogKid

Joined Aug 1, 2013
12,126
You might consider that we're not asking the same question repeatedly for the fun of it.

No matter what the display type is, the voltage at the display pins are almost certainly *not* 5 V TTL logic levels. For example, if the display is common anode and the anode is tied to an internal 8 V so the display current does not generate heat in the 5 V regulator, then the on and off voltages on the segment pins are 6 V and 8 V. Even if the display is running on the regulated 5 V, the pin voltages are 5 V and 3 V (or 5 V minus whatever the forward voltage drop if a segment LED is). If the display is common cathode and the cathode is at ground, the pins are at 0 V (with no pull-down impedance) and 2 V, not high enough to guarantee a logic 1 at an input.

ak
 

takao21203

Joined Apr 28, 2012
3,702
This can not work since the LED voltage will be 2 volts or less. If there are resistors you can tap before the resistors. Can you show the PCB?
 

GopherT

Joined Nov 23, 2012
8,009
The ancient MM74C915 could be fun to work into this project! A 7-segment to BCD converter. I have two but I have no idea if they work or where they came from.
 

Thread Starter

RodSTAR

Joined Jan 3, 2008
15
In the software side, yes, i will read a lookup table to determine the corresponding digit indeed it's the 1st thing a made.
I have just dismembered the servodrive: the pins come out from an ACTEL A54SX16A FPGA RUNNING AT 5V. Between FPGA pins and the display pins there is a 470ohms resistor for each segment. (... 8 resistors (including the dot '.' segment)). The segment display says KINGBRIGHT SA56-11HWA, the datasheet description says: "Common Anode, Rt. Hand Decimal."

So with that info, what would you advice me?
Would it be prudent to intercept the trace before or after the resistors?

thx ;]
 

Thread Starter

RodSTAR

Joined Jan 3, 2008
15
ok, i'll solder wires to the SMD resistors in the fpga side and play with Arduino. Cross your fingers for me. If i'm still alive i'll tell you the results with text, pictures and video, if I find my cell phone.
thx
 

takao21203

Joined Apr 28, 2012
3,702
you need negative logic.

If the segment is on the pin on the IC will be L otherwise it will be Vcc (5V) - VLED of less than 2v at low currents.

This may get you sort of a problem since you will not see full H level.

Instead you need to use internal pullup or add external resistors.
 

Thread Starter

RodSTAR

Joined Jan 3, 2008
15
you need negative logic.

If the segment is on the pin on the IC will be L otherwise it will be Vcc (5V) - VLED of less than 2v at low currents.

This may get you sort of a problem since you will not see full H level.

Instead you need to use internal pullup or add external resistors.
If H level is not enough, would a level shifter do the job?
 

dl324

Joined Mar 30, 2015
18,326
If H level is not enough, would a level shifter do the job?
If you're limited to connecting to the pins on the display, you need to incorporate some sort of level shifter. If you can connect further upstream, you might be able to avoid that issue.
 
Top