I've just started playing with 16-pin 20x2 LCD screen and encountered many problems from the very beginning.
There is a problem with displaying some letters. I've just uploaded SerialDisplay demo from the LiquidCrystal library and here is what happens: if i send "a" (or "A") -> everything's okay, it is displayed on the LCD. Same with b, c, d, e, f, g. The problems start with "h" (and "H"). When I send this letter via serial monitor, on the screen appears 40 white rectangles. The same problem is with i, j, k, l, m, n, o. Then it's all fine with p, q, r, s, t, u, w, v. When I send x, y, z there appears 40 rectangles again and I can't see anything on the screen. If I send "ah", I have 40 rectangles again. If I send "ha" then it works fine, so there's no problem with displaying the "h" and other symbols themselves because they are displayed well if I send "ha", "ja", "xa" etc.
I've tried many demos and codes online but I always have the same result. I have rewired it all hundred times with no effect. I tried it on different pins too. Here is the connection I use now (most comfortable for me):
LCD pin To
I use this code to initialize the library:
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
I use this touch screen: http://sklep.avt.pl/p/pl/71498/lcd+alfanumeryczny+20x2.html
(in Polish) and here is the datasheet: http://sklep.avt.pl/photo/_pdf/BTHQ_22005VSS.pdf
I have no idea how to solve this problem and I've just run out of ideas. Do you have any suggestions?
Btw. I've also discovered some interesting fact with using LiquidCrystal: when I use this line
the symbols on the LCD have black colour. If I don't use this line, they have white colour. Without the lcd.begin() line I I still can't display some letters. Why does the lcd.begin changes the text colour from white to black? White is much more visible on blue backlight. Is there a way to avoid it?