The best way to check button_push for these DFROBOT shields is to call analogRead(A0)and range check the return value. never check for a single exact value, the divider resistances can vary board to board and with board age
try something LIKE this, youll need to experiment to find out the rough value the function returns
for a given button
result = analogRead(A0);
if (result >= 250)
; // no button is being pushed
else if (result >= 200)
UP;
else if ( result >= 170)
DOWN;
else if ( result >= 140);
LEFT;
else if (result >= 110);
RIGHT;
else
SELECT;