3 · Outputs & actuators
PWM: dimming an LED
Intermediate15 min
Goal
Breathe an LED from 0 to 255 with analogWrite().
Why it matters
PWM fakes an analog voltage by chopping the signal very fast — the basis of dimmers and motor drives.
What you need
- Arduino UNO board
- 5 mm LED
- 220 Ω resistor
- Light sensor (LDR)
- MPU6050 IMU
Nothing to buy: every component below is simulated in the browser.
Steps
- 01Place the LED on a PWM pin (3, 5, 6, 9, 10 or 11).
- 02Ramp a variable from 0 to 255 with a for loop.
- 03Apply analogWrite(pin, value), then ramp back down.
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, 5 mm LED, 220 Ω resistor, Light sensor (LDR), MPU6050 IMU. They are already available in the simulator library.
- How long does it take?
- About 15 minutes, intermediate level, in 3 guided steps.
- What should I know before starting?
- The previous tutorial in the series, “Hardware interrupts”, 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.