LCD DISPLAY BLACK BOXES INSTEAD OF TEXT

Hi, guys I am newbie for arduino and I currently using 1602a lcd display for project. My LCD is connected as following the instruction from arduino official website and I already inculde the library. But it's didn't work for me, it's don't display any text on screen. How to fix this problem? thanks a lot, guys

More information please:

http://forum.arduino.cc/index.php?topic=149014.0

Hey JackyAng,

I am also having the same problem.Let's see if some gives suggestions for this issue.

Regards JR

Need to see your sketch. Need to see a photo of your wiring.

Hi, this picture is what exactly my wiring diagram look like.
I am using the example > LiquidCrystalDisplay > Hello World.

My code as below:

*
  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
 * 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.

 http://www.arduino.cc/en/Tutorial/LiquidCrystal
 */

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

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

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);
}

Hi Have you adjusted the potentiometer to set the contrast of the display? Can you measure the voltage on the wiper of the pot and let us know what it is as you turn it fully clockwise to fully anti-clockwise?

An actual picture of your project would also be helpful.

Tom...... :)

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); These pins do not agree with what is in you image.

Also a photo of your wiring is needed.

I do put my pin numbers to replace the default pin number.
Below is actual picture

*All YELLOW *:o Cannot confirm the wiring in that image.

Back off the contrast pot so the black rectangles just disappear.

In your sketch: 12 is RS 11 is EN 5 is D4 4 is D5 3 is D6 2 is D7

|500x214

.

is you breadboard connected to 5v or 3.3v ?

If I turns down the contrast then these black boxes will disappear but it's still nothing on text. it's should be display "hello world"

My wiring connection like below:

LCD #1 ==> GND LCD #2 ==> +5V LCD #3 ==> middle lead of VR LCD #4 ==> pin 7 of arduino LCD #5 ==> GND LCD #6 ==> pin 8 of arduino LCD #7 ~ #10 ==> nothing LCD #11 ==> pin 9 LCD #12 ==> pin 10 LCD #13 ==> pin 11 LCD #14 ==> pin 12 LCD #15 ==> +5V LCD #16 ==> GND

So your wiring matches your sketch change:

LCD #1 ==> GND LCD #2 ==> +5V LCD #3 ==> middle lead of VR LCD #4 ==> pin 12 of arduino LCD #5 ==> GND LCD #6 ==> pin 11 of arduino LCD #7 ~ #10 ==> nothing LCD #11 ==> pin 5 LCD #12 ==> pin 4 LCD #13 ==> pin 3 LCD #14 ==> pin 2 LCD #15 ==> +5V (you may need a 220R current limiting resistor) LCD #16 ==> GND

I already changed my connection with your wiring diagram. but nothing difference now

There is nothing wrong with your Sketch.

Your wiring is not correct OR your Arduino is faulty OR you have not downloaded the sketch to your Arduino OR your LCD is bad.

Show us your new wiring photo (separated the wires so we can see where they go)

I had trouble getting my LCD working too. I found through trial and error that what is below worked. You may be having some scope issues in that you have lce.begin in the setup but not the loop. There are some advantages to having the the lcd behave like an object....lets different parts of the program use the LCD independently....e.g. if you want to put the time rt justified on the first line and not need to worry about what other parts of the program are doing with the LCD. Anyway, try what is below.

// put this code in both setup and loop. lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0,0);

//print your line now

I tried, it’s didn’t work for me
My LCD have 2 channel, I wonder that if I need to connect both channel?
Have your guy seen this before?

Hi, Can you post a picture of how you have you lcd connected now please?

Tom.... :)

Here is it. :slight_smile: