analogWrite(pwmPin, level)
Outputs PWM duty cycle from 0 to 255.
Create a smooth analog-like output using PWM.
Control LED brightness, buzzers, and motor driver speed inputs.
Use a PWM-capable pin from the map.
Connect an LED with resistor or a motor driver enable input.
Increase level until it reaches 255.
Reverse stepSize to fade back down.
These are the sections learners should understand before changing the sketch.
Outputs PWM duty cycle from 0 to 255.
Controls how quickly brightness or speed changes.
Reverses direction at the ends of the fade.
Use this first table for the exact sample wiring, then use the board-family table when moving the sketch to another Arduino board.
| Code name | Sample pin | Mode | Connect to | Note |
|---|---|---|---|---|
| pwmPin | D3 | PWM OUTPUT | LED through resistor or motor-driver enable input | Must be a PWM-capable pin for analogWrite(). |
The code names stay the same; only the physical board pins may change by family. Always confirm with the board silkscreen when using clones or special variants.
| Board family | Digital | PWM | Analog | I2C | SPI | Interrupt |
|---|---|---|---|---|---|---|
| Uno / Nano / Pro MiniDefault target for these samples. | D0-D13 | D3, D5, D6, D9, D10, D11 | A0-A5 | A4 SDA, A5 SCL | D10 SS, D11 MOSI, D12 MISO, D13 SCK / ICSP | D2, D3 |
| Mega 2560Best for many sensors or multiple serial ports. | D0-D53 | D2-D13, D44-D46 | A0-A15 | D20 SDA, D21 SCL | D50 MISO, D51 MOSI, D52 SCK, D53 SS / ICSP | D2, D3, D18, D19, D20, D21 |
| Leonardo / MicroUSB serial can behave differently because the main MCU handles USB. | D0-D13 | D3, D5, D6, D9, D10, D11, D13 | A0-A5 plus extra analog-capable pins by board | D2 SDA, D3 SCL | ICSP header | D0, D1, D2, D3, D7 |
| Nano Every / Uno WiFi Rev2Check the board package pinout for exact PWM labels. | D0-D13 | PWM-marked digital pins | A0-A7 on Nano Every, A0-A5 on Uno WiFi Rev2 | SDA/SCL marked pins | ICSP/SPI marked pins | Use pins supported by digitalPinToInterrupt() |
| Uno R4 Minima / Uno R4 WiFi5V logic board; still confirm shield/library compatibility. | D0-D13 | PWM-marked digital pins | A0-A5 | SDA/SCL marked pins | ICSP/SPI marked pins | Use digitalPinToInterrupt(pin) |
| Due3.3V logic only; protect pins from 5V sensors. | D0-D53 | PWM-marked digital pins | A0-A11 | SDA/SCL and SDA1/SCL1 | SPI header | Use digitalPinToInterrupt(pin) |
| MKR / Nano 33 family3.3V logic. Some AVR-only libraries may need alternatives. | Board-marked digital pins | PWM-marked pins | Board-marked analog pins | SDA/SCL marked pins | SPI marked pins | Use digitalPinToInterrupt(pin) |
/*
Roboda verified Arduino sample 0004
Feature: PWM Fade
Generated for online build, classroom practice, and hardware upload testing.
*/
const byte pwmPin = 3;
int level = 0;
int stepSize = 1;
void setup() {
pinMode(pwmPin, OUTPUT);
}
void loop() {
analogWrite(pwmPin, level);
level += stepSize;
if (level <= 0 || level >= 255) {
stepSize = -stepSize;
}
delay(16);
}
Not a member yet? Register now
Are you a member? Login now
New messages appear in the Finite LiveChat Ops Android app.
Rate the lesson quality, diagrams, and support experience.