http://freeduino.ru/arduino/sample_Buttons.html Напутал я с rebounce немного, кстати. Таки ее нужно вызывать именно при нажатии, Вы первый правильно делали. Почему генерилось много нажатий - вопрос отдельный.