Author Topic: LCD Display  (Read 7667 times)

0 Members and 1 Guest are viewing this topic.

Offline skillz21Topic starter

  • Frequent Contributor
  • **
  • Posts: 311
  • Country: au
LCD Display
« on: February 05, 2016, 11:43:08 pm »
Hey Guys
All over YouTube I have seen people use LCD displays they have built from scratch. but so far I have not been able to find a way to build one. So I am looking for a IC or something that can control a display that is built entirely out of LEDs. they do not need to be RGB. I am still a beginner so B&W is fine. Any tips? Help is greatly appreciated.
Thanks!
 

Offline uncle_bob

  • Supporter
  • ****
  • Posts: 2441
  • Country: us
Re: LCD Display
« Reply #1 on: February 06, 2016, 02:14:44 am »
Hi

Ok, part way through the post you switch from LCD to LED to RGB. I'm going to *assume* you are after a monochrome LED array. If that is not correct, let me know.

The easy way to do it is with what is called row / column addressing. You hook each LED anodes to one of the row wires. Each LED cathode goes to one of the column wires. If you pull a row wire low and a column wire high, you turn on one (and only one) LED. By driving one or the other set of wires out of a parallel port and "scanning" the other set of wires, you create an image on the display.

The gotcha with this approach is that it takes a while to get through the display. The maximum duty cycle on each LED is one over the number of scan wires. That may or may not be a problem for you. It stopped a project I was working on dead back in 1974. Check it before you go crazy building things !!!!! Also be careful of just how much current your scan lines will be running.

If scanning is out, then you are stuck with one wire to each LED. That is a LOT of wires, since your display probably will have a LOT of LED's. The drivers are not a big deal in a single LED per driver system. Most of the time logic gates work ok.

So understanding all this:

How many dots do you want to do? A reasonable display will have at least a few thousand dots. That's a lot of things to deal with. On a packaged display, they use driver chips that handle what needs to be done. Since the chips are never used by anybody other than display manufacturers, the only way to get them is to take a hammer to a display. The rest of us code stuff into an MCU or an FPGA if we are not using a packaged display.

Bob
 

Offline skillz21Topic starter

  • Frequent Contributor
  • **
  • Posts: 311
  • Country: au
Re: LCD Display
« Reply #2 on: February 06, 2016, 05:04:52 am »
oh! I'm so sorry I didn't notice that. yes basically I am looking for a LED monochrome display driver. and I don't want anything big as I said before I am a beginner and a small display. for example 10x20 or 20x20. for me that would be amazing.
Thanks
« Last Edit: February 06, 2016, 05:08:48 am by skillz21 »
 

Offline SL4P

  • Super Contributor
  • ***
  • Posts: 2318
  • Country: au
  • There's more value if you figure it out yourself!
Re: LCD Display
« Reply #3 on: February 06, 2016, 07:04:21 am »
A decent starting point for hundreds of worked examples would be to use google - Arduino LED matrix
There will be all sorts of single colour, RG, and RGB displays - with an equally varied range of methods for driving them!
What you're looking for is fundamentally the same as a LED message display - except you may want to display something other than text.

There's a few areas you'll need to learn and understand - multiplexing, creating fonts, or geometry for real-time shapes etc.  It's  a great learning project.
Don't ask a question if you aren't willing to listen to the answer.
 

Offline skillz21Topic starter

  • Frequent Contributor
  • **
  • Posts: 311
  • Country: au
Re: LCD Display
« Reply #4 on: February 06, 2016, 10:51:37 am »
A decent starting point for hundreds of worked examples would be to use google - Arduino LED matrix
There will be all sorts of single colour, RG, and RGB displays - with an equally varied range of methods for driving them!
What you're looking for is fundamentally the same as a LED message display - except you may want to display something other than text.

There's a few areas you'll need to learn and understand - multiplexing, creating fonts, or geometry for real-time shapes etc.  It's  a great learning project.
Thanks for the search term, I will search it up now
Thanks!
 

Offline james2k2

  • Contributor
  • Posts: 44
Re: LCD Display
« Reply #5 on: February 06, 2016, 06:02:49 pm »
You could always look at using the WS2812B strips/matrices. I did a 14x10 display using them with a ws2812 to dmx board (i made some rgb bars to use at my mobile discos). But there are lots of USB controllers available for those particular chips, and software.
 

Offline skillz21Topic starter

  • Frequent Contributor
  • **
  • Posts: 311
  • Country: au
Re: LCD Display
« Reply #6 on: February 06, 2016, 09:44:11 pm »
You could always look at using the WS2812B strips/matrices. I did a 14x10 display using them with a ws2812 to dmx board (i made some rgb bars to use at my mobile discos). But there are lots of USB controllers available for those particular chips, and software.
Yeah, but where do I buy it? I saw a video of it, but I couldn't find them. No offence but I wasn't looking for a solution like that. I also heard the strips were a bit costly too.
Thanks for the idea anyway. :-+
 

