2

I got two of these type of 7 segments display in LCD material.

enter image description here

And here is the datasheet enter image description here

I tried to power up to UNO, it can make the segment on, while a second, the segment go off, but the pinMode does not changed.

asked Nov 15, 2017 at 8:48

2 Answers 2

1

that's a controller-less dynamic (mutiplexed) display, with 4 coms.

So you will to program the mcu to do a lot:

1) the com pins are driven with 1/4 dc signal sequentially;

2) the seg pins are driven with 1/3 bias voltage. out-of-phase to be dark and in-phase to be transparent (not lit).

the way to do it is to:

  1. put segment info in a buffer;

  2. write a display update routine that scans digits and updates the com/seg pins according to the current digit's segment information;

  3. call that display update routine periodically, preferrably from a timer isr.

the display update routine would be similar to an led display routine - an example of that (for led) would be here (https://dannyelectronics.wordpress.com/2017/06/30/a-more-flexible-driver-for-7-segment-leds/), but more complex due to the 4 com pins and bias generation.

it is much easier to pick a mcu with built-in lcd driver and program that mcu as a display controller / slave taking in information from a master (in this case your arduino).

answered Nov 15, 2017 at 11:13
2

Driving an LCD display is nothing like driving an LED display. You need to provide an alternating current to the right segments at the right time.

It is possible with an Arduino on a simple display like this, but not easy. Better is to use a chip that has a proper LCD display interface, such as the MSP430 "F" series (the FRAM ones).

To do it on an Arduino you need to treat it like a common anode matrix on one pass, and a common cathode matrix on the next pass, and do that repeatedly and rapidly.

That is, set COM1 HIGH and the other COMx pins LOW, and the segments you want on LOW and the others HIGH, then do the same with COM2, etc. Then go back to the start and invert the logic, so set COM1 LOW and the other COMx HIGH, and your chosen segments HIGH.

It is best to do this from within a timer interrupt so that you can get good regular updates without your program causing delays.

answered Nov 15, 2017 at 10:11
5
  • But the issue as I can make a segment as ON, after about 0.5 second, the segment will auto off in fade out, but the arduino pin status did not changed. PS: I am using UNO. Commented Nov 16, 2017 at 9:28
  • 3
    That is because you aren't reversing the current like I instruct. Commented Nov 16, 2017 at 9:29
  • Could you please explain more ? or any schematic could provide ? Commented Nov 16, 2017 at 11:07
  • I thought I'd explained it perfectly clearly... Commented Nov 16, 2017 at 12:16
  • @AllenChak See first EEVblog #1045 - How To Drive an LCD for a basic explanation. Commented Jul 2, 2024 at 14:49

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.