Problemi con pulsanti e arduino Mega 2560

Ah si si.. scusate

#include liquidcrystal

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

void setup(){

lcd.begin(20, 4);
pinMode(31, INPUT_PULLUP);
pinMode(33, INPUT_PULLUP);
pinMode(35, INPUT_PULLUP);
pinMode(37, INPUT_PULLUP);
pinMode(39, INPUT_PULLUP);
pinMode(41, INPUT_PULLUP);
pinMode(43, INPUT_PULLUP);
pinMode(45, INPUT_PULLUP);
pinMode(47, INPUT_PULLUP);
pinMode(49, INPUT_PULLUP);
pinMode(51, INPUT_PULLUP);
pinMode(53, INPUT_PULLUP);
}

void loop(){

if(digitalRead(31)==0){
lcd.print("1");
}
if(digitalRead(33)==0){
lcd.print("2");
}
if(digitalRead(35)==0){
lcd.print("3");
}
if(digitalRead(37)==0){
lcd.print("4");
}

}

Ho provato anche mettendo un delay(10) in ogni IF (ma nulla...).
il display si riempie di 1 di 2 di 3 e di 4...

Ho provato anche a mettere un clear ogni TOT secondi (usando il clock che parte all'accensione di arduino), ma continua allo stesso modo.

Come si fa di solito a controllare dei pulsanti con Arduino??

(N.B.: la sintassi dello sketch potrebbe non essere perfetta (es. "Lcd" invece che "lcd" in quanto l'ho riscritto a memoria)