PWM Duty Cycle & Frequency Calculator
Calculate PWM signal frequency, period, duty cycle and pulse width. Convert from frequency + duty cycle to period + pulse width, or the other way around.
Input
Output
| Metric | Value |
|---|---|
| No data yet | |
Guides
PWM (pulse-width modulation) signals are usually described one of two ways — by frequency and duty cycle, or by period and pulse width — and datasheets, oscilloscopes and code don't always agree on which. This calculator converts freely between the two, and always returns every value: frequency, period, duty cycle, pulse width (high time) and pulse low (low time).
How to use it
- Choose which values you already know:
- Frequency + Duty Cycle — the frequency in Hz and the duty cycle as a percentage.
- Period + Pulse Width — the total period and the high-time pulse width, both in milliseconds.
- Enter your values and read off the full breakdown.
The formulas
- Period = 1 / Frequency
- Pulse Width (High Time) = Period × (Duty Cycle / 100)
- Pulse Low (Low Time) = Period − Pulse Width
- Frequency = 1 / Period
- Duty Cycle = Pulse Width / Period × 100
FAQ
What is duty cycle?
Duty cycle is the percentage of one period that a PWM signal spends HIGH. A 25% duty cycle at 1 kHz means the signal is high for a quarter of each 1 ms cycle (0.25 ms) and low for the rest (0.75 ms) — commonly used to control LED brightness, motor speed, or servo position by varying the average power delivered.
Does the PWM frequency matter for something like LED dimming?
Yes — too low a frequency (roughly under 100 Hz) can cause visible flicker, since the human eye starts to perceive the individual on/off cycles rather than an averaged brightness. Motor control and audio applications have their own frequency sweet spots, generally well above the flicker threshold.
Related tools
If you're generating the PWM signal from a 555 timer's astable output, see the 555 Timer Calculator for frequency and duty cycle from resistor/capacitor values.
Privacy
All calculations run entirely in your browser — the values you enter are never sent to a server.