Solitamente il delay dopo la lettura di un pulsante viene utilizzato come contromisura software ai "rimbalzi" che il pulsante stesso ha al momento della pressione...
Prova a dare un'occhiata qui: Arduino: alcune precisazioni sull’antirimbalzo | Michele Maffucci
Per la gestione del pulsante ti consiglio di provare ad usare questa libreria...implementa l'anti-rimbalzo e io mi sono trovato molto bene...
http://www.arduino.cc/playground/Code/Bounce
edit : hai messo una resistenza di troppo sul pulsante... controlla qui: http://arduino.cc/en/Tutorial/Button