Many times people ask questions about how to fix their LCDs that don't display or displays wrong/random stuff. The following information, when supplied with your thread, will get your problem solved the quickest way. Fixing these problems ends up being mostly a frustrating experience unless the following are provided upfront without any "BUT"s. I believe several other helpers here would agree with me.
-
Provide what display or display shield you are using, with a link to the product page or spec sheet. 99% chance no one else on this forum has your exact display but having a spec sheet will be the closest to having that display in hand.
-
Provide what code you used, copy from your arduino IDE and paste it properly with the code tag, press #. Again no one will have your exact code even if you think it's THE standard code. There is a lack of standard here so everyone needs to have what you have to help.
-
Provide clear high-resolution pictures of your connection between arduino and LCD, giving enough angles/shots to allow someone to physically trace every wire from point A to point B. Your "My circuit is correct and beautiful" argument stands better if you accompany your argument with a few clear pictures. If you drive a car, you wouldn't want an online mechanic to fix your car without even seeing the picture of your beautiful car, would you?
-
In case your display is not behaving the way you want it to be, say it displays xyz when you tell it to do abc, provide some pictures of the wrong info and tell us whether the display always does this wrong in the same way or random wrong way.
-
Be polite to critiques. I rarely see helpers does nothing but ridiculing the help seekers. But too often the help seekers were too arrogant/ignorant to accept any critique. If you want to be applauded, hire someone of buy a magic mirror that can lie to you.
-
Return the favor by posting "yes, ... was exactly the problem. Now I did ... and it's fixed!". Create a proper closure.
-
Fill up your location information could get you more help sometimes. Say you're asking about suppliers of certain LCD and with your location people can suggest you local or regional suppliers.
Now happy solving problems
A list of frequently committed mistakes:
Hardware problems
H-1) Didn't connect ground from arduino to breadboard
H-2) Didn't use a potentiometer with the contrast pin
H-3) Didn't solder headers to the LCD but just rest the LCD on the headers instead
H-4) Shorts due to soldering
H-5) Didn't have a current-limiting resistor with the back light
H-6) Read the pin numbers backward thus thinking pin 1 is pin 16 etc.
H-7) Broken LCD, against all our hopes you have a broken LCD to start with, no fixes. Get a new one.
H-8) Didn't deal with R/W (LCD pin 5) correctly. You should tie this pin to GND.
Software problems
S-1) Used the wrong pin number in your sketch
S-2) Tried to use lcd.println. There is no such function so you will see two strange characters with your text
S-3) Did not have lcd.begin(col,row); in setup
S-4) Had lcd.begin in loop (could cause LCD to flicker due to resetting the display too often)
S-5) Used old or wrong library, such as given on irresponsible eBay sellers. If you are using an I2C backpack, stick to the seller's library!!!
GLCD specific problems, written by bperrybap:
G-1) not hooking up the RESET pin (works on some glcds but not all of them)
G-2) Confusing RESET and RS signals.
G-3) hooking up the glcd contrast pot to +5v and gnd (like a hd44780 pot) vs +5v and Vee (besides the gnd vs VEE issue, bad pot wiring is very common and happens all the time even when there are instructions in multiple places and diagrams for how to properly wire up the contrast pot)
G-4) hooking up the pins incorrectly because of wrong documentation. (hd44780's for the most part all have the same pinout) Users often assume there is a single "ks0108" pinout - yet I've seen over 11 different pinout combinations.
G-5) hooking up the pins incorrectly because of the wrong part (people often buy a "glcd" and assume it is say a ks0108 when it isn't)
G-6) using multiple wires for a single connection and twisting wires together. (This one creates all kinds of weird problems)
G-7) miscounting/interpreting pin #s on the mega board. I see this quite a bit. People sometimes start at the top for pin 22 and forget the +5 pins along the top or get the left/right pins backwards or get the pins skewed or off by 1 because of a visual parallax error when picking the pins.
G-8) getting all the LCD pins backwards. Look at the data sheet and then wire everything backwards because the view was upside down which flips the order of the pins.
G-9) Powering the display and Arduino from different power supplies and getting ground loops that crater everything.
Tutorials: