can never get a LCD to work with UNO

i have been trying for months to get a display working with a UNO ,both 2 line and 4 line sparkfun LCDs wit the common chip on board.
it lights up but theres nothing to see on the display .ive used sample progs from tronixstuff and UNO examples and arduino cookbook examples but nothing works as it should .
it should be easy with pins 4 5 6 7 8 9 connected and some V and grnd but no figures on display .
no scrolling no nothing .
i have a 10k trim pot to adjust the display but just no display figures .
help

progs upload but theres nothing on display its barren

There have been dozens (it seems like hundreds) of posts similar to yours in this forum over the past few years. It would only take a cursory look at them to see that we cannot help you unless you post the exact code that you used along with a clear photograph of your connections.

Don

knuckles:
i have been trying for months to get a display working with a UNO ,both 2 line and 4 line sparkfun LCDs wit the common chip on board.
it lights up but theres nothing to see on the display .ive used sample progs from tronixstuff and UNO examples and arduino cookbook examples but nothing works as it should .
it should be easy with pins 4 5 6 7 8 9 connected and some V and grnd but no figures on display .
no scrolling no nothing .
i have a 10k trim pot to adjust the display but just no display figures .
help

progs upload but theres nothing on display its barren

This is probably all about the pins. The sample from tronixstuff is probably the kiss of death unless you are using their shield, which I believe is unique. I assume you are not using their shield. I have a cheapo eBay shield on a tronixstuff EtherTen, and fell into the same trap. I had the first success with code from

http://www.emartee.com/product/41909/Keypad%20LCD%20Shield%20%20Arduino%20Compatible

which may help. I do not use the Emartee shield, but mine looks very like it. The first thing to do is adjust the contrast to sees black boxes.

i got some basic blocks on the display using pins 12 11, 5 4 3 2 as the example in the arduino cookbook ,contrast works ok but no symbols dancing across the blocks ...no hello world example or scroll ...

i checked the connections over and over and theyre identical to that shown in the arduino cookbook .
lcd chip is the HD44780 standard controller .
its all a bog standard setup ,with 4 pins data transfer

trying for months

Those things are fairly simple to get to work. So if it has taken you that long, you may want to think about your thought process instead.

off an on so as i have other hobbies i pursue so i dont need to examine my thought process mr smart ass .
if you dont have any usefull input.

the problem maybe out of date progs as when i compare them they are slightly different

Moderator edit for language.
Do not repeat.
Sp. "useful"

knuckles:
i checked the connections over and over and theyre identical to that shown in the arduino cookbook .
lcd chip is the HD44780 standard controller .
its all a bog standard setup ,with 4 pins data transfer

We have seen all of this before.

I will try once more.

Post your code. We are not interested in what code you think you copied or where you copied it from. We want to see exactly what you used.

Post a photo that clearly and unambiguously shows both ends of all of the connections between your Arduino and your LCD module.

Don

I just dug out the code I used when I tested my LCD a while ago. It's based on Mike Bramwell's code- I can't remember where that came from. It has this line, which I don't pretend to understand. I just used it as is and it worked...

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

I assume the order of those pin numbers is important. I see from your post, @knuckles, that you mention pins 4, 5, 6, 7, 8, 9 and wonder if you've got them coded in the order 4, 5, 6, 7, 8, 9 whereas it should maybe be 8, 9, 4, 5, 6, 7?

(But if you posted the code as suggested, we would know.....)

It has this line, which I don't pretend to understand. I just used it as is and it worked...

Well this is fully explained but very carefully hidden on the Arduino site.

Start here: http://arduino.cc/en/Tutorial/LiquidCrystal
Scroll down to the bottom
Use the Liquid Crystal Library link to get here: LiquidCrystal - Arduino Reference
Use the LiquidCrystal() link to get here: LiquidCrystal - Arduino Reference
And there it is under 'Syntax'

Wouldn't it be easier if they completely documented the examples?

//LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);      // put your pin numbers here

Don

floresta:

It has this line, which I don't pretend to understand. I just used it as is and it worked...

Well this is fully explained but very carefully hidden on the Arduino site.

Don

...on display in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign outside the door saying "Beware of the Leopard." [/quote]

also, try this:

LiquidCrystal PLCD0(RS,255,EN,D4,D5,D6,D7);

