Button that gives an Input, Has a small delay --- then gives another
A standard way to do this is to connect a digital i/o pin via a (normally open) push button to ground. Internally in the Arduino a pullup resistor can be activated to keep the pin on a high level when de button is open. For example when pin #8 is used: pinMode(8, INPUT_PULLUP). The program watches the state of the pin to detect whether the button has been pushed. An extensive tutorial about using switches for input to microcomputers you can find here: http://www.gammon.com.au/forum/?id=11955

Be sure to familiarize yourself with a phenomenon called "contact bouncing": when the button is pressed or released the contacts don't open or close immediately but go through a series of rapid open/close/open/etc. states. The best information I know about how to handle this you can find here: http://www.ganssle.com/debouncing.htm