# Voltage ## Microsim <iframe src="https://editor.p5js.org/sciencenibber/full/jSgb5aAeX" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe> <img src="../SPINTRONICS Images/Voltage.png" alt="Voltage microsim"> *Live sketch: [open in the p5.js editor](https://editor.p5js.org/sciencenibber/sketches/jSgb5aAeX). The poster image above is a placeholder pending an attended or server-side canvas capture.* ### p5.js source ```js // Voltage.js -- Wikitube MicroSim // Hub: SPINTRONICS · Branch: P - Power transmission // Pattern: V (field) + a single accelerated test charge + an energy ledger. // Animation is the point (a charge falls through a potential // difference), so we loop() but keep every per-frame loop bounded. // // CONCEPT // Voltage is energy per unit charge: W = q*V (volt = joule/coulomb). Between // two parallel plates a distance d apart at potential difference V the field // is uniform, E = V/d, so a charge q feels a constant force F = q*E = q*V/d. // Pushed across the gap it gains work W = F*d = q*V -- the d CANCELS, so the // energy gained depends only on V, not on the gap or the path. Released from // rest, all of qV becomes kinetic energy: (1/2) m v^2 = q V, hence the exit // speed v = sqrt(2 q V / m). For an electron (q = e) the exit energy in eV // equals V in volts (the definition of the electron-volt). A heavier proton // gains the SAME qV but leaves far slower. // // The real crossing is sub-microsecond, so the motion is shown in slow motion: // a normalized phase p in [0,1] advances at a fixed wall-clock rate while the // on-screen position follows x/d = p^2 (constant-acceleration shape) and the // live readouts report the true physical E, F, v, t_cross, and energy. // // GOLDEN RULES honoured: 720x520 + pixelDensity(2); layout derived from // width/height; ASCII-only strings (Unicode only in comments); SI units // internally, convert at the input; dt clamped (min(deltaTime/1000,0.05)); // cheap draw() with a baked offscreen scenery buffer; bounded per-frame loops // (a handful of field lines, no per-pixel work); HUD watermark drawn last; one // concept per control; reset restores ALL state; p5.disableFriendlyErrors=true. const ARTICLE = "Voltage"; // single source of truth (HUD + save name + URL) // ---- physical constants (SI) ---- const ECHARGE = 1.602e-19; // e, coulombs (magnitude of the elementary charge) const MASS_E = 9.109e-31; // electron mass, kg const MASS_P = 1.673e-27; // proton mass, kg // ---- control ranges (real symbols, meaningful ranges) ---- const V_MIN = 10, V_MAX = 2000, V_DEF = 1000; // V, volts (potential difference) const D_MIN = 1, D_MAX = 50, D_DEF = 10; // d, millimetres (plate gap) // ---- animation ---- const CROSS_WALL = 2.6; // wall-clock seconds for the slow-motion crossing // ---- controls ---- let vSlider, dSlider; let particleButton, releaseButton, playButton, resetButton; // ---- state ---- let isProton = false; // false = electron, true = proton let isPlaying = true; let phase = 0; // p in [0,1]; on-screen distance fraction = p^2 let scenery; // baked static buffer (plates, axes, fixed labels) // ---- layout (all derived; never hard-code magic coords in draw) ---- let capX0, capX1, capCX; // plate horizontal extent + centre line let plateTopY, plateBotY, gapPix; // plate y positions + on-screen gap let barX, barW; // energy ledger bar // ---- palette (ASCII identifiers only; none collide with p5 globals) ---- let BG, INK, MUTE, FRAME, POSC, NEGC, FIELDC, PARTC, KEC, PEC, GOOD; function setup() { createCanvas(720, 520); pixelDensity(2); p5.disableFriendlyErrors = true; // clean + cheap; no FES overhead textFont("monospace"); BG = color(14, 18, 32); INK = color(232, 238, 248); MUTE = color(120, 134, 158); FRAME = color(60, 72, 96); POSC = color(255, 120, 110); // + plate (red, high potential) NEGC = color(90, 150, 255); // - plate (blue, low potential / ref) FIELDC = color(150, 165, 200); // field lines PARTC = color(255, 210, 90); // the test charge KEC = color(120, 230, 150); // kinetic-energy bar (green) PEC = color(150, 120, 220); // potential-energy bar (violet) GOOD = color(120, 230, 150); // --- geometry from the canvas, not magic numbers --- capX0 = 70; capX1 = 350; capCX = (capX0 + capX1) / 2; plateTopY = 96; plateBotY = 304; gapPix = plateBotY - plateTopY; barX = 404; barW = 48; buildControls(); buildScenery(); // bake once -> draw() paints only dynamics // loop() runs while playing; we start armed and playing } function buildControls() { // one slider per concept, carrying the field's real symbol + a meaningful range vSlider = createSlider(V_MIN, V_MAX, V_DEF, 10); // V, volts dSlider = createSlider(D_MIN, D_MAX, D_DEF, 1); // d, mm vSlider.position(24, 392); vSlider.style("width", "180px"); dSlider.position(24, 430); dSlider.style("width", "180px"); particleButton = createButton("particle: electron"); particleButton.position(24, 470); particleButton.mousePressed(toggleParticle); releaseButton = createButton("release"); releaseButton.position(190, 470); releaseButton.mousePressed(doRelease); playButton = createButton("pause"); playButton.position(286, 470); playButton.mousePressed(togglePlay); resetButton = createButton("reset"); resetButton.position(360, 470); resetButton.mousePressed(resetAll); // changing V, d re-arms the launch so the shown trajectory matches the params vSlider.input(reArm); dSlider.input(reArm); } // re-arm to the start plate when a parameter changes (keeps play state) function reArm() { phase = 0; if (!isPlaying) redraw(); } function toggleParticle() { isProton = !isProton; particleButton.html(isProton ? "particle: proton" : "particle: electron"); phase = 0; if (!isPlaying) redraw(); } function doRelease() { // launch again from rest at the start plate phase = 0; isPlaying = true; playButton.html("pause"); loop(); } function togglePlay() { isPlaying = !isPlaying; playButton.html(isPlaying ? "pause" : "play"); if (isPlaying) loop(); else noLoop(); } function resetAll() { // reset restores ALL state, not just some vSlider.value(V_DEF); dSlider.value(D_DEF); isProton = false; particleButton.html("particle: electron"); phase = 0; isPlaying = true; playButton.html("pause"); loop(); redraw(); } // Pure model: SI in, named results out. Keeps draw() readable and unit-clean. function computeModel(Vvolt, Dmm) { const Vsi = Vvolt; // volts const dsi = Dmm * 1e-3; // metres const mass = isProton ? MASS_P : MASS_E; const dir = isProton ? +1 : -1; // +1 = downward (proton), -1 = upward (electron) const Efield = Vsi / dsi; // V/m (E = V/d) const force = ECHARGE * Efield; // N (F = qE, magnitude) const work = ECHARGE * Vsi; // J (W = qV) const workEV = Vsi; // eV (W/e = V for q = e) const accel = force / mass; // m/s^2 const vExit = Math.sqrt(2 * work / mass); // m/s (1/2 m v^2 = qV) const tCross = vExit / accel; // s (v = a t) return { Vsi, dsi, mass, dir, Efield, force, work, workEV, accel, vExit, tCross }; } function draw() { background(BG); image(scenery, 0, 0); // blit baked static scenery // read every control ONCE into named locals const Vvolt = vSlider.value(); const Dmm = dSlider.value(); const m = computeModel(Vvolt, Dmm); // advance the slow-motion playhead: phase rises at a fixed wall-clock rate so // the crossing is always watchable; on-screen distance fraction is phase^2 // (the constant-acceleration shape x = 1/2 a t^2). if (isPlaying) { const dt = Math.min(deltaTime / 1000, 0.05); phase += dt / CROSS_WALL; if (phase >= 1) { phase = 1; isPlaying = false; playButton.html("play"); noLoop(); } } const frac = phase * phase; // fraction of the gap travelled drawField(m); // dynamic: field-line brightness ~ E drawParticle(m, frac); // the accelerating charge + velocity arrow drawEnergyBar(m, frac); // PE -> KE ledger (sums to qV) drawReadouts(Vvolt, Dmm, m, frac); // numeric block + slider labels drawHUD(Vvolt, Dmm, m); // HUD watermark, drawn LAST } // ---- dynamic field lines (brightness/weight encode E = V/d) ---- function drawField(m) { // normalize E across the parameter box to a 0..1 intensity (log-ish via sqrt) const eMax = (V_MAX) / (D_MIN * 1e-3); // strongest field in range const inten = constrain(Math.sqrt(m.Efield / eMax), 0.08, 1); const nLines = 9; for (let i = 0; i < nLines; i++) { // bounded, cheap const x = lerp(capX0 + 22, capX1 - 22, i / (nLines - 1)); stroke(red(FIELDC), green(FIELDC), blue(FIELDC), 40 + inten * 180); strokeWeight(0.8 + inten * 2.0); line(x, plateTopY + 6, x, plateBotY - 6); // field points + (top) -> - (bottom) // arrowhead pointing DOWN (E direction), midway const ay = (plateTopY + plateBotY) / 2; noStroke(); fill(red(FIELDC), green(FIELDC), blue(FIELDC), 60 + inten * 180); triangle(x - 4, ay - 5, x + 4, ay - 5, x, ay + 4); } // current field magnitude label noStroke(); textAlign(CENTER, TOP); textSize(11); fill(INK); text("E = V/d = " + fmtField(m.Efield), capCX, plateBotY + 24); } // ---- the accelerating test charge + a velocity arrow ---- function drawParticle(m, frac) { // electron starts at the bottom plate and rises; proton starts at top, falls const yStart = m.dir < 0 ? plateBotY - 12 : plateTopY + 12; const yEnd = m.dir < 0 ? plateTopY + 12 : plateBotY - 12; const yPart = lerp(yStart, yEnd, frac); // faint path from the start plate to the current position stroke(PARTC, 70); strokeWeight(1); drawingContext.setLineDash([4, 5]); line(capCX, yStart, capCX, yPart); drawingContext.setLineDash([]); // velocity arrow (length ~ instantaneous speed fraction = phase) const vLen = 34 * phase; const vdir = m.dir < 0 ? -1 : +1; // up for electron, down for proton stroke(PARTC); strokeWeight(2); line(capCX, yPart, capCX, yPart + vdir * vLen); noStroke(); fill(PARTC); triangle(capCX - 4, yPart + vdir * vLen, capCX + 4, yPart + vdir * vLen, capCX, yPart + vdir * (vLen + 7)); // the charge itself, with its sign fill(PARTC); noStroke(); circle(capCX, yPart, 20); fill(20, 24, 38); textAlign(CENTER, CENTER); textSize(14); text(isProton ? "+" : "-", capCX, yPart - 1); fill(INK); textSize(10); textAlign(LEFT, CENTER); text(isProton ? "proton" : "electron", capCX + 14, yPart); } // ---- energy ledger: PE converts to KE, always summing to qV ---- function drawEnergyBar(m, frac) { const top = plateTopY, bot = plateBotY, H = gapPix; const keH = H * frac; // KE fraction = p^2 // frame noFill(); stroke(FRAME); strokeWeight(1.5); rect(barX, top, barW, H); // PE (top, shrinking) then KE (bottom, growing) noStroke(); fill(red(PEC), green(PEC), blue(PEC), 200); rect(barX, top, barW, H - keH); fill(red(KEC), green(KEC), blue(KEC), 220); rect(barX, bot - keH, barW, keH); // labels fill(INK); textSize(10); textAlign(CENTER, BOTTOM); text("qV", barX + barW / 2, top - 4); fill(PEC); textAlign(LEFT, CENTER); textSize(10); text("PE = qV(1-p^2)", barX + barW + 8, top + (H - keH) / 2); fill(KEC); text("KE = qV*p^2", barX + barW + 8, bot - keH / 2); // live KE value in eV fill(INK); textAlign(LEFT, TOP); textSize(11); text("KE = " + fmtEnergyEV(m.work * frac), barX, bot + 10); } // ---- control-region numeric readouts ---- function drawReadouts(Vvolt, Dmm, m, frac) { // slider value labels (control hints), middle column fill(INK); textSize(12); textAlign(LEFT, CENTER); noStroke(); text("V = " + Vvolt.toFixed(0) + " V", 214, 401); text("d = " + Dmm.toFixed(0) + " mm", 214, 439); // results block, right column const bx = 470, by = 96; textAlign(LEFT, TOP); textSize(12); fill(INK); text("E = V/d = " + fmtField(m.Efield), bx, by); text("F = qE = " + fmtForce(m.force), bx, by + 20); text("a = F/m = " + m.accel.toExponential(2) + " m/s2", bx, by + 40); text("W = qV = " + fmtEnergyEV(m.work), bx, by + 60); text(" " + m.work.toExponential(2) + " J", bx, by + 78); text("v_exit = " + fmtSpeed(m.vExit), bx, by + 98); text("t_cross = " + fmtTime(m.tCross), bx, by + 118); // live (now) values as it crosses fill(GOOD); textSize(12); text("v(now) = " + fmtSpeed(m.vExit * phase), bx, by + 144); text("t(now) = " + fmtTime(m.tCross * phase), bx, by + 162); // the invariance punchline fill(MUTE); textSize(11); text("note: change d -> E and F change,", bx, by + 188); text("but W = qV is unchanged.", bx, by + 204); } // ---- HUD watermark: title, URL, control hints, live equation footer ---- function drawHUD(Vvolt, Dmm, m) { noStroke(); textAlign(LEFT, TOP); fill(INK); textSize(15); text("Voltage -- energy per unit charge (W = qV)", 16, 12); fill(MUTE); textSize(11); text("en.wikitube.io/wiki/Voltage", 16, 33); text("drag V, d | toggle electron/proton | release | play/pause | reset", 24, 368); // live equation footer (drawn last, bottom) fill(MUTE); textSize(12); textAlign(LEFT, BOTTOM); text("E = V/d F = qE W = qV = KE v = sqrt(2qV/m)", 16, height - 10); } // ---- baked static scenery (never changes -> offscreen buffer) ---- function buildScenery() { scenery = createGraphics(720, 520); const g = scenery; g.pixelDensity(2); g.background(BG); g.textFont("monospace"); // --- parallel plates: + on top (high potential), - on bottom (reference) --- g.noStroke(); g.fill(red(POSC), green(POSC), blue(POSC), 230); g.rect(capX0, plateTopY - 10, capX1 - capX0, 10, 2); // top plate (+) g.fill(red(NEGC), green(NEGC), blue(NEGC), 230); g.rect(capX0, plateBotY, capX1 - capX0, 10, 2); // bottom plate (-) // plate signs and potentials g.textSize(13); g.textAlign(LEFT, CENTER); g.fill(255); g.text("+", capX0 + 8, plateTopY - 5); g.text("-", capX0 + 8, plateBotY + 5); g.fill(POSC); g.textSize(11); g.textAlign(RIGHT, BOTTOM); g.text("+V (high potential)", capX1, plateTopY - 14); g.fill(NEGC); g.textAlign(RIGHT, TOP); g.text("0 V (reference)", capX1, plateBotY + 14); // gap dimension marker on the left g.stroke(FRAME); g.strokeWeight(1); g.line(capX0 - 18, plateTopY, capX0 - 18, plateBotY); g.line(capX0 - 22, plateTopY, capX0 - 14, plateTopY); g.line(capX0 - 22, plateBotY, capX0 - 14, plateBotY); g.noStroke(); g.fill(MUTE); g.textSize(11); g.push(); g.translate(capX0 - 26, (plateTopY + plateBotY) / 2); g.rotate(-HALF_PI); g.textAlign(CENTER, BOTTOM); g.text("gap d", 0, 0); g.pop(); // section caption under the capacitor g.fill(MUTE); g.textSize(10); g.textAlign(CENTER, TOP); g.text("uniform field between parallel plates (slow motion)", capCX, plateBotY + 40); // --- energy-bar caption --- g.fill(INK); g.textSize(12); g.textAlign(LEFT, BOTTOM); g.text("energy", barX, plateTopY - 20); // --- divider between drawing region and control region --- g.stroke(FRAME); g.strokeWeight(1); g.line(16, 352, 704, 352); } // ---- compact engineering-unit formatters (ASCII units) ---- function fmtField(e) { if (e >= 1e6) return (e / 1e6).toFixed(2) + " MV/m"; if (e >= 1e3) return (e / 1e3).toFixed(1) + " kV/m"; return e.toFixed(0) + " V/m"; } function fmtForce(f) { if (f >= 1e-9) return (f / 1e-9).toFixed(2) + " nN"; if (f >= 1e-12) return (f / 1e-12).toFixed(2) + " pN"; if (f >= 1e-15) return (f / 1e-15).toFixed(2) + " fN"; return f.toExponential(2) + " N"; } function fmtSpeed(v) { if (v >= 1e6) return (v / 1e6).toFixed(2) + " Mm/s"; if (v >= 1e3) return (v / 1e3).toFixed(1) + " km/s"; return v.toFixed(0) + " m/s"; } function fmtTime(t) { if (t >= 1) return t.toFixed(2) + " s"; if (t >= 1e-3) return (t * 1e3).toFixed(2) + " ms"; if (t >= 1e-6) return (t * 1e6).toFixed(2) + " us"; if (t >= 1e-9) return (t * 1e9).toFixed(2) + " ns"; return (t * 1e12).toFixed(2) + " ps"; } function fmtEnergyEV(j) { const ev = j / ECHARGE; if (ev >= 1e6) return (ev / 1e6).toFixed(2) + " MeV"; if (ev >= 1e3) return (ev / 1e3).toFixed(2) + " keV"; return ev.toFixed(0) + " eV"; } ``` <!-- REAL-GENERATIVE-MEDIA:START --> ## MicroSim Two charged plates face each other with a uniform field drawn as vertical lines whose brightness tracks `E = V/d`. A test charge starts at rest on one plate and accelerates across the gap (shown in slow motion — the real crossing is sub-microsecond), its speed growing as it falls through the potential. A stacked energy bar shows electric potential energy converting into kinetic energy, the two always summing to `qV`; live readouts give `E`, `F`, `v`, the crossing time `t_cross`, and the exit energy in both joules and electron-volts. Sliders set `V` and `d`; a toggle swaps the **electron** for a **proton** (same `qV`, very different speed); buttons **release** (re-launch from rest), **play/pause**, and **reset**. Widen the gap `d` and watch the field and force weaken while the exit energy `qV` stays exactly the same — the signature invariance of voltage. **Possible extensions (publish/refine):** add a relativistic correction at high `V` (electrons pass ~10% of `c` by a few keV); overlay the **circuit view** (`V = I*R` with a battery, resistor, and a voltmeter tap); add a second reference probe to show that only **differences** of potential are physical; sweep `V` to plot exit energy `qV` and exit speed `sqrt(2qV/m)` side by side. ## Links (Wikipedia order) <!-- injected from _registry/childlinks/Voltage.json (2026-07-30T02:09:12Z) --> `AC_motor` · `Abraham–Lorentz_force` · `Albert_Einstein` · `Alessandro_Volta` · `Alfred-Marie_Liénard` · [[Alternating_current]] · `Ampère's_circuital_law` · `Ampère's_force_law` · `André-Marie_Ampère` · `Annales_de_chimie_et_de_physique` · `Automotive_battery` · `Benjamin_Franklin` · `Biot–Savart_law` · `Bremsstrahlung` · `Bridge_circuit` · `Capacitance` · `Capacitor` · `Carl_Friedrich_Gauss` · `Charge_density` · `Charles-Augustin_de_Coulomb` · `Charles_Proteus_Steinmetz` · `Classical_electromagnetism` · `Classical_electromagnetism_and_special_relativity` · `Computational_electromagnetics` · `Conservative_force` · `Coulomb` · [[Coulomb's_law]] · `Covariant_formulation_of_classical_electromagnetism` · `Curl_(mathematics)` · `Current_density` · `Cyclotron_radiation` · `DC_motor` · `Dimensional_analysis` · `Direct_current` · `Eddy_current` · `Electret` · `Electric_battery` · `Electric_charge` · [[Electric_current]] · `Electric_dipole_moment` · `Electric_field` · `Electric_flux` · `Electric_generator` · `Electric_machine` · [[Electric_motor]] · `Electric_potential` · `Electric_potential_energy` · `Electric_power` · [[Electric_power_transmission]] · `Electrical_conductor` · [[Electrical_engineering]] · `Electrical_impedance` · `Electrical_network` · `Electrical_resistance_and_conductance` · `Electricity` · `Electrochemical_potential` · `Electrolysis` · `Electromagnetic_field` · `Electromagnetic_four-potential` · `Electromagnetic_induction` · `Electromagnetic_mass` · `Electromagnetic_radiation` · `Electromagnetic_stress–energy_tensor` · `Electromagnetic_tensor` · `Electromagnetism` · `Electromotive_force` · [[Electron]] · `Electroscope` · `Electrostatic_discharge` · `Electrostatic_induction` · `Electrostatics` · `Emil_Lenz` · `Emil_Wiechert` · [[Energy]] · `English_language` · `Faraday's_law_of_induction` · `Fermi_level` · `Four-current` · `Franz_Ernst_Neumann` · `François_Arago` · `Félix_Savart` · `Galvani_potential` · `Gauge_fixing` · `Gauss's_law` · `Gauss's_law_for_magnetism` · `Georg_Ohm` · `George_Francis_FitzGerald` · `George_Green_(mathematician)` · `George_Singer` · `Giovanni_Aldini` · `Ground_(electricity)` · `Gustav_Kirchhoff` · `Gyrator–capacitor_model` · `Hans_Christian_Ørsted` · `Heinrich_Hertz` · `Helmholtz_decomposition` · `Hendrik_Lorentz` · `Hermann_von_Helmholtz` · `High_voltage` · `Hippolyte_Fizeau` · `History_of_electromagnetic_theory` · `Humphry_Davy` · `Hydraulic_analogy` · `Inductance` · `Induction_motor` · `Insulator_(electricity)` · `International_System_of_Units` · `J._J._Thomson` · `James_Clerk_Maxwell` · `James_Prescott_Joule` · `Jean-Baptiste_Biot` · `Jefimenko's_equations` · `John_Henry_Poynting` · `John_Hopkinson` · `Joseph_Henry` · `Joseph_Larmor` · `Josephson_effect` · [[Josiah_Willard_Gibbs]] · `Joule` · `Joule_heating` · `Kirchhoff's_circuit_laws` · `Larmor_formula` · `Lenz's_law` · `Line_integral` · `Linear_motor` · `List_of_electrical_phenomena` · `List_of_textbooks_in_electromagnetism` · `Liénard–Wiechert_potential` · `London_equations` · `Lord_Kelvin` · `Lorentz_force` · `Lorenz_gauge_condition` · `Luigi_Galvani` · `Magnetic_circuit` · `Magnetic_complex_reluctance` · `Magnetic_field` · `Magnetic_flux` · `Magnetic_moment` · `Magnetic_reluctance` · `Magnetic_scalar_potential` · `Magnetic_vector_potential` · `Magnetism` · `Magnetization` · `Magnetomotive_force` · `Magnetostatics` · `Mains_electricity` · `Mains_electricity_by_country` · `Mathematical_descriptions_of_the_electromagnetic_field` · `Maxwell's_equations` · `Maxwell's_equations_in_curved_spacetime` · `Maxwell_stress_tensor` · `Michael_Faraday` · `Multimeter` · `Network_analysis_(electrical_circuits)` · `Nikola_Tesla` · `Ohm's_law` · `Oliver_Heaviside` · `Open-circuit_voltage` · `Optics` · `Orders_of_magnitude_(voltage)` · `Oscilloscope` · `Overhead_line` · `Permeability_(electromagnetism)` · `Permeance` · `Permittivity` · `Physical_constant` · `Polarization_density` · `Potential` · `Potentiometer_(measuring_instrument)` · `Poynting's_theorem` · `Pressure` · `Pump` · `Quantity` · `Relativistic_electromagnetism` · `Resistor` · `Resonator` · `Retarded_potential` · `Right-hand_rule` · `Rotor_(electric)` · `SI_base_unit` · `SI_derived_unit` · `Scalar_(physics)` · `Series_and_parallel_circuits` · `Simply_connected_space` · `Siméon_Denis_Poisson` · `Speed_of_light` · `Static_electricity` · `Stator_(electric_machines)` · `Synchrotron_radiation` · `Test_particle` · `Thermoelectric_effect` · `Transformer` · `Triboelectric_effect` · `Turbine` · `Vacuum_tube` · `Volt` · `Voltage_(disambiguation)` · `Voltage_drop` · `Voltage_source` · `Voltaic_pile` · `Voltmeter` · `Volume` · `Watt` · `Waveguide_(radio_frequency)` · [[Wayback_Machine]] · `Wilhelm_Eduard_Weber` · `William_Gilbert_(physicist)` · `William_Ritchie_(physicist)` ## From the Real GENERATIVE library ![Voltage](https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/AA_AAA_AAAA_A23_battery_comparison-1.jpg/220px-AA_AAA_AAAA_A23_battery_comparison-1.jpg) *Voltage — placed from the Real G.E.N.E.R.A.T.I.V.E. course library (Audio room). Source: Wikimedia Commons (via Wikipedia article media). [Details & license](https://commons.wikimedia.org/wiki/File:AA_AAA_AAAA_A23_battery_comparison-1.jpg).* > Voltage, also known as (electrical) potential difference, electric pressure, or electric tension is the difference in electric potential between two points.[1][2] In a static electric field, it corresponds to the work needed per unit of charge to move a positive test charge from the first point to the second point. In the International System of Units (SI), ([Wikipedia](https://en.wikipedia.org/wiki/Voltage)) <!-- REAL-GENERATIVE-MEDIA:END --> *SPINTRONICS · branch **P — Power transmission** · MicroSim pattern **V** (field) with a single accelerated test charge and an [[Energy|energy]] ledger. Draft staged by the headless draft queue; the publish stage adds frontmatter, the live editor iframe, and routes this into the Power-transmission branch folder.* ## Overview **Voltage**, or **electric potential difference**, is the work needed per unit charge to move a charge between two points in an electric field. Its unit, the **volt** (V), is one **joule per coulomb** (`1 V = 1 J/C`). Voltage is the "pressure" that drives current through a circuit: connect two points at different potentials with a conductor and charge flows from high to low potential, just as water flows from high to low pressure. It is always a **difference** between two points — a single point's potential is only defined relative to a chosen reference (often ground at 0 V). Voltage ties together the three things electricity does. It is **energy per charge** (`U = qV`), it is the **integral of the electric field** along a path (`V = E*d` in a uniform field), and through **Ohm's law** (`V = I*R`) it sets the current a resistance will pass. This sketch builds the meaning from the first of these: a charge crossing a potential difference `V` gains exactly `qV` of energy, no matter how wide the gap or what path it takes. ## The physics / derivation **Definition — energy per unit charge.** Moving a charge `q` between two points that differ in potential by `V` does work ``` W = q * V so U = q * V (electric potential energy) ``` Voltage is `W/q`: the joules delivered per coulomb. That is why a 1.5 V cell and a 12 V battery differ — each coulomb leaving the 12 V terminal carries eight times the energy. **Uniform field between parallel plates.** Hold two parallel plates a distance `d` apart at a potential difference `V`. The field between them is uniform and points from the `+` plate to the `-` plate, with magnitude ``` E = V / d equivalently V = E * d ``` So volts-per-metre is literally the unit of electric field. Halving the gap at fixed `V` doubles the field. **[[Force]], work, and the key invariance.** A charge `q` in that field feels a constant force `F = q*E = q*V/d`. Pushed across the full gap it receives work ``` W = F * d = (q V / d) * d = q V ``` The `d` cancels: **the energy a charge gains depends only on the potential difference `V`, not on the gap width or the path.** That path-independence is exactly what makes "voltage" a single useful number for each point. **From potential energy to speed.** Release the charge from rest; all of `qV` becomes kinetic energy: ``` (1/2) m v^2 = q V -> v = sqrt( 2 q V / m ) ``` This is how [[Electron|electron]] guns, CRTs, and particle accelerators work, and it defines the **electron-volt**: an electron (`q = e`) accelerated through `1 V` gains `1 eV` of energy — so the exit energy in electron-volts equals the voltage in volts. A heavier [[Proton|proton]] gains the **same** `qV` of energy but comes out much slower. **Circuit view.** Across a resistor, voltage and current obey **Ohm's law** `V = I*R`, and around any closed loop the voltage rises and drops sum to zero (**Kirchhoff's voltage law**) — the same statement that potential is single-valued at each node. ## Parameter table (controls -> real symbols) | Control | Symbol | Meaning | Range (sim) | |---------|:------:|---------|-------------| | potential difference | `V` | plate-to-plate voltage; sets `E = V/d` and `W = qV` | 10 – 2000 V | | plate gap | `d` | separation; larger `d` weakens the field at fixed `V` | 1 – 50 mm | | test particle | `q, m` | electron (`-e`, `m_e`) or proton (`+e`, `m_p`) | toggle | *Derived and displayed:* field `E = V/d`, force `F = qE`, work/energy `W = qV` (in joules and electron-volts), exit speed `v = sqrt(2qV/m)`, the real crossing time `t_cross`, and the running split of energy between potential and kinetic as the charge crosses. ## Learning objective Understand that **voltage is energy per unit charge**: a charge `q` falling through a potential difference `V` gains exactly `W = qV` of energy — **independent of the gap width or path** — and that the same `V` defines the uniform field `E = V/d` between plates and, on release, an exit speed `v = sqrt(2qV/m)` (so equal energy, but lighter charges go faster). <!-- CRAFT-LINK:START g12 --> *Built to the [[WT!P5_js_Microsim_Master_Class|p5.js Master Class]].* <!-- CRAFT-LINK:END --> ## Wikipedia : Wikitube **Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Voltage) : [Wikitube](https://en.wikitube.io/wiki/Voltage) ## Previous hub tags Tree parents: [[Control_theory]] · [[Graph_theory]] · [[Helium]]. Legacy hubs: none. --- *Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*