LCD displays block pixels on 1st row

Hi All,
I'm working on a project that requires me to display stuff on the LCD (Given product is GDM1602N1)

I've been cracking my head over this, as i can't seem to display anything.
I've gone on Adafruit's LCD tutorial, but it still doesn't work.

Current Connection:
LCD Pin #1: GND
LCD Pin #2: +5V
LCD Pin #3: 10k Potentiometer
LCD Pin #4: Adruino Digital I/O Pin 7
LCD Pin #5: GND
LCD Pin #6: Arduino Digital I/O Pin 8
LCD Pin #7-10: Empty
LCD Pin #11: Arduino Digital I/O PIN 9
LCD Pin #12: Arduino Digital I/O Pin 10
LCD Pin#13: Arduino Digital I/O Pin 11
LCD Pin #14: Arduino Digital I/O Pin 12
LCD Pin #15: 220 ohms which is connected to +5V
LCD Pin #16: GND

I'm using the Helloworld example, changed the program to

const int rs = 7, en = 8, d4 = 9, d5 = 10, d6 = 11, d7 = 12;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

I've been reading up, and know that it is normal to have black box appearing on 1st row of LCD, and supposedly the wordings will appear.

However, now while i turn the potentiometer, it doesn't display anything, the black boxes just fades to display empty pixels.

I reconnected many times, but still arrive at the same outcome, any possibilities that the LCD is spoilt? Afterall, not sure how many times has this LCD been used

Please help :frowning:

Well, without your code, posted according to the instructions, we are not going to find out are we?

A common blunder is not understanding that the display must be connected to the pin header if used in a breadboard, not just sitting on it.

While you are at it, a minor correction to almost all the tutorials; do not connect the potentiometer on pin 3 to Vcc, just leave that end unconnected. This will not prevent it from working, but correcting it will make it easier to adjust (and save a tiny bit of current).

Hi, Thanks for the response
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 7, en = 8, d4 = 9, d5 = 10, d6 = 11, d7 = 12;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

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

I'm usuing the Liquid Crystal Example --> Helloworld

A common blunder is not understanding that the display must be connected to the pin header if used in a breadboard, not just sitting on it.

I don't really get what you mean by display must be connected to the pin header, i don't think there is a display pin except the D4-D7 being used which has been connected to Arduino Pin 9-12

While you are at it, a minor correction to almost all the tutorials; do not connect the potentiometer on pin 3 to Vcc, just leave that end unconnected. This will not prevent it from working, but correcting it will make it easier to adjust (and save a tiny bit of current).

I disconnected the Vcc of the Potentiometer, therefore, currently, there's only 2 wires from Potentiometer, one goes to Pin 3 of LCD and the other goes to GND.

It still does not display anything, except the 16 black pixel blocks on the first row, adjusting the potentiometer dims the black blocks but does not display anything.

OK, let's have a photo.

You need to go outside into full daylight, but not in the sun, with it and a proper camera (not a phone) and take some good pictures, probably better from a distance using your optical zoom, of the assembly front and back and connections, and preferably from slight angles rather than perpendicular.

He means that the connections between the LCD pc board and the header must be soldered. The 'header' is the black plastic strip containing 16 pins that is typically used to connect the LCD module to a breadboard.

I hope you remembered to connect LCD pin 5 (R/W) to GND.

Don

floresta:
He means that the connections between the LCD pc board and the header must be soldered. The 'header' is the black plastic strip containing 16 pins that is typically used to connect the LCD module to a breadboard.

Yes, that's what I said - connected. :roll_eyes: It is surprising how often people do not understand what that means when they post the same problem here.

A photo - properly taken - should reveal all.

floresta:
I hope you remembered to connect LCD pin 5 (R/W) to GND.

See Original Post.


Deathy94:
I reconnected many times, but still arrive at the same outcome, any possibilities that the LCD is spoilt? After all, not sure how many times has this LCD been used

Wondering why it would have been "used" before? From where did you get it? If it shows the black squares, that suggests the chip is in fact, powering up and it is only a matter of communication.

Hi,thanks everyone!
I’m still new to arduino, and my first time working with LCD, pardon me if there are processes that I missed out while seeking for troubleshooting.
Attached are the pictures, I tried to tidy up the wiring so as to be more presentable.

And yes, the pin headers has already been soldered to the LCD (although it’s slightly different convention with regular LCD i’ve Seen on the web)

This product belongs to a school, therefore i’m sure it has been recycled through many different people, which I deemed as “used” before

The pictures:
bf7a93b7d2a34c286eab5e2a4da4c57b7c17800e.jpg

3d699eb109a3db6ecce84d6a0f40a5a7ffebbd69.jpg

OK, well it doesn't look like you got the detail about "outside into full daylight" so the pictures aren't very good, but I cannot spot a problem with the wiring. You have a device which does not have all the pins in a line as we were presuming but clearly the pins are soldered and I daresay you have checked the solder points and you appear to have figured out the numbering.

I can't spot a problem with the code, I presume floresta can't either. The only thing left is whether there is a fault in the "Dupont" jumpers. If you take those for pins 4 to 6 and 11 to 14 and connect them together in a chain (using points on the breadboard if necessary) and put them in series with the backlight, that is a simple way to test them. We have seen problems with faulty Dupont cables.

Even though you have appropriately used different colors for the various wires I am still unable to determine which wires go to which pins at the LCD end. Therefore I cannot verify that the wiring is correct.

I tend to use #define instead of const int to specify pin numbers but I'm not sure if this is a problem.

Don

I apologise for the poor pictures, presumingly tried to put it under bright light will suffice.

Yup, i followed the numbering, clearly it's powered, i was advised to look upon the communication, which i have no idea how to improve/troubleshoot on the data transfer

I doubt the jumper wires are at fault, though they are newly purchased.

The code is known to work.

The LCD is probably OK since you can see a row of boxes.

That pretty much pins it down to a problem with the connections.

We could check out the wiring if we had a better photo of the connections at the LCD end.

We can't check out the jumper wires, you have to do that.

Don

Deathy94:
I doubt the jumper wires are at fault, though they are newly purchased.

They are from China.

Hey Guys! Sorry for the late reply. I got it working finally, after borrowing another team's LCD to test. Found out that it was actually my current LCD that is faulty,

I connected other team's LCD without changing any connection and got it working

Now go back and reconnect the original LCD and, odd are, that it will also work.

Don