Offline uncle_bob

  • Supporter
  • ****
  • Posts: 2441
  • Country: us
Re: LCD Display
« Reply #7 on: February 06, 2016, 09:52:55 pm »
Hi

If you only need a hundred to two hundred LED's that may be inside what you can lay out and build yourself. A lot depends on how much work you want to do.

The same X / Y select process that works with driving both sides of the LED can work other ways. A SOT-23 (or SC-70) NAND gate can do the trick as well. The LED goes on the output along with a limit resistor. Your row select goes to one input. Your column select goes to the other one. You have a total of 20 lines for a 10x10 array. That's inside the I/O specs on a lot of MCU boards. Make up the array as a shield and plug it in.

Bob
 

Offline skillz21Topic starter

  • Frequent Contributor
  • **
  • Posts: 311
  • Country: au
Re: LCD Display
« Reply #8 on: February 10, 2016, 04:37:53 am »
Hi

If you only need a hundred to two hundred LED's that may be inside what you can lay out and build yourself. A lot depends on how much work you want to do.

The same X / Y select process that works with driving both sides of the LED can work other ways. A SOT-23 (or SC-70) NAND gate can do the trick as well. The LED goes on the output along with a limit resistor. Your row select goes to one input. Your column select goes to the other one. You have a total of 20 lines for a 10x10 array. That's inside the I/O specs on a lot of MCU boards. Make up the array as a shield and plug it in.

Bob
Could you please explain what u mean?
 

Offline Brumby

  • Supporter
  • ****
  • Posts: 12380
  • Country: au
Re: LCD Display
« Reply #9 on: February 10, 2016, 05:32:03 am »
You could build your own matrix of LEDs.  This is what's in an 8 x 8 matrix unit - but it's a circuit diagram for building your own:



To make a particular LED light up, you simply apply a positive voltage to the row it's in and a negative to the column it's in.  IF the supply is not current limited, make sure you have a suitable resistor for each row (or for each column - you don't need both)

You could lay out your own matrix with individual LEDs - to whatever size you want.
  8 rows by 8 columns = 64 LEDs in a square layout, requiring only 16 control wires
  10 rows by 10 columns = 100 LEDs in a square layout, requiring only 20 control wires
  12 rows by 8 columns = 96 LEDs in a rectangular layout, requiring only 20 control wires
 

Online Ian.M

  • Super Contributor
  • ***
  • Posts: 13076
Re: LCD Display
« Reply #10 on: February 10, 2016, 06:32:17 am »
Take a look at the TPIC6A595.  Its a 74HC595 style SIPO shift register and power output stages all in the same package, and is ideal for driving the cathode common lines of a mono* LED matrix off the SPI port of any MCU.

* or an 8 colour RGB matrix.  Its not so good if you want individual brightness control though with a fast enough MCU you can do bit angle modulation of individual LED brightness, with an acceptable number of intensity levels for moderate matrix sizes,

It gets hard to get enough brightness if the multiplexing ratio is too high due to the ever decreasing duty cycle.  8:1 (12.5% duty cycle) or 10:1 (10% duty cycle) is about as far as its sane to go, so if you want to drive a 16x16 matrix, its better to wire it in two halves and drive it as an 8x32 matrix - hence the need for lots of high current outputs that the TPIC6C595 provides.

You need to put the current limiting resistors between the cathode commons and the '595 chips as LEDs that are on at the same time in the multiplexing cycle must not share a resistor.
« Last Edit: February 10, 2016, 07:41:13 am by Ian.M »
 

Offline Blackwarrior

  • Supporter
  • ****
  • Posts: 39
  • Country: gb
Re: LCD Display
« Reply #11 on: February 10, 2016, 06:44:19 am »
The Max7219 is another great chip for an 8x8 matrix, also libraries in arduino for these too. Such as this display below..

http://www.ebay.co.uk/itm/like/311419148750?

 

Offline alank2

  • Super Contributor
  • ***
  • Posts: 2196
Re: LCD Display
« Reply #12 on: February 10, 2016, 01:13:48 pm »
If you can deal with TQFP52, you can get the HT1632C driver on eBay pretty cheap.  It can do 32x8 or 24x16.
 

Offline uncle_bob

  • Supporter
  • ****
  • Posts: 2441
  • Country: us
Re: LCD Display
« Reply #13 on: February 10, 2016, 05:58:34 pm »
Hi

If you only need a hundred to two hundred LED's that may be inside what you can lay out and build yourself. A lot depends on how much work you want to do.

The same X / Y select process that works with driving both sides of the LED can work other ways. A SOT-23 (or SC-70) NAND gate can do the trick as well. The LED goes on the output along with a limit resistor. Your row select goes to one input. Your column select goes to the other one. You have a total of 20 lines for a 10x10 array. That's inside the I/O specs on a lot of MCU boards. Make up the array as a shield and plug it in.

Bob
Could you please explain what u mean?

Hi

If you use a NAND gate with two inputs, it has a truth table of:

in A       in B        out
0           0           1
0           1           1
1           0           1
1           1           0

When both input A and input B are a 1, the output goes low. The rest of the time the output is high.

If inA = row select ( x direction in the array) and inB = column select (y direction in the array) you can select any single point by pulling the right lines high.

If you wire a LED up with a series current limit resistor, you can drive it off of a logic gate.
If you wire the LED from B+ to the output of the gate, it will come on when the gate goes low.

Now when you select the row and column, an LED turns on.

One of many two input nand gates is the 74AC00. They also come in multiple single gate per package versions from all sorts of people.

Bob
 

Online Ian.M

  • Super Contributor
  • ***
  • Posts: 13076
Re: LCD Display
« Reply #14 on: February 10, 2016, 06:16:42 pm »
Why would you even want to do that?  Its got all the limitations of direct drive multiplexing, needs extra parts and connections and has no way to increase the LED current above that available from the gate to compensate for the low multiplexing duty cycle.

If you want to drive LEDs from logic gates, use latches.  e.g. the 74HC595 shift register + latch, which lets you drive  8 LEDs per chip and daisy chain many chips off the same SPI port.
 

Offline uncle_bob

  • Supporter
  • ****
  • Posts: 2441
  • Country: us
Re: LCD Display
« Reply #15 on: February 10, 2016, 10:55:19 pm »
Why would you even want to do that?  Its got all the limitations of direct drive multiplexing, needs extra parts and connections and has no way to increase the LED current above that available from the gate to compensate for the low multiplexing duty cycle.

If you want to drive LEDs from logic gates, use latches.  e.g. the 74HC595 shift register + latch, which lets you drive  8 LEDs per chip and daisy chain many chips off the same SPI port.

Hi

As an example to explain at a very basic level how a row /column multiplex works.

Bob
 

Offline skillz21Topic starter

  • Frequent Contributor
  • **
  • Posts: 311
  • Country: au
Re: LCD Display
« Reply #16 on: February 12, 2016, 10:31:38 am »
The Max7219 is another great chip for an 8x8 matrix, also libraries in arduino for these too. Such as this display below..

http://www.ebay.co.uk/itm/like/311419148750?
I like the idea of this. i checked the link and i think it will be easy to control it.(right?) Any more info on this guys? :) also could you point out an example?
« Last Edit: February 12, 2016, 10:33:24 am by skillz21 »
 

