LCD 1602 Only getting two rows of black squares!

I really did not want to post about this as I have read several other posts indicating similar issues and have tried my best to follow the steps provided them in order to make the LCD work with the arduino. I'm not sure if it is a faulty board, lcd or just my stupidity preventing it from working. So thus far I have the LCD powering up and I have connected the pot in order to control the contrast, the issue I'm running into is data being sent and displayed to the LCD. At first I was getting just the first row of the LCD to appear in boxes, after connecting all the data cables I now have two rows of black squares and no matter how much I change the contrast with the pot no text actually appears. I'll attach pictures of my setup and also my code.

Thank you very much for any and all help!

/*
LiquidCrystal Library - Hello World

Demonstrates the use a 16x2 LCD display. The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.

This sketch prints "Hello World!" to the LCD
and shows the time.

The circuit:

  • LCD RS pin to digital pin 12
  • LCD Enable pin to digital pin 11
  • LCD D4 pin to digital pin 5
  • LCD D5 pin to digital pin 4
  • LCD D6 pin to digital pin 3
  • LCD D7 pin to digital pin 2
  • LCD R/W pin to ground
  • LCD VSS pin to ground
  • LCD VCC pin to 5V
  • 10K resistor:
  • ends to +5V and ground
  • wiper to LCD VO pin (pin 3)

Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe

This example code is in the public domain.

*/

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// 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);
}

btw, in the tutorial I followed the pins were set to 7, 8, 9, 10, 11, 12 instead of what the example above uses. I have tried both configurations and adjusted the code to no avail!

Turn your contrast down until the rectangles just disappear.

.

I really did not want to post about this as I have read several other posts indicating similar issues and have tried my best to follow the steps provided them in order to make the LCD work with the arduino.

Then surely you have read that we need photos that allow us to unambiguously follow each wire from the LCD back to the Arduino. Photos that show wires disappearing out of the picture only to reappear on another photo are usually not much help, especially when all of the wires are the same color.

You also need to touch up your soldering, some of the joints look suspicious, especially D6.

btw, in the tutorial I followed the pins were set to 7, 8, 9, 10, 11, 12 instead of what the example above uses. I have tried both configurations and adjusted the code to no avail!

When you change the pin connections you have to also change the corresponding line in the code. That's why we need to be able to follow the wiring in the photos. We also have to know which version of the code you were using when you took the photo.

Don

The wiring to the potentiometer pins does not look symmetrical to me. Are the pin spacing not even ?