I also haven't been able to get a 6-parameter sketch to work, but a 7-parameter does.

I also haven't been able to get a 6-parameter sketch to work, but a 7-parameter does.

Don

Just try the line

LiquidCrystal lcd(8,9,4,5,6,7);

Don't be tempted to re-write the number in order.

Just try the line

LiquidCrystal lcd(8,9,4,5,6,7);

Don't be tempted to re-write the number in order.

This is horrible advice.

Your recommendation points out the fact that you really don't understand it's purpose. Why don't you follow the links in reply #9 to find out?

Don

floresta:

Just try the line

LiquidCrystal lcd(8,9,4,5,6,7);

Don't be tempted to re-write the number in order.

This is horrible advice.

Your recommendation points out the fact that you really don't understand it's purpose. Why don't you follow the links in reply #9 to find out?

No it isn't, I understand the purpose well, and it is very good advice.

I say this because:

  1. While I have not read reply #9, I have read the original post, which I recommend to you, and the problem is very much like the problem I had, right down to the source of code that could be problematical.

  2. The advice I gave actually works. Well, it did for me, indeed it is all I needed to do.

The advice was well-intended and simple enough to try, hopefully Knuckles will get the same result and, in that blessed event, we will all be glad to hear from you.

Oh, and guess what? I have also read the good news from Johannesburg in reply #8, which I also recommend. You might find it as entertaining as I do, although I guess you will not find it a pearl of wisdom.

...although I guess you will not find it a pearl of wisdom.

Well at least you got that part right.

Don

NickPyner:

  1. While I have not read reply #9, I have read the original post, which I recommend to you, and the problem is very much like the problem I had, right down to the source of code that could be problematical.

The problem really isn't the code, it is that the constructor that configures the pins used by the
LiquidCrystal library does not match how the lcd is wired up.
So in reality it is that the LCD is mis-wired. i.e. the LCD is not wired up the way the sketch told the library it was wired.
All the matters is that they match. You can wire the lcd up according the constructor or alter
the constructor in the sketch to match the wiring.

It is only 6 wires/pins. With careful attention to details it isn't that difficult to make sure the
constructor properly defines the pins for how the LCD is wired.

And as Don said, part of what makes this difficult is that the LiquidCrystal examples don't clearly show what
lcd pin/function each of the pins in the constructor is used for.

Once there is an understanding of the constructor arguments and which argument (pin) represents
each LCD function it becomes a simple matter of looking at which Arduino pin is assigned to each
LCD function and then wiring that Arduino pin up to the LCD pin for that LCD function.

--- bill

In fact Don, I vaguely remember reading about what those pins do, probably exactly where you pointed me. But it was certainly after the fact: I know I just used them as is without regard for what they do.

bperrybap:

NickPyner:

  1. While I have not read reply #9, I have read the original post, which I recommend to you, and the problem is very much like the problem I had, right down to the source of code that could be problematical.

The problem really isn't the code, it is that the constructor that configures the pins used by the
LiquidCrystal library does not match how the lcd is wired up.
So in reality it is that the LCD is mis-wired. i.e. the LCD is not wired up the way the sketch told the library it was wired.
All the matters is that they match. You can wire the lcd up according the constructor or alter
the constructor in the sketch to match the wiring.

The problem is the code inasmuch as that quoted was written for the LCD shield designed and sold by the code writer, Oxner of tronixstuff and, while there is nothing wrong with that, is not likely to work with anything else. The shield in question is looks like no other I know of.

The problem is also the code inasmuch that, if the LCD is on a shield as I suspect, it is the code that is going to be fixed.

I can't imagine any variation in the wiring of the HD44780 but the distribution to the Arduino the pins is entirely down to the whim or convenience of the circuit-board designer. Looking at my eBay cheapo shield, I can't really see why anybody would do it any other way and this might go quite go quite some way to explain why the pin sequence I quoted is in fact quite common - hence my recommendation, and indeed my lack of surprise in seeing it recommended by others here.

Having the intended relationship of the module's pins to Arduino commented in the sketch would certainly relieve a bit of stress amongst newbies like me, particularly since this can be easily determined on the shield itself. Still, it's all part of the game, and the 16x2 is child's play compared to the Nokia 5110. Knuckles is going to love one of them....