2 · Inputs & sensors
Toggle button (debounced)
Intermediate20 min
Goal
One press turns on, the next turns off — with no contact bounce.
Why it matters
A mechanical contact bounces for ~10 ms: without filtering, one press counts as ten.
What you need
- Arduino UNO board
- Push button
Nothing to buy: every component below is simulated in the browser.
Steps
- 01Store the previous button state (lastState).
- 02Detect the falling edge HIGH → LOW.
- 03Ignore changes happening less than 50 ms after the previous one (millis()).
- 04Toggle a boolean ledOn and apply it.
This tutorial runs inside the Circuitly simulator: your wiring and your code are checked automatically at every step.
Frequently asked questions
- Do I need to buy hardware for this tutorial?
- No. Everything runs in the browser: Circuitly simulates the board, the components and the code. Real hardware is optional if you want to rebuild the circuit afterwards.
- Which components are used?
- Arduino UNO board, Push button. They are already available in the simulator library.
- How long does it take?
- About 20 minutes, intermediate level, in 4 guided steps.
- What should I know before starting?
- The previous tutorial in the series, “Read a push button”, is enough preparation. No software install is required.
- Is the code provided and checked?
- The simulator checks your wiring and your code automatically at every step, and shows the commented solution if you get stuck.
For teachers
Get the teaching pack: 6 ready-to-run sessions
Full progression, objectives, student steps and an assessment grid — printable, free.
One address, no spam: just the pack and classroom updates.