Hello,
UPDATE:
Got the LCD to work. My test LCDs had a mating PCB that affected the timing too much so I just took it off. Should have thought of it sooner but oh well. Live and learn. Thanks for anyone that helped.
I'll preface my post by saying I've looked through tons of other posts here and elsewhere regarding this issue and haven't found anything that solves my issue. If there is a post that seems to cover this situation, please point me in the right direction.
I'm struggling to find a reason why my 20x4 LCD (Crystalfontz CFAH2004L-NYG-ET) won't display text using the Arduino Liquid Crystal library. I can see two rows of black boxes and I can control display ON/OFF commands but nothing else at this point. I've tried both 4-bit and 8-bit modes as well as another display which does the same thing (one is new and one is old).
The album below will have my wiring setup. I'm following the Arduino LCD tutorial schematic (minus the backlight since I don't have one). +5V is taken from the Arduino. I can control contrast with my 10K pot. I've tested all the connections for the jumpers and the crimps are all good.
After looking through posts, it seems to may come down to a timing issue with the controller and Arduino but I'm not sure what I should be looking for if I put an O-scope on the databus lines. Even if it is a timing issue, why does the display ON/OFF command work but nothing else.
I'm at the point where I'm going to have to individually write instructions via digitalWrite() so I can test certain functions without the LCD library.
Data lines:
RS = 3
RW = GND
E = 5
D4 = 10
D5 = 11
D6 = 12
D7 = 13
Photos/Video:
Video of display ON/OFF working
Code:
Code is below. Super simple. Initialize. Print Hello. Turn Display ON and OFF
// include the library code:
#include <LiquidCrystal.h>
//LiquidCrystal lcd(rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(3, 5, 10, 11, 12, 13);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(20, 4);
//Print hello
lcd.print("Hello");
}
void loop() {
// Turn off the display:
lcd.noDisplay();
delay(500);
// Turn on the display:
lcd.display();
delay(500);
}
I've tested with another LCD as well (Orient LCD AMC2004BR-B w/ S6A0069 MPU) and both the CrystalFontz and this Orient LCD match the HD44780 controller to my knowledge. Links to datasheets for both are below
Any help is appreciated!