I got two of these type of 7 segments display in LCD material.
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.
2 Answers 2
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:
put segment info in a buffer;
write a display update routine that scans digits and updates the com/seg pins according to the current digit's segment information;
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).
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.
-
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.Allen Chak– Allen Chak2017年11月16日 09:28:36 +00:00Commented Nov 16, 2017 at 9:28
-
3That is because you aren't reversing the current like I instruct.Majenko– Majenko2017年11月16日 09:29:30 +00:00Commented Nov 16, 2017 at 9:29
-
Could you please explain more ? or any schematic could provide ?Allen Chak– Allen Chak2017年11月16日 11:07:47 +00:00Commented Nov 16, 2017 at 11:07
-
I thought I'd explained it perfectly clearly...Majenko– Majenko2017年11月16日 12:16:18 +00:00Commented Nov 16, 2017 at 12:16
-
@AllenChak See first EEVblog #1045 - How To Drive an LCD for a basic explanation.Serge Stroobandt– Serge Stroobandt2024年07月02日 14:49:28 +00:00Commented Jul 2, 2024 at 14:49