If you have supplied all the information, and the LCD was connected and works on another Arduino, but does not work when connected on your Arduino, then you have a bad Arduino.
Run some basic sketches on your Arduino, including this pin check sketch that will tie all your DIO pins HIGH, showing a "1" in the Serial Monitor, and when you short a ground pin to any DIO pin, it will show as 0 in the Serial Monitor:
//**********************************************************************
// 1. Connect a jumper wire to GND
// 2. Upload the sketch
// 3. Touch the jumper wire to a pin 2 through 12 and A0 through A5
// 4. The output will show the pin(s) you are touching
//
// This shows pin D3 sensing ground through jumper...
// 12 11 10 D9 D8 D7 D6 D5 D4 D3 D2 A0 A1 A2 A3 A4 A5
// 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
//**********************************************************************
int pin[] = {13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 14, 15, 16, 17, 18, 19};
int size = sizeof(pin) / sizeof(pin[0]);
void setup() {
Serial.begin(115200);
Serial.println("Pin State Reader");
for (int i = 0; i < size; i++) {
pinMode(pin[i], INPUT_PULLUP);
}
}
void loop() {
int size = sizeof(pin) / sizeof(pin[0]);
Serial.println(F(" 13 12 11 10 D9 D8 | D7 D6 D5 D4 D3 D2 | A0 A1 A2 A3 A4 A5"));
for (int i = 0; i < size; i++) {
int state = digitalRead(pin[i]);
if (i == 6 || i == 12)
Serial.print(" | ");
else
Serial.print(" ");
Serial.print(state);
}
Serial.println();
delay(1000); // to allow jumper to be moved
}