To run the Kitchen Timer you will need to feed your Arduino some nice tasty code. I have written a rather simple (but scary looking) code that can drive it all, and for those who are happy enough making it work but not understanding it you can download it now. If I remember correctly Instructables does something weird with .PDE files so I have compressed this in the ZIP format, although you can also find the text on PasteBin
and paste it directly into your Arduino editor if you feel so inclined.
Explaining it gets a little complicated, so I will give you a brief overview, and the rest is pretty self explanatory:
First we initialise all of the pins and features that we are going to use, to make sure that our Arduino is going to be working with them. We use the const int to indicate that the Pin that we have initialised is constant and will not change. Variables can also be initialised, but are generally not constant as they are set throughout the script. We then check to see if the button (connected to Pin 2) has been depressed or not, and if it is it lights up the next segment and adds one to out 'tastyTimeVariable'. This means that we can then use an 'if' function to state the length of the required timing depending on the value of our tastyTimeVariable. You will see that we delay for "300L * 1000L" which equates to about 5 mins, as 300,000 milliseconds = 300 seconds, and 300/60 = 5, so quite accurately 5 mins. We then tell the Arduino that if the tastyTimeVariable is equal to anything other than 0 (in other words the button was pressed, and something has been timed) to play a graphical display, and buzz the buzzer. We can vary the length of the alarm by changing the for command.
I hope this has made some sense, I have also written comments into the script to help those trying to understand how it works, and modify it for their needs.
I have had a couple of updates made by individuals to the code, and you can find links to these in the comments below, although I will not be posting them here as I am unable to verify the accuracy of their code as the links that they have posted are no longer active. I can confirm that, although large, the code I have written and posted works well and is easy to understand should you wish to review it, so I'm afraid that I will not be able to assist in your troubleshooting should you use a different code.