Offline mariush

  • Super Contributor
  • ***
  • Posts: 5135
  • Country: ro
  • .
Re: LCD Display
« Reply #17 on: February 13, 2016, 01:05:48 am »
Have a look at TLC5928, it's a cheap 16 channel led driver.

You connect it to a microcontroller using basic serial protocol (spi) and send 16 bits which tell the driver which led should turn on or off.

In a 8x16 or 16x16 matrix, the led driver would control one row of 16 leds at a time. Your microcontroller will turn on power to each row of leds at a time, and before it does that it sends data to the led driver telling which leds from that row should be on or off.

Here's an example on how you would do a matrix with 2 rows and each row having 16 or 32 or as many leds as you want (since the led drivers are daisy chained) - your microcontroller simply sends two bytes (16 bits) times the number of led drivers daisy chained and the bits are simply pushed from led driver to led driver as your microcontroller sends them.
Once you send all the bits required, you send the signal on the LATCH wire and all led drivers turn on or off their respective channels/leds (by sinking that pin to ground or not) and now you can send power to Vled 1 or Vled 2 ... or Vled 8 ... as many rows as you want.

You can't send power directly from the microcontroller because the pin of a microcontroller has a limited current capability (around 15-25ma) and each led may consume 10-30mA (the led driver can do up to 35mA per led, configurable using that Iref resisotr) but you can turn on an npn transistor or a mosfet which in turn will send power to those n x 16 leds.


 

microcontroller pin or shift register output pin -> small resistor to limit current going into transistor ---> npn transistor base pin   
5v or something higher than the led's forward voltage on npn transistor collector  ,  emitter connected to Vled1 or Vled 2 or whatever ... there's going to be a voltage drop between Collector pin and Emitter pin equal to Vce of the transistor which varies from transistor to transistor, but it's usually 0.1-0.2v

For more information on transistors see this link and the video below : http://www.electronics-tutorials.ws/transistor/tran_2.html



ps. There's no law saying you have to make a n x 16 matrix, you could turn on and off two rows at a time and use 8 channels for even rows and 8 channels for odd rows, so you could make a 8x8 matrix with one led driver and a small microcontroller that turns on 2 rows at a time, so each set of rows is on for 25% of the time  ... this would make sense if for example if you want a long band of 8 rows and lots of columns/pixels
« Last Edit: February 13, 2016, 01:34:52 am by mariush »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf