Problem displaying character on LCD 16x2 : HD44780


I have just acquired this LCD 16x2: HD44780.

I've got the arduino duemillenove and using arduino env 021.

Testing the default tutorial, I encounter some problem to see characters appear on the LCD.

I have respected all connection's pins.

I suppose (a little little bit) it may be a contrast problem and I don't have potentiometer so I have calculated in order to put about 1-2v to the pin3 V0. (using GND-->1,2Ko-->Pin3(V0)-->10Ko-->VDD).

It fails too. No blank character appears.

I don't know what can I do more now. Can you help me please ? ;)

Ok so do I understand, the LCD Display cannot display blank character with a constant resistive value ?

How can I attempt to find my good resistive value while I buy a potentiometer?

Thank you for your fast time response !!

At a pinch, you can just use a diode. I did, and it comes out just right.

Buy a 10KOhm trim potentiometer and save you the trouble of "calculating". As Richard said, you can't calculate it. You have to determine its value by trial. I've tried to use a PWM pin to deliver effective voltage needed for that pin and the result is not so great. Just do what your respected tutorial says, use trimpot.

Ok I will buy a pot.

I will try to use diode like Ian Tindale said. While my pot comes, I could try yo determine good voltage using a pressure sensor.

What do you think about this way and the diode way ? Thank you

I'm not sure if I get this right: you want to squeeze a pressure sensor in series with a fixed resistor to find the right resistance, go right ahead. I've done something similar. I was short of a trim pos and I used a joystick (pot) I had to keep the joystick at a certain angle to see the LCD ;D

I would try using the PWM instead of the diode. Just hook up a PWM pin and do analogWrite(X) till you can see black boxes.

I have an ordinary diode going from pin3 of my display, with the stripe (the cathode-ey end) connected to earth. The voltage drop of the diode seems to result in just about right contrast. It's a diode I found lying on the ground beside a canal towpath one lunchtime, attached to a tiny circuit board with a few other r's, c's tx, inductor, led and 9v clip on it (all since desoldered and squirrelled away).

I have not diode, just LED. Can I invert my LED ? anode to GND

Many LCDs work acceptably with pin 3 connected to GND, so you should try that first. Most of mine work a little better with pin 3 at about 0.3v and most don't work too well with the voltage greater than 1 volt or so. This rules out using an LED.


this is a picture link of what I see

Your contrast is good enough as it stands. The single row of blocks is the classic result when the LCD controller has not been properly initialized due to improper wiring and/or programming. We will need a copy/paste of the actual sketch that you used along with a photo that clearly shows all of the interconnections between the Arduino and your LCD module. It looks like CS, E, and two of the four data wires may be headed toward the Arduino, but what about the other two data wires? What is the black wire on pin 5 (RW) connected to?


Yes the schematic is here :

Sketch is the one by default of helloWorld’s tutorial

I check your advises.
Thank you the link of actuel sketch.

The six data lines between the LCD module and the Arduino appear to be connected properly. This doesn't mean that the actual connections are physically secure. If one or more of those wires does not make a solid connection your device will not work. It looks like RW is connected to ground as it should be and you are using 0v (GND) for the contrast voltage which should be OK. The power and ground connections between your breadboard and your Arduino are not easy to follow but they may be OK since your display seems to be functioning.

So if the wiring is correct this leaves the programming. The LiquidCrystal library is known to have reliable code but we have not seen a copy/paste of the code that you are actually using. Did you copy and paste the tutorial material or did you type it in yourself? Did you add anything to the code, perhaps for the hardware that is connected to the analog pins?

You might want to consider temporarily removing the Arduino and the LCD module from the enclosure and verifying that you can get them to work together. I recommend the tutorial at


Just a confirmation

Test A: OHMETRE (-) -------Pin1 OHMETRE (+) -------Pin2 Result: 3 ohms.

Is it that I have a shortcut between pin1 et pin2?

Test B OHMETRE (+) -------Pin1 OHMETRE (-) -------Pin2 Result: infinite ohms.


.To be sure of code, I have downloaded, the arduino 021 and extract LDCLib code. .To be sure that analog pin dont disturb rest of connections, I have disconnected my RT Clock that was on 4 and 5 analog pins.

I have applied the tutorial copy paste and change id Pin, nothing appear.

I have found why nothing appears. Not enough voltage on pin1.

Now using the same tutorial that you advise to me, I have blank rectangles on first line. I can deduce that my LCD is not KO.

So I am here

I have not potentiometer so I am trying to get good voltage on pin 5 of LCD to get good contrast.

@ Reply #16: Your ohmmeter is measuring the DC resistance of the (unknown) power supply components and the results do not look surprising.

@ Reply #17: I am not really concerned about the physical RTC connections but I want to make sure that there is no extra code in your sketch while we are troubleshooting the LCD. What about the power unclear power supply connections I mentioned?

@ Reply #18: If you want to try building a resistive voltage divider for the contrast voltage I would start out with a 10000 ohm resistor between pins 2 and 3 and a 680 ohm resistor between pins 1 and 2. This should give you around 0.3 volts on pin 2 which usually works well for me. You could just leave the contrast pin grounded for now and continue with the rest of the tutorial. When you get everything working you may not be able to read the message clearly but you should see something different than one row of blocks.