RC Circuit Calculator: Time Constant, Charging, Discharging Curves
Analyze basic RC (resistor-capacitor) circuits. Compute the time constant τ = R × C and visualize charging and discharging behavior. Calculate capacitor voltage and current vs time, and find how long it takes to reach a specific voltage or percentage. Compare up to 3 scenarios.
If a capacitor's voltage drops to about 37% of its initial value after some time interval, you've just measured the RC time constant of the circuit it's in. τ = RC, and that single time scale governs every charge and discharge curve in a first-order RC system. The exact percentages: e⁻¹ ≈ 0.368 for discharge, (1 − e⁻¹) ≈ 0.632 for charge. After one τ you're at 63.2% of the final value during charging, 36.8% during discharging. After 5τ the capacitor is within 0.7% of the asymptote, which engineers treat as "done." If a measured curve doesn't match those benchmarks, the circuit isn't first-order. The usual cause is parasitic series inductance or non-ideal capacitor ESR.
The diagram matters here. Without seeing how current flows through R into C and how voltage builds across C, students confuse charge time with discharge time and misread signs. A labeled schematic showing the current loop plus a V(t) curve next to it makes the exponential behavior obvious.
Defining Polarity and Current Direction Before You Solve
An RC circuit has signs that bite if you don't fix them up front. Pick the polarity of the capacitor: which plate is +, which is −. Now define current direction relative to that. The convention I use: positive current flows into the + plate, building up positive charge there. Discharge current is then negative by definition, flowing out of the + plate.
That's consistent with the constitutive law i = C(dV/dt). If V_C is increasing (charging up), dV/dt is positive, so i is positive (flowing into +). If V_C is decreasing (discharging), dV/dt is negative, so i is negative (flowing out of +). The sign of the exponent in the equation never changes: V_C(t) = V_final + (V_initial − V_final) e^(−t/τ). What flips is V_initial relative to V_final.
The Core Equations
Charging: V_C(t) = V_s × (1 − e^(−t/τ))
Discharging: V_C(t) = V_0 × e^(−t/τ)
Time constant: τ = R × C
The most common student error is forgetting the minus sign in the exponent. e^(t/τ) blows up to infinity. e^(−t/τ) decays. If your simulation shows the capacitor voltage growing without bound, you've picked the wrong sign somewhere. KCL at the capacitor node is the safest check: current in equals current out, and Ohm's law on R gives you (V_s − V_C)/R, which is positive when V_C < V_s (still charging) and negative when V_C > V_s.
Common error: The formula is e^(−t/τ), not e^(t/τ). Positive exponent gives exponential growth (wrong); negative gives decay (correct). If you write the differential equation from KVL the sign comes out automatically: V_s = iR + V_C, with i = C dV_C/dt, gives dV_C/dt = (V_s − V_C)/(RC), which integrates to the decaying exponential.
Series vs. Parallel: A Mental Model for Voltage and Current Sharing
In a single-loop RC charging circuit, R and C sit in series across the source. Same current flows through both. Voltages add: V_s = V_R + V_C, with V_R = iR and V_C the capacitor charge state. That gives the voltage-sharing picture in real time. At t = 0 with C empty, all of V_s drops across R. At t = ∞ with C full, all of V_s drops across C. Mid-transient, they share.
Multiple capacitors in parallel sum their capacitances: C_total = C₁ + C₂ + C₃. They share voltage and split charge in proportion to their values. In series, capacitors do the opposite: 1/C_total = 1/C₁ + 1/C₂ + 1/C₃. They share charge (same i flowing) and split voltage inversely. Two equal caps in series give half the capacitance of one. Two equal caps in parallel give double.
For τ, what matters is the resistance and capacitance the cap actually sees. If you have one cap charging through two resistors in parallel, the effective R is R₁ ∥ R₂ = R₁R₂/(R₁+R₂), and τ = (R₁ ∥ R₂) × C. If two caps charge through one shared resistor, you have to look at the network: the simple τ = RC formula stops working when there are multiple capacitors with different node voltages.
Diagram Caption
Circuit schematic (charging): Voltage source V_s connected to resistor R in series with capacitor C. Current I flows clockwise from V_s through R into the positive plate of C. V_C measured across capacitor terminals.
V(t) plot: Horizontal axis is time (multiples of τ). Vertical axis is V_C. Curve starts at 0, rises steeply, then levels off approaching V_s asymptotically. Mark 63.2% line at t = 1τ, 86.5% at 2τ, 99.3% at 5τ.
Current plot: I(t) = (V_s/R) × e^(−t/τ). Starts at maximum I_0 = V_s/R, decays exponentially to zero. Current is highest when capacitor is empty (largest voltage difference across R).
Time Constants and Steady-State: What the Circuit Looks Like at t = 0 vs. t = ∞
This is the heart of RC analysis. At t = 0, an uncharged capacitor looks like a short to ground (zero voltage). At t = ∞, it looks like an open circuit (no DC current). The exponential is just the smooth interpolation between those two limits.
That gives you a fast trick for any first-order circuit: solve the t = 0+ network with caps replaced by their initial voltage (a short if uncharged, a battery if pre-charged), solve the t = ∞ network with caps replaced by opens, and compute τ as R_thévenin × C, where R_thévenin is the equivalent resistance seen looking out of the capacitor terminals with all sources zeroed. You don't need to write a differential equation. The general form V(t) = V_∞ + (V_0 − V_∞) e^(−t/τ) does the rest.
| Time (t) | V_C (charging) | V_C (discharging) | Current I |
|---|---|---|---|
| 0 | 0% of V_s | 100% of V_0 | I_max = V/R |
| 1τ | 63.2% | 36.8% | 36.8% of I_max |
| 2τ | 86.5% | 13.5% | 13.5% of I_max |
| 3τ | 95.0% | 5.0% | 5.0% of I_max |
| 5τ | 99.3% | 0.7% | 0.7% of I_max |
You can extract τ from experimental data without knowing R and C. Find the time when voltage reaches 63.2% of its final value (charging) or drops to 36.8% of its initial value (discharging). That time equals τ. Alternative method: draw a tangent to the curve at t = 0. The tangent intersects the final voltage level at t = τ. This works because the initial slope is V_s/τ (charging) or −V_0/τ (discharging).
From R and C: τ = R × C
Units: Ω × F = s. Example: 10 kΩ × 100 µF = 10,000 × 0.0001 = 1 s.
From the curve: τ is the time to reach 63.2% (charging) or 36.8% (discharging).
Real Components and Tolerances (the ±10% Resistor Problem)
Carbon-film resistors run ±5% out of the bag. Aluminum electrolytic capacitors are usually ±20%, sometimes worse. Stack those tolerances and a nominal τ = RC has a worst-case spread of about ±25%. For a debounce timer where you just need the contact to settle before sampling, that's fine. For a frequency-defining element in a 555 oscillator, it isn't.
ESR (equivalent series resistance) is the parasitic that bites first. A 1000 µF aluminum electrolytic has 0.1 to 1 Ω of ESR depending on the part. If your charging resistor is 10 Ω, ESR adds 10% directly to τ. If your charging resistor is 1 kΩ, ESR is in the noise. Tantalum and ceramic caps have much lower ESR (under 50 mΩ for a typical 10 µF X7R) but ceramics suffer from voltage coefficient: a Y5V cap can lose 80% of its rated capacitance under bias.
Leakage current matters for long τ. Aluminum electrolytics leak roughly 0.01 × C × V (in µA when C is in µF and V is in volts). For τ > 10 minutes, the leakage current competes with the charging current and the cap never reaches V_s. Use a film capacitor (polypropylene, polyester) for long-time-constant work. Their leakage time constant runs into hundreds of hours.
Effects the Simple Model Ignores
- ESR: Real capacitors have internal resistance. Large electrolytics can have several ohms of ESR, which adds to the charging resistor and changes τ.
- Leakage current: Capacitors slowly discharge through internal leakage. Long time constants (>minutes) can be affected by leakage competing with charging.
- Dielectric absorption: After discharging, capacitors can "recover" some voltage as charge redistributes internally. Affects precision timing.
- Inductance: At high frequencies or with fast edges, wire and component inductance creates RLC behavior with ringing, not smooth RC exponentials.
Rule of Thumb
The simple RC model works well when (a) ESR is below 10% of R, (b) leakage time constant is more than 10× the RC time constant, (c) frequencies are low enough that ωL ≪ R (no significant inductance), and (d) the supply can deliver the initial current spike I_max = V_s/R.
AC vs. DC: Knowing Which Equations Apply
The exponential τ = RC describes the response to a DC step. For a sinusoid, you switch to the frequency domain. Capacitor impedance is Z_C = 1/(jωC), and an RC series network becomes a low-pass filter with cutoff f_c = 1/(2πRC). The cutoff frequency and the time constant aren't the same thing, but they're related: f_c = 1/(2πτ).
At frequencies well below f_c, the cap looks open and V_out ≈ V_in. At frequencies well above, the cap looks like a short and V_out → 0 with a 20 dB/decade rolloff. At exactly f_c the output is down 3 dB (×0.707) and lags the input by 45°. That phase shift is the same physics as the t = 0 to t = τ delay you see in the time domain. They're two views of the same impulse response.
For a square wave fed into an RC network, the response depends on the relationship between the period T and τ. If T ≫ τ, the cap fully charges and discharges each cycle: you see the textbook exponential rises and falls. If T ≪ τ, the cap barely changes: you see a small triangular ripple riding on the DC average. The transition between those regimes (T ≈ τ) is where Schmitt-trigger oscillators and 555 timers operate.
Frequency-domain shortcut: If your input has many frequencies (a square wave, a noisy DC level, a modulated signal), don't try to solve V_C(t) component-by-component. Compute the transfer function H(jω) = 1/(1 + jωRC) for the low-pass case, and apply it to each Fourier component of the input. The output is the inverse transform.
Worked Example: Charging a 100 µF Cap Through 10 kΩ from 5 V
A common Arduino debounce or scope-probe compensation network: charge a 100 µF capacitor through 10 kΩ from a 5 V rail and watch what happens at t = τ, 2τ, 3τ.
Problem Setup
Given: R = 10 kΩ, C = 100 µF, V_s = 5 V, V_C(0) = 0.
Step 1: Time constant
τ = R × C = 10,000 × 100 × 10⁻⁶ = 1.0 s
Step 2: Voltage at key points
V_C(τ) = 5 × (1 − e⁻¹) = 5 × 0.632 = 3.16 V
V_C(2τ) = 5 × (1 − e⁻²) = 5 × 0.865 = 4.32 V
V_C(3τ) = 5 × (1 − e⁻³) = 5 × 0.950 = 4.75 V
V_C(5τ) = 5 × (1 − e⁻⁵) = 5 × 0.993 = 4.97 V
Step 3: Initial current
I(0) = V_s / R = 5 / 10,000 = 500 µA
Current decays with the same τ: I(τ) = 184 µA, I(5τ) = 3.4 µA. Total energy delivered by the source is C × V_s² = 2.5 mJ; half ends up stored in the cap (½CV² = 1.25 mJ) and half is dissipated as heat in R, regardless of R's value. That's a nice paradox of RC charging.
Arduino debounce application: A noisy mechanical switch can chatter for 5 to 20 ms. Pull the input pin to GND through 10 kΩ and put 100 nF (not 100 µF) across the pin to GND. τ = 10 kΩ × 100 nF = 1 ms. Bouncing edges that last under 1 ms are smoothed out; the input rises through the logic threshold (about 2.5 V on a 5 V Arduino) at roughly t = τ, giving a clean edge to the GPIO. Bumping C to 1 µF gives τ = 10 ms, which suppresses harsher bouncing at the cost of slower response.
Scope probe compensation: A 10× passive scope probe contains a 9 MΩ resistor in series with the scope's 1 MΩ input, giving a 10:1 divider. Each resistor is bypassed by a small capacitor: 9 pF in parallel with the 9 MΩ, and the scope's ~13 pF input. For flat frequency response, the RC products on each leg must match. The trim capacitor in the probe head adjusts the 9 pF until the square-wave response on screen has neither overshoot nor rounded corners. That's the visual signature of τ_top = τ_bottom.
References
The exponential charging behavior follows from Kirchhoff's voltage law and the capacitor equation i = C(dV/dt). Solving this first-order differential equation yields the exponential solutions. These sources cover derivations and practical applications:
- Horowitz, P. & Hill, W. (2015). The Art of Electronics (3rd ed.). Cambridge University Press. Chapter 1 covers RC time constants with practical examples and the AoE-canonical "1τ rule" for fast estimates.
- Sedra, A. S. & Smith, K. C. (2020). Microelectronic Circuits (8th ed.). Oxford University Press. RC circuit transient analysis in Chapter 6.
- Nilsson, J. W. & Riedel, S. A. (2019). Electric Circuits (11th ed.). Pearson. First-order RC circuits in Chapters 7 and 8.
- All About Circuits allaboutcircuits.com. Free online textbook with RC examples.
- HyperPhysics (Georgia State University) hyperphysics.phy-astr.gsu.edu. Accessible derivations of capacitor charging and discharging.
- Vishay BC Components datasheet for 100 µF aluminum electrolytic series, listing typical ESR and leakage current vs. temperature.
Note: This calculator uses ideal RC circuit equations. For real circuit design, verify component specifications (ESR, leakage, tolerances) and include appropriate safety margins for timing-critical applications.
Limitations and Assumptions
- •Ideal components: assumes zero ESR, no leakage, perfect linearity. Real capacitors, especially electrolytics, deviate significantly.
- •First-order model: applies to simple RC circuits only. Multiple capacitors or inductors create higher-order responses with different behavior.
- •Step input: formulas assume an instantaneous voltage step. Slowly varying inputs or PWM require frequency-domain analysis.
- •Safety warning: charged capacitors store energy and can deliver dangerous shocks. Always discharge safely before handling. Not for design of safety-critical systems.
Debugging RC Circuit Time Constant Problems
Real questions from students stuck on unit conversions, exponential percentages, parasitic resistance, and charge vs discharge sign conventions.
What is the RC time constant?
The RC time constant is τ = R · C, where R is in ohms and C is in farads, giving τ in seconds. It sets the speed at which capacitor voltage rises during charging or falls during discharging in an RC circuit. When a capacitor charges through a resistor from voltage source V_s, its voltage follows V(t) = V_s · (1 − e^(−t/τ)). After one time constant (t = τ), V reaches 63% of V_s. After 5τ, V is within 1% of V_s, which is the working definition of "fully charged." Discharge runs the same exponential the other way: V(t) = V₀ · e^(−t/τ), dropping to 37% of its initial value at t = τ. A 10 kΩ resistor with a 100 µF capacitor gives τ = 10⁴ · 10⁻⁴ = 1 second. Watch the units: kΩ · µF = ms, MΩ · µF = s, kΩ · pF = ns. Mixing prefixes is the most common source of order-of-magnitude errors. The time constant also defines the −3 dB frequency of a first-order RC filter: f_c = 1/(2πτ). For the 1 s example above, that's 0.16 Hz, which is way too slow for audio but fine for a debounce circuit. Designers use τ to size everything from button debouncing (10 ms) and power-supply soft-start (hundreds of ms) to sample-and-hold timing in microseconds and longer hold-up capacitors at seconds.
My capacitor voltage reads 6.3 V after one time constant when charging to 10 V—is 63% always the magic number?
Yes, 63.2% is baked into the exponential math. After one τ, V(t) = V_s × (1 − e⁻¹) = V_s × 0.632. After 2τ it's 86.5%, 3τ is 95%, 4τ is 98.2%, 5τ is 99.3%. These percentages are universal for any first-order RC circuit regardless of component values. Engineers memorize 63% at 1τ and 99% at 5τ; the rest you can derive from e^(−n).
I calculated τ = 10 but my answer is way off—turns out I used kΩ and µF without converting. What's the right way to handle units?
The time constant τ = R × C requires consistent units. If R is in kΩ and C is in µF, multiply directly: 10 kΩ × 100 µF = 1000 ms = 1 s. That works because kilo (10³) times micro (10⁻⁶) equals milli (10⁻³). If you want τ in seconds, either convert both to base SI (Ω and F) or use this shortcut: kΩ × µF gives milliseconds, MΩ × µF gives seconds, kΩ × nF gives microseconds. Write the unit conversion explicitly until it's automatic.
I need the capacitor to reach 90% in under 2 seconds—how do I pick R and C?
Work backwards from the percentage. 90% means V/V_s = 0.9, so 1 − e^(−t/τ) = 0.9, giving e^(−t/τ) = 0.1, thus t/τ = ln(10) ≈ 2.3. You need t = 2.3τ < 2 s, so τ < 0.87 s. Pick any R × C product under 870 ms. Example: R = 8.7 kΩ, C = 100 µF gives τ = 0.87 s, reaching 90% at exactly 2 s. Smaller τ reaches 90% faster but also means higher initial current (I = V_s/R).
The discharge curve on my scope looks linear, not exponential—did I wire something wrong?
Probably not wrong, just zoomed in too far. Near the start of discharge (first 0.5τ), the exponential curve looks almost linear because the slope changes gradually. Zoom out to see the full 5τ range and the curve becomes obvious. Another possibility: if you're using a constant-current source instead of a resistor, you actually get linear discharge (V = V₀ − It/C). Check that you have a plain resistor, not a current regulator.
I calculated τ = 1 ms but my circuit takes way longer to charge—what's adding extra resistance?
Hidden resistance sources: the voltage source has internal resistance (often 50 Ω for function generators), breadboard contacts add 0.1–1 Ω per connection, wire resistance adds up over long runs, and the capacitor itself has ESR (equivalent series resistance), typically 0.1–10 Ω depending on type. For small R values (under 100 Ω), these parasitic resistances dominate. Measure actual τ with a scope and back-calculate total R.
My professor says the capacitor is 'fully charged' after 5τ but it's only at 99.3%—isn't that still incomplete?
Mathematically, the capacitor never reaches 100% because V(t) = V_s × (1 − e^(−t/τ)) only equals V_s when t → ∞. But 99.3% is close enough that the remaining 0.7% is below measurement noise in most instruments. After 5τ, continuing to charge gains almost nothing: from 5τ to 6τ you only go from 99.3% to 99.75%. Engineers define 'full' as 'within tolerance for the application.'
During discharge, my current flows backward—is negative current a real thing or a sign error?
It's real and expected. During charging, current flows into the capacitor (positive by convention). During discharge, current flows out (negative by the same convention). The magnitude follows I(t) = −(V₀/R) × e^(−t/τ) for discharge. The negative sign just indicates direction relative to your reference. If you defined current as always positive magnitude, use |I(t)| and note the direction separately.
I'm comparing two capacitors: same capacitance but one charges faster—what's different?
ESR (equivalent series resistance) varies between capacitor types. Electrolytics have higher ESR (0.1–5 Ω) than ceramics (<0.1 Ω) or film caps. Higher ESR effectively adds to your circuit resistance, increasing τ. Also check capacitor tolerance: a '100 µF' electrolytic might actually be 80–120 µF (±20%), while a film cap is typically ±5%. Measure actual capacitance with an LCR meter if timing matters.
My simulation shows 5 V at t = 0 but my real circuit shows 4.8 V—where's the missing 0.2 V?
Voltage divider effect from source impedance. If your supply has 50 Ω internal resistance and you're measuring across a 1 kΩ resistor, at t = 0 the uncharged cap acts like a short, and you see V × (0 / (50 + 0)) = 0 V across the cap. But if you're measuring across R, you see V × R/(R + R_source). The 'missing' voltage drops across the source impedance. Simulators with ideal sources don't show this unless you add explicit source resistance.
Can I use this calculator for an RL circuit if I pretend L/R is like RC?
Sort of, with care. RL circuits have τ = L/R (inductance divided by resistance), while RC circuits have τ = RC. The exponential behavior is similar, but the physics differs: capacitors store energy in electric fields (½CV²), inductors store energy in magnetic fields (½LI²). Current in RL circuits behaves like voltage in RC circuits. Use an RL-specific calculator to avoid sign and variable confusion.