I just want to ask how is one of the basic components of electronics a push button implemented in professional grade equipment?
The most basic of a tactile switch circuit might look like this:
This itself is good enough in theory, but we know that in practice we will encounter some problems; such as switch bounce. It can solved by adding capacitors on the switches, adding a delay in your code and checks again if it was a valid press, or doing both. This solution is simple and easy to do, and is the go to of almost everyone doing DIY.
Now for my question, how do big companies where a button not registering could mean bad PR for their products and their brand. Examples of what I mean are, iPhone's (or other phone brands) home and volume button (6 plus and older on iPhones), keyboards, mice, arcade games, etc.
Here are some of specific questions on my mind:
- on high end keyboards that has "anti ghosting", how did they implement this anti ghosting feature? Is this done in hardware or software or both? Are they still using a matrix of buttons to save some space on the keyboard chip?
- Is there an IC for buttons that handles everything (or most), pull down/ups, capacitors, multiple button press, or some other feature, that just send a very clean signal to your controller chip/computer?
- In software what are best practices in registering a button press, rising/falling edge, the classic approach, interrupts?