Camera reading 7-segment, Arduino giving text output on LCD?

What the title says, basically... I have control boxes which when the machine controlled fails, throws a two-digit code on a seven-segment display.

For simplicity, it would be nice to just have a display saying what was wrong instead, not just for me, but for other employees here too who don't know the codes.

I guess I could tap into the seven-segment display's wiring and get the direct voltages, but the PCB it's on costs $700, and it can fry the sisterboard in the same assy at the same price too, so..

A camera can read what bowling pins stands and get a count from that, so I guess this would be rather similar.

A camera is overkill here IMHO. Assuming you have an LED display, you could attach phototransistors to the segments. Or is it an LCD display?

Yes while a camera might sound initially simple it is not always as simple as you would like. The Arduino is not well suited to this sort of thing, if you want to go down the camera route then I would suggest using a Raspberry Pi.

Good old 7-segment. You can even feel the edges of each segment with the fingertip.

You can see the two separate 7-segment displays soldered on the board and with the box containing the PCBs here.

The PCB, which I bet you can figure out from component sizes, is around 30x30cm, the 7-segments are about 2cm tall, 1cm wide each.

It also contains two dots behind each full 7-segment to show which machine is failing, as these boxes each control two machines.

Might be that getting the 7-segment input voltages directly is easier and cheaper to do, if I dare to solder on the PCBs...

Might be that getting the 7-segment input voltages directly is easier and cheaper to do, if I dare to solder on the PCBs...

That is in fact, the only sensible way to do it.

There are three prerequisites:

  • You must be competent in soldering. You will have to make the connections using properly insulated ribbon wire. In fact, it would be most sensible to solder header pins to each point on the circuit you monitor, and use ribbon strips with "Dupont" connectors so that they can be easily unplugged.
  • You must identify the ground line in the device to common to your additional circuitry. You must identify not the connections to the displays, but the connections to the resistors that limit current to the displays. The voltage on the displays will be an insufficient logic level for the Arduino to switch.
  • You must use a 47k resistor to isolate each segment line from the display to your circuit.

That is in fact, the only sensible way to do it.

I agree 100% with that.

Be aware that the display might be multiplexed. If it is the good news is that you only need one wire per segment in total not one wire per segment per display. Plus of course the common connector. The best way to tell if they are is to use a scope. Failing that rapid shaking of the device will reveal multiplexing as the displays will look like individual segments where as a non multiplexed display just looks like a blur. However given the size of the board you might not be able to do this so look at the display through a mirror and move the mirror rapidly for the test.

Note also you might be dealing with common anode or common cathode displays.

Can't we have a close up picture of the displays and the components right next to them? There are markings on the PCB, which along with the components, might reveal more.