LCD Not Displaying Text

Hello,
I am having trouble getting a 20x4 LCD screen to display what i want. It currently displays
just displays black boxes (at all levels of contrast). This is how i have the pins wired:

1: GND
2: +5V
3: Potentiometer Wiper
4: Arduino I/O 12
5: GND
6: I/O 11
7-10: Not Used
11: I/O 5
12: I/O 4
13: I/O 3
14: I/O 2
15: +5v
16: GND

This is the code im using (just from the hello world tutorial)

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
// set up the LCD’s number of columns and rows:
lcd.begin(20, 4);
// Print a message to the LCD.
lcd.print(“hello, world!”);
}

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}

I also recently soldered pin headers to the LCD (not the best soldering job in the world, but nothing
is shorted) Is it possible i damaged the LCD in some way? How could i test to see if its damaged?

Thanks

pic of soldering job:

(1) Go back to your original post and get rid of the colored text and put your code in a code box instead.

(2) Always test your links to see if they work. Yours doesn't.

(3) Fully describe what you are expecting to see and what you do see.

I don't think your description is correct since the display should go blank at one extreme of the contrast control.

You haven't made it clear if you are seeing two rows of black boxes (the first and third) or all four rows. Or possibly you see two rows at some contrast settings and all four rows at the extreme end of the contrast control.

(4) A photo of your complete setup would be helpful in addition to a closeup of your soldering.

(5) You might try reading the forum instructions.

Don

Hello i posted here before, but now i fixed up the formatting and took better pictures.
I am having trouble getting a 20x4 LCD screen to display what i want. It currently
just displays black boxes on lines 1 and 3 (at the highest level of contrast) and nothing other wise. It should display hello world on the first line and time in seconds since it started on the second line.This is how i have the pins wired:

1: GND
2: +5V
3: Potentiometer Wiper
4: Arduino I/O 12
5: GND
6: I/O 11
7-10: Not Used
11: I/O 5
12: I/O 4
13: I/O 3
14: I/O 2
15: +5v
16: GND

This is the code im using (just from the hello world tutorial)

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(20, 4);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}

I also recently soldered pin headers to the LCD (not the best soldering job in the world, but nothing
is shorted) Is it possible i damaged the LCD in some way? How could i test to see if its damaged?
( i just recently tried it with a 16x2 LCD and only the first row contains blocks)

Thanks

pics related:

Black boxes means it's ok working, you need to adjust potentiometer, you'll come to know at a point where boxes will become invisible & text will start appearing on the lcd.

I tried that, it doesn't work at any contrast level

I tried that, it doesn't work at any contrast level

Don't believe everything you read on the internet.

The first thing you have to do is fix up your soldering. Take a look at this soldering guide.

Then when you reassemble your circuit try to use different color wires for the adjacent signal pins so that we can unambiguously follow each wire from one end to the other.

Your photograph should be taken from directly above and from fairly far away to reduce the parallax error.

Don

All blocks on the top row of a two row display and all blocks on the first and third rows of a four line display mean that the device is probably functional and the contrast setting is acceptable but the LCD controller has not been properly initialized.

This can be due to either a wiring error (including poor soldering) or a problem with the code. It's best to fix the wiring first.

Don

I just noticed that you have not connected the LCD Enable pin (pin 6) to your Arduino.

Don

floresta:
I just noticed that you have not connected the LCD Enable pin (pin 6) to your Arduino.

And soldering? Yeeeccchh! All sorts of things may or my not be connected.


So as someone here says in his taglines, the way you actually have it connected, is simply not what you have described in your posting.

And soldering? Yeeeccchh! All sorts of things may or my not be connected.

I covered that back in reply #5.

Don

Imgur
here is another photo. I also get the same results with a 16x2 LCD without anything soldered to it. (i change the code to 16,2 when i do this)


I am afraid that photo is just as bad as the first.

I believe from the position of the USB cable that you are using a laptop. I suggest you find a real camera (with a zoom lens), take the laptop and the circuit outside in full daylight but not direct sun, hold the camera at least a meter away and use the zoom lens to frame just the Arduino and breadboard. The first photo had almost the correct position to see the wires as they connected to the breadboard, it could have been just a little more vertical and at least the LCD was plugged in toward the side of the breadboard so that it did not obscure the other connections.

floresta:
I covered that back in reply #5.

Indeed you did, but I thought a touch of emphasis was in order. :grinning:

As I said previously we must be able to unambiguously follow each wire from one end to the other.

You have provided wires of different colors but we still can't tell exactly which LCD and Arduino pins they are connected to.

Don

i found the issue. i even tried using different wires and in both instances i had 1 bad wire. Seems very unlikely and unlucky. Oh well. Guess i'm going to check every single wire i own now. Thanks for your help anyway.

Mattred6:
I'm going to check every single wire I own now. Thanks for your help anyway.

Frankly, unless you made them yourself (and perhaps tested them in the process) that is a very sensible idea.

I have been "bitten" by the lack of QC on these Chinese jumper wires; you find it difficult to imagine such a simple thing could be faulty. One curious fault you may observe is the varnish involved in the encapsulation process, forming a film over the pin that simply needs to be scraped off.

My favourite method is to take a breadboard, start by pinning wires from one end to near the other, then from that same row back to a different row near the first end, and so on until all the rows are used up, then test (connect a LED and 330 Ohm resistor in series and power it from the Arduino or 5 V power supply) them all in a chain. If it works, then you are OK; if not then guess halfway and test from that to either end, unpin all the working wires and repeat the testing sequence.