Browse Definitions :
Definition

debouncing

What is debouncing?

Debouncing is removing unwanted input noise from buttons, switches or other user input. Debouncing prevents extra activations or slow functions from triggering too often. Debouncing is used in hardware switches, programs and websites.

Debouncing hardware switches

Physical switches are mechanical devices with a little bit of natural bounce. The springs and metal contacts can cause the connection to be made and broken several times each time the switch is pressed. For simple things, like a light switch, the bounce can't be detected by a human, so it doesn't matter. But, in digital electronics, extra bounces can be detected and interpreted as intentional inputs and cause problems. For example, if you press the change channel button on a TV and the channel changes twice, it may be due to the input not being properly debounced.

Microchip Technology ATtiny817 microcontroller
It is common to add switch debouncing in software with microcontrollers.

Debouncing switches can be done in hardware or software. A simple hardware debouncer can be made with passive components. Using a resistor-capacitor filter with a Schmitt trigger diode can smooth out the transition into a curve. A digital debouncer can be achieved with a set/reset latch. Dedicated integrated circuits for debouncing switches and buttons are available and can be added to a design. All hardware debouncing requires adding extra components and, therefore, adds to the cost of a design.

Adding switch debouncing in software is common with microcontrollers. A switch can be directly connected to the microcontroller input, and a debouncing function can be applied to the input to filter out the physical bounce in the switch.

Debouncing in programming

In programming, debouncing is when a function filters user input before triggering the action. Improperly debounced user input can cause bad performance, double activations or user frustration. Often, a general debouncing function is used instead of writing new code for each input activity. The debouncing function sits after the user input and then calls the target action of the button. Many programming libraries include a pre-built debounce function.

The following example use cases for debouncing functions can be implemented in JavaScript or other programming languages:

  • For a website that has a submit button to place an order, if a user double-clicks the button, they may accidentally buy the order twice. A debounce function would ensure that only one request is submitted.
  • For a site that takes input from a text box with an autofill or suggested search box, debounce can ensure that the input was accepted only after every letter was typed into the box. Other activations could cause poor performance, high server load or user confusion. A debounce function might wait a second or two after the last letter is typed before taking any action.
  • Another example might be a graphic element or message that's programmed to follow the cursor around the screen or as a webpage is scrolled through. This action could run hundreds of times a second and cause poor page performance or high resource utilization. A debounce function could limit the movement script to only run a few times a second to maintain smooth performance.

See in-demand programming languages for developers, explore what it means to do 'everything as code' in IT operations and learn about the different kinds of network switches.

This was last updated in December 2022

Continue Reading About debouncing

Networking
  • voice over LTE (VoLTE)

    Voice over LTE (VoLTE) is a digital packet technology that uses 4G LTE networks to route voice traffic and transmit data.

  • ONOS (Open Network Operating System)

    Open Network Operating System (ONOS) is an OS designed to help network service providers build carrier-grade software-defined ...

  • telematics

    Telematics is a term that combines the words telecommunications and informatics to describe the use of communications and IT to ...

Security
  • three-factor authentication (3FA)

    Three-factor authentication (3FA) is the use of identity-confirming credentials from three separate categories of authentication ...

  • cyber espionage

    Cyber espionage (cyberespionage) is a type of cyber attack that malicious hackers carry out against a business or government ...

  • role-based access control (RBAC)

    Role-based access control (RBAC) is a method of restricting network access based on the roles of individual users within an ...

CIO
  • project charter

    A project charter is a formal short document that states a project exists and provides project managers with written authority to...

  • leadership

    Leadership is the ability of an individual or a group of people to influence and guide followers or members of an organization, ...

  • transaction

    In computing, a transaction is a set of related tasks treated as a single action.

HRSoftware
  • employee engagement

    Employee engagement is the emotional and professional connection an employee feels toward their organization, colleagues and work.

  • talent pool

    A talent pool is a database of job candidates who have the potential to meet an organization's immediate and long-term needs.

  • diversity, equity and inclusion (DEI)

    Diversity, equity and inclusion is a term used to describe policies and programs that promote the representation and ...

Customer Experience
  • sales development representative (SDR)

    A sales development representative (SDR) is an individual who focuses on prospecting, moving and qualifying leads through the ...

  • service level indicator

    A service level indicator (SLI) is a metric that indicates what measure of performance a customer is receiving at a given time.

  • customer data platform (CDP)

    A customer data platform (CDP) is a type of software application that provides a unified platform of customer information that ...

Close