LiquidCrystal demo problem

Hey guys

Sorry for the newbie reach for help but I'm trying to run the LiquidCrsytal 'hello world' demo on my 16x2 LCD display (which came with my arduino starter kit) but I'm not getting any light on screen at all.

I have soldered Only to the 10 LCD pins used on the demo and I believe I've wired the circuit correctly on my breadboard so I'm confused as to why nothing appears on screen! I have put a voltmeter across the vcc/gnd pins on the LCD and can confirm that its receiving the Required voltage from the arduino.

Is there any progressive troubleshooting method I can use to identify the problem?

Thanks
Tim

Hoi Tim,

better is you post your code and some pics of your hardware.

Here is a free app that may help you understanding what is going on with LCDs:

Is there any progressive troubleshooting method I can use to identify the problem?

Here is my generic step by step approach that should work:

(1) If the module has a backlight then get it working properly. This involves only pins 15 and 16 on most LCD modules. Make sure to use a current limiting resistor if there is none on the LCD module.

(2) Get the power and contrast working properly. This involves only pins 1, 2, and 3 on most LCD modules. You should be able to just barely see blocks on one row of a two row display and on two rows of a four row display.

NOTE: The Arduino has not been used yet, except as a possible source for the power needed for the first two steps. Do not try to go any further until this is working. If you don't see the blocks then no amount of program code will help.

(3) Connect the LCD R/W pin (pin 5) to GND.

(4) Connect the six control and data wires between your LCD module and your Arduino.

(5) Upload your sketch and it should work.

Troubleshooting:

If you have a 16x1 display and there are blocks only on the left half of the row in step 2 then use

lcd.begin(8, 2);

in your sketch.

If you still don't get a display then make sure that your wiring matches the numbers in the descriptor (or vice versa).

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

If you get a display but it is garbled or has some other problems then try again with a 'static' sketch, one that displays a simple message on the top row of the display and then stops. All of your code should be in setup() and loop() should be empty between the brackets.

#include <LiquidCrystal.h>

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

void setup()
  {
  lcd.begin(16, 2);                          // put your LCD parameters here
  lcd.print("hello, world!");
  lcd.setCursor(0,1);
  lcd.print("it works!");
  }

void loop()
  {
  }

If you are still having problems then we need to see a photograph of your setup that clearly and unambiguously shows all of the connections between your Arduino and your LCD module. We also need a copy/paste version of the code that you are actually using, not a link to the code that you think you are using.

Don

Thanks for the help guys! I have discovered that if I remove the potentiometer and connect the Vo pin to ground then the LCD works as instructed but with the reading only barely legible. However as soon as I connect the 10k potentiometer in order to adjust the contrast, the whole screen goes blank. Any ideas?!

Did you turn the poti to both end points ?
On one of them you has to see the chars-if not, something is wrong: Poti broken, Resistor too large....

However as soon as I connect the 10k potentiometer in order to adjust the contrast, the whole screen goes blank. Any ideas?!

The ends of the potentiometer go to pins 1 and 2, the center goes to pin 3. You should be able to adjust the voltage at pin 3 from 0 to 5 volts. The proper setting is typically around 0.5 volts.

If you connect pin 3 to GND you will typically have a bit too much contrast. The characters will be very dark and the dots that are supposed to be blank will probably show a bit up thus making the characters less distinct.

You could try connecting a 1K resistor between pins 1 and 3 and a 10K resistor between pins 2 and 3. You can use other nearby values as long as the ratio is about 1:10.

Don

I think I may have actually just not turned the poti quite far enough, if I turn it all the way to 1 extreme then the dark blue background disappears from the 16x2 blocks but leaving the lightly coloured words on a faint background almost invisible. If I turn the poti back just ever so slightly then I get the light coloured words on the dark background but very faint and difficult to read. Is there a way of getting dark text on a light background?

I'm trying to make a lap timer which I had hoped would look similar to this on screen...

Thanks again for the help and in simple terms!