Buttons and tactile switches are frequently used in many projects involving micro controllers; one of the most frequent issue we met is related to unwanted multiple transitions when the button is pressed once.
Tactile switches, as well as push buttons are mechanical components subject to the problem of bouncing. When a button is connected to a digital GPIO input pin (i.e. an Arduino pin configured as INPUT) we ideally expect that when the button is pressed we get only one high digital signal; unfortunately this rarely happens. During the mechanical movement the physical material vibrates affecting the voltage and the transitions between the On/Off status are not so clear as we usually need. Micro controllers and FPGA are fast enough reading the microseconds oscillations when the button is pressed, resulting multiple readings while apparently we are pressing the button only once.
Read more on Element14 full post: Vintage 555