Zener diode resistor calculator
A 5.1 V zener on a 12 V rail feeding 20 mA needs a 345 Ω series resistor that dissipates 0.138 W, so a 0.5 W part is suggested. Enter supply voltage, zener voltage and load current to get the value and wattage. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Unregulated supply
- 12
- Zener diode reverse breakdown
- 5.1
- Load current
- 0.02
- Voltage drop
- 6.9
- Series resistance
- 345
- Resistance ohms
- 345
- Resistor power
- 0.138
A simple shunt zener regulator holds a nearly fixed voltage at the cathode of a reverse-biased zener diode by dumping excess current through the diode whenever the load draws less than the series current. The first design step is always the series resistor between the unregulated supply and that regulated node: its value sets how much current is available for the load plus the zener, and its power dissipation decides the package you must stock. This zener diode resistor calculator takes the three numbers every student and technician already has on the bench—supply voltage, zener voltage, and load current—applies the textbook dropper formulas Rs equals supply minus zener over load current and resistor power equals that same voltage drop times load current, and returns a cleaned resistance, dissipation, and a recommended discrete power rating with a safety margin.
How the series zener resistor is sized
In the classic single-resistor shunt regulator the unregulated supply Vs feeds a series resistor Rs that drops into a parallel combination of the zener diode and the load. Under the common teaching assumption that series current is sized primarily for the load current IL, Ohm's law on the dropper gives Rs equals Vs minus Vz all over IL.
The voltage across the resistor is always Vs minus Vz while the zener is in reverse breakdown, so the instantaneous power in the resistor is that voltage drop times the series current, which simplifies to Pr equals Vs minus Vz times IL, or equivalently IL squared times Rs. Those two identities are enough to pick a preferred E-series ohm value and a wattage package before you refine knee current, temperature coefficient, or dynamic impedance on a later pass.
Physically the zener voltage must stay strictly below the supply: if Vz is greater than Vs the diode never reaches breakdown from that rail, and if Vz equals Vs the headroom is zero so Rs would be zero and the formula is undefined. The algorithm is a handful of floating-point subtractions, divisions, and multiplications plus a lookup of the next common discrete power rating at or above twice the calculated dissipation so a 0.1 W result lands on a 0.25 W part rather than an undersized 0.125 W body.
Where zener resistor calculators show up in real work
Introductory electronics labs constantly assign a twelve-volt rail, a five-volt-one or five-volt-six zener, and a stated load current so students can compute the series resistor before they solder a prototype and measure the regulated node with a multimeter. Firmware and hardware bring-up teams size cheap reference clamps for microcontroller ADC rails, sensor bias nets, and indicator LED strings that share a zener node, then record the chosen ohm and wattage values in the bill of materials.
Repair technicians reconstructing a failed shunt regulator from a burned resistor often only know the original zener marking and the approximate load; a trusted Rs and power estimate avoids another undersized part. Keep parallel resistance, voltage-divider, and op-amp reference landings separate so each search intent has one clear page rather than a overloaded multi-topology tool that confuses both students and search engines.
What you can do with it
Lab homework and first prototypes
Compute Rs and wattage for a textbook shunt zener on a fixed rail so students can compare calculated ohms against a multimeter reading before refining knee current.
MCU and sensor rail clamps
Size a cheap series dropper and power package for a five-volt zener clamp on a twelve-volt industrial rail feeding a light microcontroller or sensor bias load.
FAQ
What formula does this zener diode resistor calculator use?
Rs = (Vs − Vz) / IL for the series resistance in ohms, and Pr = (Vs − Vz) · IL for the power dissipated in that resistor. A recommended discrete power rating is chosen at or above twice the calculated dissipation.
What happens if the zener voltage exceeds the supply?
A shunt zener cannot regulate above its supply rail; Vz must be strictly less than Vs so the series resistor has positive headroom.
Is load current entered in milliamps or amperes?
Amperes. Enter 0.02 for a 20 mA load. Non-positive currents are rejected so unit mistakes surface as validation errors instead of absurd ohm values.
Does this include a separate zener bias current Iz?
No. This landing uses the three-input teaching model where series current is the load current. Add Iz into your own effective current before calling if your design needs a minimum knee current.
What does it cost?
The browser tool is free and runs locally.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/elec/zener-resistor \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"supply_voltage":12,"zener_voltage":5.1,"load_current":0.02}'const res = await fetch("https://api.kit.forhosting.com/elec/zener-resistor", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"supply_voltage": 12,
"zener_voltage": 5.1,
"load_current": 0.02
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/zener-resistor",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"supply_voltage": 12,
"zener_voltage": 5.1,
"load_current": 0.02
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/zener-resistor", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"supply_voltage":12,"zener_voltage":5.1,"load_current":0.02}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"supply_voltage":12,"zener_voltage":5.1,"load_current":0.02}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/zener-resistor", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"supply_voltage": 12,
"zener_voltage": 5.1,
"load_current": 0.02
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.zener_resistor",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
If the zener voltage equals or exceeds the supply, regulation is impossible and the request fails with a clear validation error instead of a silent zero-ohm absurdity.
How the series zener resistor is sized
This capability therefore rejects any case where the zener voltage exceeds or equals the supply with invalid_input, and it also rejects non-positive voltages or currents that would hide a unit mistake such as typing milliamps as amperes without converting.
What you send and what you get back
Example values that match a five-volt-one zener on a twelve-volt rail with twenty milliamps of load are supply twelve, zener five point one, and load current zero point zero two. If you need multi-branch current dividers, pure series resistance sums, LED current limiters with forward drop, or a full linear regulator with dropout and thermal resistance, treat those as separate tools rather than overloading this three-input zener dropper page. Send three finite positive numbers: supply_voltage in volts for the unregulated rail, zener_voltage in volts for the diode breakdown rating, and load_current in amperes for the current drawn from the regulated node. Aliases such as vs, vin, vz, v_z, il, i_load, and current are accepted so form widgets and scripts stay convenient, but only one key may appear for each quantity. Missing fields, non-numeric strings, NaN, Infinity, non-positive values, and any case where the zener voltage is greater than or equal to the supply fail with invalid_input and are not charged. On success the response echoes the cleaned inputs, voltage_drop as Vs minus Vz, series_resistance and resistance_ohms as the same ohm value, resistor_power and power_watts as the same dissipation in watts, power_rating_watts as the recommended discrete package size, unit labels, method zener_series_dropper, and the formula string Rs equals open parenthesis Vs minus Vz close parenthesis over IL. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where zener resistor calculators show up in real work
Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Integration use cases
BOM and fixture regression
Script the same Rs and power formulas used in the browser so CI fixtures assert that stocked resistor wattages still cover worst-case load current.