{"id":6866,"date":"2026-04-11T13:09:08","date_gmt":"2026-04-11T16:09:08","guid":{"rendered":"https:\/\/fisica2.fica.unsl.edu.ar\/?page_id=6866"},"modified":"2026-04-12T21:31:52","modified_gmt":"2026-04-13T00:31:52","slug":"capacitores_dielectricos","status":"publish","type":"page","link":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/capacitores_dielectricos\/","title":{"rendered":"capacitores_diel\u00e9ctricos"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6866\" class=\"elementor elementor-6866\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-097fdd4 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"097fdd4\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-62d7527\" data-id=\"62d7527\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-dab10ca elementor-widget elementor-widget-html\" data-id=\"dab10ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Laboratorio de Capacitores \u2014 Diel\u00e9ctrico<\/title>\n<style>\n  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n  :root {\n    --bg-dark: #0f172a; --bg-panel: #111827; --bg-input: #1f2937;\n    --border: #374151; --text: #e5e7eb; --text-muted: #9ca3af;\n    --amber: #f59e0b; --emerald: #10b981; --purple: #a855f7;\n    --cyan: #06b6d4; --red: #ef4444; --blue: #60a5fa;\n  }\n  body {\n    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    background: var(--bg-dark); color: var(--text); overflow: hidden; height: 100vh;\n  }\n  .cap-sim { display: flex; flex-direction: column; height: 100vh; }\n  .cap-header {\n    flex-shrink: 0; background: linear-gradient(to right, #1e293b, #1f2937, #1e293b);\n    border-bottom: 1px solid rgba(255,255,255,0.08); padding: 10px 16px; text-align: center;\n  }\n  .cap-header h1 { font-size: 15px; font-weight: 700; letter-spacing: 0.5px; }\n  .cap-header .title-amber { color: var(--amber); }\n  .cap-header .title-sep { color: #6b7280; margin: 0 8px; }\n  .cap-header .title-green { color: var(--emerald); }\n  .cap-body { display: flex; flex: 1; min-height: 0; flex-direction: column; }\n  @media (min-width: 900px) { .cap-body { flex-direction: row; } }\n  .cap-canvas-wrap { flex: 1; min-height: 300px; position: relative; }\n  .cap-canvas-wrap canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }\n  .cap-sidebar {\n    flex-shrink: 0; width: 100%; max-height: 50vh; overflow-y: auto;\n    background: rgba(17,24,39,0.85); backdrop-filter: blur(6px);\n    border-left: 1px solid rgba(255,255,255,0.06); padding: 16px;\n  }\n  @media (min-width: 900px) { .cap-sidebar { width: 300px; max-height: none; } }\n  .cap-section { border-left: 2px solid var(--border); padding-left: 12px; margin-bottom: 20px; }\n  .cap-section.amber { border-color: rgba(245,158,11,0.3); }\n  .cap-section-title {\n    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px;\n    margin-bottom: 10px; display: flex; align-items: center; gap: 6px;\n  }\n  .cap-section.amber .cap-section-title { color: var(--amber); }\n  .ctrl-slider { margin-bottom: 12px; }\n  .ctrl-slider-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 5px; }\n  .ctrl-slider-header label { font-size: 11px; color: var(--text-muted); }\n  .ctrl-slider-header .ctrl-val {\n    font-size: 11px; color: var(--amber); font-family: 'Courier New', monospace;\n    font-weight: 600; background: rgba(245,158,11,0.1); padding: 1px 6px; border-radius: 3px;\n  }\n  input[type=\"range\"] {\n    -webkit-appearance: none; appearance: none; width: 100%; height: 6px;\n    background: var(--bg-input); border-radius: 3px; outline: none; cursor: pointer;\n  }\n  input[type=\"range\"]::-webkit-slider-thumb {\n    -webkit-appearance: none; appearance: none; width: 16px; height: 16px;\n    border-radius: 50%; background: var(--amber); border: 2px solid var(--bg-dark);\n    box-shadow: 0 0 4px rgba(245,158,11,0.4); cursor: pointer; transition: transform 0.15s;\n  }\n  input[type=\"range\"]::-webkit-slider-thumb:hover { transform: scale(1.2); }\n  input[type=\"range\"]::-moz-range-thumb {\n    width: 16px; height: 16px; border-radius: 50%; background: var(--amber);\n    border: 2px solid var(--bg-dark); cursor: pointer;\n  }\n  .ctrl-select { margin-bottom: 12px; }\n  .ctrl-select label { display: block; font-size: 11px; color: var(--text-muted); margin-bottom: 4px; }\n  .ctrl-select select {\n    width: 100%; background: var(--bg-input); border: 1px solid var(--border);\n    color: var(--text); font-size: 12px; padding: 6px 10px; border-radius: 6px;\n    cursor: pointer; outline: none;\n  }\n  .ctrl-select select:focus { border-color: var(--amber); }\n  .ctrl-select select option { background: var(--bg-input); color: var(--text); }\n  .ctrl-chk { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }\n  .ctrl-chk input[type=\"checkbox\"] {\n    -webkit-appearance: none; appearance: none; width: 16px; height: 16px;\n    border: 1.5px solid #6b7280; border-radius: 3px; background: transparent;\n    cursor: pointer; position: relative; flex-shrink: 0;\n  }\n  .ctrl-chk input[type=\"checkbox\"]:checked { background: var(--amber); border-color: var(--amber); }\n  .ctrl-chk input[type=\"checkbox\"]:checked::after {\n    content: ''; position: absolute; left: 4px; top: 1px; width: 5px; height: 9px;\n    border: solid var(--bg-dark); border-width: 0 2px 2px 0; transform: rotate(45deg);\n  }\n  .ctrl-chk label { font-size: 11px; color: var(--text-muted); cursor: pointer; user-select: none; }\n  .ctrl-divider { border-top: 1px solid rgba(255,255,255,0.06); padding-top: 10px; margin-top: 8px; }\n  .ctrl-indent { padding-left: 12px; border-left: 2px solid rgba(245,158,11,0.2); margin-left: 4px; }\n  .switch-row {\n    display: flex; align-items: center; gap: 10px; margin-bottom: 10px;\n    padding: 8px 10px; background: rgba(31,41,55,0.6); border-radius: 6px;\n    border: 1px solid rgba(255,255,255,0.06);\n  }\n  .switch-row .switch-label { font-size: 11px; color: var(--text-muted); flex: 1; }\n  .switch-row .switch-status { font-size: 10px; font-weight: 700; letter-spacing: 0.5px; padding: 2px 6px; border-radius: 3px; }\n  .switch-row .switch-status.on { background: rgba(16,185,129,0.2); color: #10b981; }\n  .switch-row .switch-status.off { background: rgba(239,68,68,0.2); color: #ef4444; }\n  .toggle-switch {\n    position: relative; width: 40px; height: 22px; flex-shrink: 0; cursor: pointer;\n  }\n  .toggle-switch input { opacity: 0; width: 0; height: 0; }\n  .toggle-track {\n    position: absolute; inset: 0; background: #374151; border-radius: 11px;\n    transition: background 0.3s;\n  }\n  .toggle-switch input:checked + .toggle-track { background: #10b981; }\n  .toggle-knob {\n    position: absolute; top: 2px; left: 2px; width: 18px; height: 18px;\n    background: #fff; border-radius: 50%; transition: transform 0.3s;\n    box-shadow: 0 1px 3px rgba(0,0,0,0.3);\n  }\n  .toggle-switch input:checked ~ .toggle-knob { transform: translateX(18px); }\n  .fisar-logo-wrap {\n    text-align: center; padding: 16px 0 8px 0; border-top: 1px solid rgba(255,255,255,0.06); margin-top: 12px;\n  }\n  .fisar-logo-wrap img { max-width: 180px; width: 100%; opacity: 0.85; }\n<\/style>\n<\/head>\n<body>\n\n<div class=\"cap-sim\">\n  <header class=\"cap-header\">\n    <h1>\n      <span class=\"title-amber\">Laboratorio de Capacitores<\/span>\n      <span class=\"title-sep\">\u2014<\/span>\n      <span class=\"title-green\">Diel\u00e9ctrico<\/span>\n    <\/h1>\n  <\/header>\n\n  <div class=\"cap-body\">\n    <div class=\"cap-canvas-wrap\" id=\"canvasWrap\">\n      <canvas id=\"simCanvas\"><\/canvas>\n    <\/div>\n\n    <aside class=\"cap-sidebar\">\n      <div class=\"cap-section amber\">\n        <div class=\"cap-section-title\">Controles<\/div>\n\n        <!-- INTERRUPTOR BATER\u00cdA -->\n        <div class=\"switch-row\">\n          <span class=\"switch-label\">Bater\u00eda<\/span>\n          <span class=\"switch-status on\" id=\"batStatus\">CONECTADA<\/span>\n          <label class=\"toggle-switch\">\n            <input type=\"checkbox\" id=\"batSwitch\" checked>\n            <span class=\"toggle-track\"><\/span>\n            <span class=\"toggle-knob\"><\/span>\n          <\/label>\n        <\/div>\n\n        <div class=\"ctrl-slider\">\n          <div class=\"ctrl-slider-header\">\n            <label>Separaci\u00f3n de placas (d)<\/label>\n            <span class=\"ctrl-val\" id=\"sepVal\">5 mm<\/span>\n          <\/div>\n          <input type=\"range\" id=\"sepSlider\" min=\"1\" max=\"20\" step=\"0.5\" value=\"5\">\n        <\/div>\n        <div class=\"ctrl-slider\">\n          <div class=\"ctrl-slider-header\">\n            <label>\u00c1rea de placas (A)<\/label>\n            <span class=\"ctrl-val\" id=\"areaVal\">100 cm\u00b2<\/span>\n          <\/div>\n          <input type=\"range\" id=\"areaSlider\" min=\"50\" max=\"500\" step=\"10\" value=\"100\">\n        <\/div>\n        <div class=\"ctrl-slider\" id=\"voltSliderWrap\">\n          <div class=\"ctrl-slider-header\">\n            <label>Voltaje de bater\u00eda (V)<\/label>\n            <span class=\"ctrl-val\" id=\"voltVal\">1.5 V<\/span>\n          <\/div>\n          <input type=\"range\" id=\"voltSlider\" min=\"0\" max=\"10\" step=\"0.1\" value=\"1.5\">\n        <\/div>\n        <div class=\"ctrl-select\">\n          <label>Material diel\u00e9ctrico<\/label>\n          <select id=\"matSelect\">\n            <option value=\"aire\">Aire (\u03ba = 1)<\/option>\n            <option value=\"papel\">Papel (\u03ba = 3.5)<\/option>\n            <option value=\"vidrio\">Vidrio (\u03ba = 5)<\/option>\n            <option value=\"agua\">Agua (\u03ba = 80)<\/option>\n            <option value=\"custom\">Personalizado<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"ctrl-indent\" id=\"customKappaWrap\" style=\"display:none;\">\n          <div class=\"ctrl-slider\">\n            <div class=\"ctrl-slider-header\">\n              <label>\u03ba personalizado<\/label>\n              <span class=\"ctrl-val\" id=\"kCustomVal\">1.0<\/span>\n            <\/div>\n            <input type=\"range\" id=\"kCustomSlider\" min=\"1\" max=\"100\" step=\"0.5\" value=\"1\">\n          <\/div>\n        <\/div>\n        <div class=\"ctrl-slider\">\n          <div class=\"ctrl-slider-header\">\n            <label>Posici\u00f3n del diel\u00e9ctrico<\/label>\n            <span class=\"ctrl-val\" id=\"dPosVal\">0%<\/span>\n          <\/div>\n          <input type=\"range\" id=\"dPosSlider\" min=\"0\" max=\"100\" step=\"1\" value=\"0\">\n        <\/div>\n\n        <div class=\"ctrl-divider\">\n          <div class=\"ctrl-chk\">\n            <input type=\"checkbox\" id=\"chkQ\" checked>\n            <label for=\"chkQ\">Cargas en las placas<\/label>\n          <\/div>\n          <div class=\"ctrl-chk\">\n            <input type=\"checkbox\" id=\"chkP\" checked>\n            <label for=\"chkP\">Polarizaci\u00f3n del diel\u00e9ctrico<\/label>\n          <\/div>\n        <\/div>\n        <div class=\"ctrl-divider\">\n          <div class=\"ctrl-chk\">\n            <input type=\"checkbox\" id=\"chkE0\" checked>\n            <label for=\"chkE0\" style=\"color:#22d3ee;\">E\u2080 \u2014 Campo de cargas libres<\/label>\n          <\/div>\n          <div class=\"ctrl-chk\">\n            <input type=\"checkbox\" id=\"chkEi\" checked>\n            <label for=\"chkEi\" style=\"color:#f87171;\">E\u1d62 \u2014 Campo inducido<\/label>\n          <\/div>\n          <div class=\"ctrl-chk\">\n            <input type=\"checkbox\" id=\"chkEr\" checked>\n            <label for=\"chkEr\" style=\"color:#4ade80;\">E \u2014 Campo resultante<\/label>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <!-- FISAR LOGO -->\n      <div class=\"fisar-logo-wrap\">\n        <a href=\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/FISAR_SIM\/\" target=\"_blank\">\n        <img decoding=\"async\" src=\"FISAR_SIM_1\" alt=\"FISAR Logo\" class=\"header-logo\"><\/a>\n      <\/div>\n    <\/aside>\n  <\/div>\n<\/div>\n\n<script>\nvar EPSILON_0 = 8.854e-12;\n\nvar MATERIALS = {\n  aire:   { name: 'Aire',   kappa: 1.0,  fill: 'rgba(180,200,230,0.08)', fillHi: 'rgba(180,200,230,0.14)', border: 'rgba(180,200,230,0.20)', label: 'rgba(180,200,230,0.5)', accent: '#b4c8e6' },\n  papel:  { name: 'Papel',  kappa: 3.5,  fill: 'rgba(255,220,100,0.32)', fillHi: 'rgba(255,220,100,0.42)', border: 'rgba(255,210,60,0.55)', label: 'rgba(255,210,60,0.85)', accent: '#ffd244' },\n  vidrio: { name: 'Vidrio', kappa: 5.0,  fill: 'rgba(100,200,255,0.28)', fillHi: 'rgba(100,200,255,0.38)', border: 'rgba(80,180,255,0.55)', label: 'rgba(100,200,255,0.85)', accent: '#64c8ff' },\n  agua:   { name: 'Agua',   kappa: 80.0, fill: 'rgba(50,140,255,0.32)', fillHi: 'rgba(50,140,255,0.42)', border: 'rgba(40,120,255,0.55)', label: 'rgba(50,140,255,0.85)', accent: '#328cff' },\n  custom: { name: 'Personalizado', kappa: 1.0, fill: 'rgba(140,255,140,0.28)', fillHi: 'rgba(140,255,140,0.38)', border: 'rgba(100,255,100,0.55)', label: 'rgba(140,255,140,0.85)', accent: '#8cff8c' },\n};\n\nvar state = {\n  sep: 5, area: 100, volt: 1.5,\n  mat: 'aire', kCustom: 1, dPos: 0,\n  showQ: true, showP: true,\n  showE0: true, showEi: true, showEr: true,\n  connected: true,    \/\/ bater\u00eda conectada\n  lockedQ: 0,         \/\/ carga almacenada al desconectar\n  lockedV: 0,         \/\/ voltaje almacenado al desconectar\n};\n\nfunction calcCapacitance() {\n  var d = state.sep \/ 1000;\n  var a = state.area \/ 10000;\n  var k = state.mat === 'custom' ? state.kCustom : MATERIALS[state.mat].kappa;\n  var frac = state.dPos \/ 100;\n  var kEff = frac * k + (1 - frac);\n  return kEff * EPSILON_0 * a \/ d;\n}\n\nfunction getKEff() {\n  var k = state.mat === 'custom' ? state.kCustom : MATERIALS[state.mat].kappa;\n  var frac = state.dPos \/ 100;\n  return frac * k + (1 - frac);\n}\n\nfunction calcPhysics() {\n  var d = state.sep \/ 1000;\n  var a = state.area \/ 10000;\n  var C = calcCapacitance();\n  var k = state.mat === 'custom' ? state.kCustom : MATERIALS[state.mat].kappa;\n  var frac = state.dPos \/ 100;\n  var kEff = getKEff();\n\n  var V, Q;\n  if (state.connected) {\n    \/\/ Conectado: V fijo por bater\u00eda, Q = CV\n    V = state.volt;\n    Q = C * V;\n  } else {\n    \/\/ Desconectado: Q fijo (carga atrapada), V = Q\/C\n    Q = state.lockedQ;\n    V = C > 0 ? Q \/ C : 0;\n  }\n\n  var E0 = Q \/ (EPSILON_0 * a);   \/\/ Campo debido a las cargas libres (Q\/epsilon_0*A)\n  var E  = E0 \/ kEff;              \/\/ Campo resultante (reducido por el diel\u00e9ctrico)\n  var Ei = E0 - E;                 \/\/ Campo inducido (se opone a E0 en el diel\u00e9ctrico)\n  return { C: C, Q: Q, U: 0.5 * C * V * V, E0: E0, Ei: Ei, E: E, V: V, kEff: kEff, k: k, frac: frac };\n}\n\nfunction fmt(val, u) {\n  var a = Math.abs(val);\n  if (a === 0) return '0 ' + u;\n  if (a >= 1) return val.toFixed(3) + ' ' + u;\n  if (a >= 1e-3) return (val * 1e3).toFixed(3) + ' m' + u;\n  if (a >= 1e-6) return (val * 1e6).toFixed(3) + ' \\u00B5' + u;\n  if (a >= 1e-9) return (val * 1e9).toFixed(3) + ' n' + u;\n  if (a >= 1e-12) return (val * 1e12).toFixed(3) + ' p' + u;\n  return val.toExponential(3) + ' ' + u;\n}\n\nfunction fmtE(val) {\n  var a = Math.abs(val);\n  if (a === 0) return '0 V\/m';\n  if (a >= 1e6) return (val \/ 1e6).toFixed(2) + ' MV\/m';\n  if (a >= 1e3) return (val \/ 1e3).toFixed(2) + ' kV\/m';\n  return val.toFixed(2) + ' V\/m';\n}\n\nfunction rRect(ctx, x, y, w, h, r) {\n  ctx.beginPath();\n  ctx.moveTo(x + r, y); ctx.lineTo(x + w - r, y);\n  ctx.quadraticCurveTo(x + w, y, x + w, y + r); ctx.lineTo(x + w, y + h - r);\n  ctx.quadraticCurveTo(x + w, y + h, x + w - r, y + h); ctx.lineTo(x + r, y + h);\n  ctx.quadraticCurveTo(x, y + h, x, y + h - r); ctx.lineTo(x, y + r);\n  ctx.quadraticCurveTo(x, y, x + r, y); ctx.closePath();\n}\n\nfunction drawFieldArrow(ctx, x, y, size, color, direction) {\n  var dir = direction || 1;\n  ctx.save();\n  ctx.strokeStyle = color; ctx.lineWidth = 1.8;\n  ctx.beginPath();\n  ctx.moveTo(x - size * 0.7 * dir, y);\n  ctx.lineTo(x + size * 0.4 * dir, y);\n  ctx.stroke();\n  ctx.fillStyle = color;\n  ctx.beginPath();\n  ctx.moveTo(x + size * 0.7 * dir, y);\n  ctx.lineTo(x + size * 0.25 * dir, y - size * 0.35);\n  ctx.lineTo(x + size * 0.25 * dir, y + size * 0.35);\n  ctx.closePath(); ctx.fill();\n  ctx.restore();\n}\n\nfunction drawCharge(ctx, x, y, positive, alpha, sz) {\n  sz = sz || 6;\n  var r = sz;\n  var fg = positive ? 'rgba(239,68,68,' + alpha + ')' : 'rgba(96,165,250,' + alpha + ')';\n  var bg = positive ? 'rgba(127,29,29,' + (alpha * 0.5) + ')' : 'rgba(30,58,138,' + (alpha * 0.5) + ')';\n  ctx.fillStyle = bg;\n  ctx.beginPath(); ctx.arc(x, y, r, 0, Math.PI * 2); ctx.fill();\n  ctx.strokeStyle = fg; ctx.lineWidth = 1;\n  ctx.beginPath(); ctx.arc(x, y, r, 0, Math.PI * 2); ctx.stroke();\n  ctx.fillStyle = fg;\n  ctx.font = 'bold ' + Math.round(r * 1.5) + 'px sans-serif';\n  ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n  ctx.fillText(positive ? '+' : '\\u2212', x, y + 0.5);\n}\n\nfunction drawMeterBar(ctx, x, y, w, h, pct, color, label, unit, sublabel) {\n  ctx.fillStyle = 'rgba(30,41,59,0.85)';\n  rRect(ctx, x, y, w, h, 4); ctx.fill();\n  ctx.strokeStyle = 'rgba(255,255,255,0.12)'; ctx.lineWidth = 1;\n  rRect(ctx, x, y, w, h, 4); ctx.stroke();\n  var fillW = Math.max(0, Math.min(w - 4, (w - 4) * pct));\n  if (fillW > 0) {\n    ctx.fillStyle = color;\n    rRect(ctx, x + 2, y + 2, fillW, h - 4, 3); ctx.fill();\n  }\n  if (sublabel) {\n    ctx.fillStyle = 'rgba(255,255,255,0.75)';\n    ctx.font = 'bold 10px sans-serif'; ctx.textAlign = 'left'; ctx.textBaseline = 'top';\n    ctx.fillText(label, x + 6, y + 3);\n    ctx.fillStyle = 'rgba(255,255,255,0.45)';\n    ctx.font = '8px sans-serif'; ctx.textBaseline = 'bottom';\n    ctx.fillText(sublabel, x + 6, y + h - 3);\n  } else {\n    ctx.fillStyle = 'rgba(255,255,255,0.75)';\n    ctx.font = '10px sans-serif'; ctx.textAlign = 'left'; ctx.textBaseline = 'middle';\n    ctx.fillText(label, x + 6, y + h \/ 2);\n  }\n  ctx.fillStyle = '#fff'; ctx.font = 'bold 9px monospace';\n  ctx.textAlign = 'right'; ctx.textBaseline = 'middle';\n  ctx.fillText(unit, x + w - 6, y + h \/ 2);\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ MAIN DRAW\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nfunction draw(ctx, W, H, t) {\n  var ph = calcPhysics();\n  var ms = MATERIALS[state.mat];\n  var frac = ph.frac;\n  var k = ph.k;\n  var isConnected = state.connected;\n  var effectiveV = ph.V;\n\n  \/\/ Background\n  var bg = ctx.createRadialGradient(W * 0.4, H * 0.45, 0, W * 0.4, H * 0.45, W * 0.8);\n  bg.addColorStop(0, '#1a2744'); bg.addColorStop(1, '#0f172a');\n  ctx.fillStyle = bg; ctx.fillRect(0, 0, W, H);\n\n  \/\/ Grid dots\n  ctx.fillStyle = 'rgba(255,255,255,0.015)';\n  for (var gx = 0; gx < W; gx += 20)\n    for (var gy = 0; gy < H; gy += 20)\n      ctx.fillRect(gx, gy, 1, 1);\n\n  \/\/ Layout\n  var cx = W * 0.46, cy = H * 0.42;\n  var aScale = Math.sqrt(state.area \/ 100);\n  var pH = Math.min(H * 0.42, 220) * Math.min(aScale, 1.8);\n  var pW = 14;\n  var sNorm = (state.sep - 1) \/ 19;\n  var sepPx = 80 + sNorm * (Math.min(W * 0.36, 280) - 80);\n  var lx = cx - sepPx \/ 2;\n  var rx = cx + sepPx \/ 2;\n  var pT = cy - pH \/ 2;\n  var pB = cy + pH \/ 2;\n\n  \/\/ \u2500\u2500\u2500 BATTERY \u2500\u2500\u2500\n  var bx = Math.max(52, W * 0.07), by = cy, bW = 40, bH = 64;\n\n  if (isConnected) {\n    ctx.fillStyle = 'rgba(0,0,0,0.35)';\n    rRect(ctx, bx - bW \/ 2 + 3, by - bH \/ 2 + 3, bW, bH, 5); ctx.fill();\n    var bGrad = ctx.createLinearGradient(bx - bW \/ 2, by, bx + bW \/ 2, by);\n    bGrad.addColorStop(0, '#374151'); bGrad.addColorStop(0.3, '#4b5563');\n    bGrad.addColorStop(0.7, '#4b5563'); bGrad.addColorStop(1, '#374151');\n    ctx.fillStyle = bGrad;\n    rRect(ctx, bx - bW \/ 2, by - bH \/ 2, bW, bH, 5); ctx.fill();\n    ctx.strokeStyle = '#6b7280'; ctx.lineWidth = 1.5;\n    rRect(ctx, bx - bW \/ 2, by - bH \/ 2, bW, bH, 5); ctx.stroke();\n    ctx.fillStyle = '#d97706';\n    rRect(ctx, bx - 7, by - bH \/ 2 - 8, 14, 10, 2); ctx.fill();\n    ctx.strokeStyle = '#b45309'; ctx.lineWidth = 1;\n    rRect(ctx, bx - 7, by - bH \/ 2 - 8, 14, 10, 2); ctx.stroke();\n    ctx.fillStyle = '#6b7280';\n    rRect(ctx, bx - 5, by + bH \/ 2 - 2, 10, 8, 2); ctx.fill();\n    ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n    ctx.fillStyle = '#ef4444'; ctx.font = 'bold 18px sans-serif';\n    ctx.fillText('+', bx, by - bH \/ 2 - 20);\n    ctx.fillStyle = '#60a5fa'; ctx.font = 'bold 20px sans-serif';\n    ctx.fillText('\\u2212', bx, by + bH \/ 2 + 20);\n    ctx.fillStyle = '#fbbf24'; ctx.font = 'bold 12px monospace';\n    ctx.fillText(state.volt.toFixed(1) + 'V', bx, by);\n    ctx.fillStyle = 'rgba(255,255,255,0.4)'; ctx.font = '10px sans-serif';\n    ctx.fillText('Bater\\u00EDa', bx, by + bH \/ 2 + 38);\n  } else {\n    \/\/ Bater\u00eda desconectada: dibujar en gris\n    ctx.globalAlpha = 0.35;\n    ctx.fillStyle = 'rgba(0,0,0,0.35)';\n    rRect(ctx, bx - bW \/ 2 + 3, by - bH \/ 2 + 3, bW, bH, 5); ctx.fill();\n    ctx.fillStyle = '#374151';\n    rRect(ctx, bx - bW \/ 2, by - bH \/ 2, bW, bH, 5); ctx.fill();\n    ctx.strokeStyle = '#4b5563'; ctx.lineWidth = 1.5;\n    rRect(ctx, bx - bW \/ 2, by - bH \/ 2, bW, bH, 5); ctx.stroke();\n    ctx.fillStyle = '#555';\n    rRect(ctx, bx - 7, by - bH \/ 2 - 8, 14, 10, 2); ctx.fill();\n    ctx.fillStyle = '#555';\n    rRect(ctx, bx - 5, by + bH \/ 2 - 2, 10, 8, 2); ctx.fill();\n    ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n    ctx.fillStyle = '#666'; ctx.font = 'bold 18px sans-serif';\n    ctx.fillText('+', bx, by - bH \/ 2 - 20);\n    ctx.fillStyle = '#666'; ctx.font = 'bold 20px sans-serif';\n    ctx.fillText('\\u2212', bx, by + bH \/ 2 + 20);\n    ctx.fillStyle = '#777'; ctx.font = 'bold 12px monospace';\n    ctx.fillText('0.0V', bx, by);\n    ctx.globalAlpha = 1;\n\n    \/\/ Etiqueta desconectada\n    ctx.fillStyle = '#ef4444'; ctx.font = 'bold 10px sans-serif';\n    ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n    ctx.fillText('DESCONECTADA', bx, by + bH \/ 2 + 38);\n  }\n\n  \/\/ \u2500\u2500\u2500 WIRES \u2500\u2500\u2500\n  ctx.strokeStyle = isConnected ? '#9ca3af' : '#4b5563';\n  ctx.lineWidth = 2.5;\n  ctx.lineCap = 'round'; ctx.lineJoin = 'round';\n  var wTopY = pT - 35, wBotY = pB + 35;\n\n  \/\/ Puntos de conexi\u00f3n del switch en el cable superior\n  var swGapX1 = bx + 28, swGapX2 = bx + 48;\n  var swY = wTopY;\n\n  if (isConnected) {\n    \/\/ Cable superior completo: Battery+ \u2192 up \u2192 switch closed \u2192 right plate\n    ctx.beginPath();\n    ctx.moveTo(bx, by - bH \/ 2 - 8); ctx.lineTo(bx, wTopY);\n    ctx.lineTo(rx + pW \/ 2, wTopY); ctx.lineTo(rx + pW \/ 2, pT); ctx.stroke();\n  } else {\n    \/\/ Cable superior con GAP del switch abierto\n    ctx.beginPath();\n    ctx.moveTo(bx, by - bH \/ 2 - 8); ctx.lineTo(bx, wTopY);\n    ctx.lineTo(swGapX1, wTopY); ctx.stroke();\n    \/\/ Lado derecho del gap\n    ctx.beginPath();\n    ctx.moveTo(swGapX2, wTopY);\n    ctx.lineTo(rx + pW \/ 2, wTopY); ctx.lineTo(rx + pW \/ 2, pT); ctx.stroke();\n\n    \/\/ Dibujar switch abierto\n    ctx.strokeStyle = '#ef4444'; ctx.lineWidth = 2.5;\n    ctx.beginPath();\n    ctx.moveTo(swGapX1, swY); ctx.lineTo(swGapX2, swY - 14); ctx.stroke();\n    \/\/ Contactos del switch\n    ctx.fillStyle = '#9ca3af';\n    ctx.beginPath(); ctx.arc(swGapX1, swY, 3.5, 0, Math.PI * 2); ctx.fill();\n    ctx.beginPath(); ctx.arc(swGapX2, swY, 3.5, 0, Math.PI * 2); ctx.fill();\n    \/\/ Etiqueta\n    ctx.fillStyle = '#ef4444'; ctx.font = 'bold 9px sans-serif';\n    ctx.textAlign = 'center'; ctx.textBaseline = 'bottom';\n    ctx.fillText('ABIERTO', (swGapX1 + swGapX2) \/ 2, swY - 16);\n  }\n\n  \/\/ Cable inferior: Battery\u2212 \u2192 down \u2192 right \u2192 left plate\n  ctx.strokeStyle = isConnected ? '#9ca3af' : '#4b5563';\n  ctx.lineWidth = 2.5;\n  ctx.beginPath();\n  ctx.moveTo(bx, by + bH \/ 2 + 6); ctx.lineTo(bx, wBotY);\n  ctx.lineTo(lx - pW \/ 2, wBotY); ctx.lineTo(lx - pW \/ 2, pB); ctx.stroke();\n\n  \/\/ Wire connection dots\n  ctx.fillStyle = isConnected ? '#9ca3af' : '#4b5563';\n  ctx.beginPath(); ctx.arc(rx + pW \/ 2, pT, 3.5, 0, Math.PI * 2); ctx.fill();\n  ctx.beginPath(); ctx.arc(lx - pW \/ 2, pB, 3.5, 0, Math.PI * 2); ctx.fill();\n\n  \/\/ \u2500\u2500\u2500 ANIMATED CURRENT DOTS \u2014 ANTICLOCKWISE (solo si conectado) \u2500\u2500\u2500\n  if (isConnected && state.volt > 0.01) {\n    var dotAlpha = Math.min(0.8, state.volt \/ 4);\n    var speed = t * 60;\n    function drawDots(segs, count) {\n      var totalLen = 0;\n      var segLens = segs.map(function(s) { var l = Math.hypot(s.ex - s.sx, s.ey - s.sy); totalLen += l; return l; });\n      ctx.fillStyle = 'rgba(251,191,36,' + dotAlpha + ')';\n      for (var i = 0; i < count; i++) {\n        var prog = ((speed + i * totalLen \/ count) % totalLen);\n        var acc = 0;\n        for (var si = 0; si < segs.length; si++) {\n          if (prog <= segLens[si] + acc + 0.01) {\n            var p = (prog - acc) \/ segLens[si];\n            var ddx = segs[si].sx + p * (segs[si].ex - segs[si].sx);\n            var ddy = segs[si].sy + p * (segs[si].ey - segs[si].sy);\n            ctx.beginPath(); ctx.arc(ddx, ddy, 2.5, 0, Math.PI * 2); ctx.fill();\n            break;\n          }\n          acc += segLens[si];\n        }\n      }\n    }\n    \/\/ Top wire: right plate \u2192 up \u2192 left \u2192 down to Battery+ (electrons go left = antihorario)\n    var topSegs = [\n      { sx: rx + pW \/ 2, sy: pT, ex: rx + pW \/ 2, ey: wTopY },\n      { sx: rx + pW \/ 2, sy: wTopY, ex: bx, ey: wTopY },\n      { sx: bx, sy: wTopY, ex: bx, ey: by - bH \/ 2 - 8 },\n    ];\n    \/\/ Bottom wire: Battery\u2212 \u2192 down \u2192 right \u2192 up to left plate (electrons go right = antihorario)\n    var botSegs = [\n      { sx: bx, sy: by + bH \/ 2 + 6, ex: bx, ey: wBotY },\n      { sx: bx, sy: wBotY, ex: lx - pW \/ 2, ey: wBotY },\n      { sx: lx - pW \/ 2, sy: wBotY, ex: lx - pW \/ 2, ey: pB },\n    ];\n    drawDots(topSegs, 5);\n    drawDots(botSegs, 5);\n  }\n\n  \/\/ \u2500\u2500\u2500 PLATES \u2014 ANTICLOCKWISE: RIGHT=positive, LEFT=negative \u2500\u2500\u2500\n  function drawPlate(x, isPos) {\n    var depth = 6;\n    ctx.fillStyle = '#374151';\n    if (isPos) ctx.fillRect(x + pW \/ 2, pT + depth, depth, pH);\n    else ctx.fillRect(x - pW \/ 2 - depth, pT + depth, depth, pH);\n    var g = ctx.createLinearGradient(x - pW \/ 2, 0, x + pW \/ 2, 0);\n    g.addColorStop(0, '#4b5563'); g.addColorStop(0.2, '#8b95a3');\n    g.addColorStop(0.5, '#b0b8c4'); g.addColorStop(0.8, '#8b95a3');\n    g.addColorStop(1, '#4b5563');\n    ctx.fillStyle = g; ctx.fillRect(x - pW \/ 2, pT, pW, pH);\n    var glowX = isPos ? x - pW \/ 2 : x + pW \/ 2;\n    var glowG = ctx.createLinearGradient(glowX, pT, glowX + (isPos ? -8 : 8), pT);\n    glowG.addColorStop(0, isPos ? 'rgba(239,68,68,0.30)' : 'rgba(96,165,250,0.30)');\n    glowG.addColorStop(1, 'transparent');\n    ctx.fillStyle = glowG;\n    ctx.fillRect(isPos ? x - pW \/ 2 : x + pW \/ 2 - 8, pT, 8, pH);\n    ctx.strokeStyle = '#6b7280'; ctx.lineWidth = 1;\n    ctx.strokeRect(x - pW \/ 2, pT, pW, pH);\n  }\n  drawPlate(rx, true);   \/\/ Right plate = POSITIVE\n  drawPlate(lx, false);   \/\/ Left plate = NEGATIVE\n\n  \/\/ \u2500\u2500\u2500 DIELECTRIC \u2500\u2500\u2500\n  if (frac > 0.005) {\n    var dW = sepPx * frac;\n    var dX = lx + pW \/ 2;\n    var dPad = 4;\n    ctx.fillStyle = 'rgba(0,0,0,0.15)';\n    ctx.fillRect(dX + 3, pT + dPad + 3, dW, pH - dPad * 2);\n    var dG = ctx.createLinearGradient(dX, pT, dX + dW, pT);\n    dG.addColorStop(0, ms.fill); dG.addColorStop(0.3, ms.fillHi);\n    dG.addColorStop(0.7, ms.fillHi); dG.addColorStop(1, ms.fill);\n    ctx.fillStyle = dG;\n    ctx.fillRect(dX, pT + dPad, dW, pH - dPad * 2);\n    ctx.strokeStyle = ms.border; ctx.lineWidth = 2;\n    ctx.strokeRect(dX, pT + dPad, dW, pH - dPad * 2);\n    ctx.save(); ctx.globalAlpha = 0.05; ctx.strokeStyle = '#fff'; ctx.lineWidth = 0.5;\n    for (var hx = dX; hx < dX + dW + pH; hx += 10) {\n      ctx.beginPath(); ctx.moveTo(hx, pT + dPad); ctx.lineTo(hx - pH * 0.4, pB - dPad); ctx.stroke();\n    }\n    ctx.restore();\n    if (dW > 45) {\n      ctx.fillStyle = ms.label; ctx.font = 'bold 12px sans-serif';\n      ctx.textAlign = 'center'; ctx.textBaseline = 'bottom';\n      var nm = state.mat === 'custom' ? '\\u03BA = ' + state.kCustom.toFixed(1) : ms.name;\n      ctx.fillText(nm, dX + dW \/ 2, pT + dPad - 6);\n    }\n    var gripX = dX + dW - 3;\n    ctx.fillStyle = 'rgba(255,255,255,0.25)';\n    for (var gy2 = pT + dPad + 15; gy2 < pB - dPad - 10; gy2 += 12) {\n      rRect(ctx, gripX - 4, gy2, 8, 3, 1); ctx.fill();\n    }\n    \/\/ Polarization\n    if (state.showP && effectiveV > 0.01) {\n      var sp = 20, dLen = 9;\n      var sX = dX + sp \/ 2 + 5, eX = dX + dW - sp \/ 2 - 5;\n      for (var dx = sX; dx <= eX; dx += sp) {\n        for (var dy = pT + dPad + sp; dy < pB - dPad - sp \/ 2; dy += sp) {\n          var pulse = Math.sin(t * 2.5 + dx * 0.03 + dy * 0.03) * 0.2;\n          var al = Math.min(0.85, effectiveV \/ 3) * (0.55 + pulse);\n          ctx.fillStyle = 'rgba(96,165,250,' + al + ')';\n          ctx.beginPath(); ctx.arc(dx + dLen \/ 2, dy, 2.5, 0, Math.PI * 2); ctx.fill();\n          ctx.fillStyle = 'rgba(239,68,68,' + al + ')';\n          ctx.beginPath(); ctx.arc(dx - dLen \/ 2, dy, 2.5, 0, Math.PI * 2); ctx.fill();\n          ctx.strokeStyle = 'rgba(255,255,255,' + (al * 0.35) + ')'; ctx.lineWidth = 0.8;\n          ctx.beginPath(); ctx.moveTo(dx + dLen \/ 2, dy); ctx.lineTo(dx - dLen \/ 2, dy); ctx.stroke();\n          ctx.fillStyle = 'rgba(239,68,68,' + (al * 0.6) + ')';\n          ctx.beginPath();\n          ctx.moveTo(dx - dLen \/ 2, dy);\n          ctx.lineTo(dx - dLen \/ 2 + 3.5, dy - 2.5);\n          ctx.lineTo(dx - dLen \/ 2 + 3.5, dy + 2.5);\n          ctx.closePath(); ctx.fill();\n        }\n      }\n    }\n  }\n\n  \/\/ \u2500\u2500\u2500 ELECTRIC FIELD VISUALIZATIONS \u2500\u2500\u2500\n  var innerL = lx + pW \/ 2, innerR = rx - pW \/ 2;\n  var gapPx = innerR - innerL;\n  \/\/ Normalizamos los campos para la visualizaci\u00f3n\n  var maxEfield = Math.max(ph.E0, 1);\n  var e0Norm = Math.min(1, ph.E0 \/ maxEfield);\n  var eNorm  = Math.min(1, ph.E \/ maxEfield);\n  var eiNorm = Math.min(1, ph.Ei \/ maxEfield);\n\n  if (effectiveV > 0.01) {\n    var nLines = Math.max(4, Math.round(8 * Math.min(1.2, ph.E0 \/ 600)));\n    var lSp = pH \/ (nLines + 1);\n    var dielectricEnd = innerL + sepPx * frac;\n    var vacuumStart = dielectricEnd;\n\n    \/\/ E\u2080: Campo de las cargas libres (cyan, \u2192)\n    if (state.showE0) {\n      for (var i = 1; i <= nLines; i++) {\n        var y = pT + i * lSp;\n        var e0Alpha = Math.min(0.7, ph.E0 \/ 400);\n        ctx.strokeStyle = 'rgba(34,211,238,' + (e0Alpha * 0.4) + ')'; ctx.lineWidth = 1.5;\n        ctx.setLineDash([6, 3]);\n        ctx.beginPath(); ctx.moveTo(innerL + 3, y); ctx.lineTo(innerR - 3, y); ctx.stroke();\n        ctx.setLineDash([]);\n        var nA = Math.max(1, Math.floor(gapPx \/ 60));\n        for (var a = 0; a < nA; a++) {\n          var ax = innerL + (a + 0.5) * gapPx \/ nA;\n          drawFieldArrow(ctx, ax, y, 8, 'rgba(34,211,238,' + e0Alpha + ')', 1);\n        }\n      }\n      ctx.fillStyle = 'rgba(34,211,238,0.8)'; ctx.font = 'bold 12px sans-serif';\n      ctx.textAlign = 'left'; ctx.textBaseline = 'middle';\n      ctx.fillText('E\\u2080 \\u2192', rx + pW \/ 2 + 14, pT + lSp * 0.5);\n    }\n\n    \/\/ E\u1d62: Campo inducido (red, \u2190 in dielectric)\n    if (state.showEi && frac > 0.005 && k > 1.01) {\n      var eiStrength = 1 - 1 \/ ph.kEff;\n      var nEiLines = Math.max(3, Math.round(nLines * Math.min(1, frac * 1.5)));\n      var eiSp = (pH * Math.min(1, frac * 1.5)) \/ (nEiLines + 1);\n      var eiOffset = pT + pH * (1 - Math.min(1, frac * 1.5)) \/ 2;\n      for (var i = 1; i <= nEiLines; i++) {\n        var y = eiOffset + i * eiSp;\n        var eiAlpha = Math.min(0.7, ph.Ei \/ 400);\n        ctx.strokeStyle = 'rgba(248,113,113,' + (eiAlpha * 0.5) + ')'; ctx.lineWidth = 1.5;\n        ctx.setLineDash([4, 4]);\n        ctx.beginPath(); ctx.moveTo(dielectricEnd - 3, y); ctx.lineTo(innerL + 3, y); ctx.stroke();\n        ctx.setLineDash([]);\n        var dLen2 = (dielectricEnd - innerL);\n        if (dLen2 > 30) {\n          var nA2 = Math.max(1, Math.floor(dLen2 \/ 55));\n          for (var a2 = 0; a2 < nA2; a2++) {\n            var ax2 = innerL + (a2 + 0.5) * dLen2 \/ nA2;\n            drawFieldArrow(ctx, ax2, y, 7, 'rgba(248,113,113,' + eiAlpha + ')', -1);\n          }\n        }\n      }\n      ctx.fillStyle = 'rgba(248,113,113,0.8)'; ctx.font = 'bold 12px sans-serif';\n      ctx.textAlign = 'left'; ctx.textBaseline = 'middle';\n      ctx.fillText('E\\u1D62 \\u2190', rx + pW \/ 2 + 14, pT + lSp * 1.2);\n    }\n\n    \/\/ E: Campo resultante (green, \u2192)\n    if (state.showEr) {\n      for (var i = 1; i <= nLines; i++) {\n        var y = pT + i * lSp;\n        var erAlpha = Math.min(0.8, ph.E \/ 300);\n        if (frac > 0.005 && k > 1.01) {\n          var reducedAlpha = Math.min(0.8, (ph.E0 \/ k) \/ 300);\n          ctx.strokeStyle = 'rgba(74,222,128,' + (reducedAlpha * 0.5) + ')'; ctx.lineWidth = 2;\n          ctx.setLineDash([]);\n          ctx.beginPath(); ctx.moveTo(innerL + 3, y); ctx.lineTo(dielectricEnd - 3, y); ctx.stroke();\n          var dLen3 = dielectricEnd - innerL;\n          if (dLen3 > 30) {\n            var nA3 = Math.max(1, Math.floor(dLen3 \/ 55));\n            for (var a3 = 0; a3 < nA3; a3++) {\n              var ax3 = innerL + (a3 + 0.5) * dLen3 \/ nA3;\n              drawFieldArrow(ctx, ax3, y, 8, 'rgba(74,222,128,' + reducedAlpha + ')', 1);\n            }\n          }\n        }\n        if (frac < 0.995) {\n          ctx.strokeStyle = 'rgba(74,222,128,' + (erAlpha * 0.5) + ')'; ctx.lineWidth = 2;\n          ctx.setLineDash([]);\n          ctx.beginPath(); ctx.moveTo(vacuumStart + 3, y); ctx.lineTo(innerR - 3, y); ctx.stroke();\n          var vLen = innerR - vacuumStart;\n          if (vLen > 30) {\n            var nA4 = Math.max(1, Math.floor(vLen \/ 55));\n            for (var a4 = 0; a4 < nA4; a4++) {\n              var ax4 = vacuumStart + (a4 + 0.5) * vLen \/ nA4;\n              drawFieldArrow(ctx, ax4, y, 8, 'rgba(74,222,128,' + erAlpha + ')', 1);\n            }\n          }\n        }\n        if (frac < 0.005) {\n          ctx.strokeStyle = 'rgba(74,222,128,' + (erAlpha * 0.5) + ')'; ctx.lineWidth = 2;\n          ctx.setLineDash([]);\n          ctx.beginPath(); ctx.moveTo(innerL + 3, y); ctx.lineTo(innerR - 3, y); ctx.stroke();\n          var nA5 = Math.max(1, Math.floor(gapPx \/ 55));\n          for (var a5 = 0; a5 < nA5; a5++) {\n            var ax5 = innerL + (a5 + 0.5) * gapPx \/ nA5;\n            drawFieldArrow(ctx, ax5, y, 8, 'rgba(74,222,128,' + erAlpha + ')', 1);\n          }\n        }\n      }\n      ctx.fillStyle = 'rgba(74,222,128,0.9)'; ctx.font = 'bold 12px sans-serif';\n      ctx.textAlign = 'left'; ctx.textBaseline = 'middle';\n      ctx.fillText('E \\u2192', rx + pW \/ 2 + 14, pT + lSp * 1.9);\n    }\n  }\n\n  \/\/ \u2500\u2500\u2500 CHARGES ON PLATES \u2500\u2500\u2500\n  if (state.showQ && effectiveV > 0.01) {\n    var qNorm = Math.abs(ph.Q) \/ 1e-10;\n    var qN = Math.min(20, Math.max(4, Math.round(4 + 12 * Math.min(1, qNorm \/ 3))));\n    var qSp = pH \/ (qN + 1);\n    for (var i = 1; i <= qN; i++) {\n      var y = pT + i * qSp;\n      var pulse = Math.sin(t * 2 + i * 0.4) * 0.12;\n      drawCharge(ctx, rx - pW \/ 2 - 1, y, true, 0.85 + pulse, 6);\n      drawCharge(ctx, lx + pW \/ 2 + 1, y, false, 0.85 + pulse, 6);\n    }\n    ctx.save();\n    ctx.font = 'bold 11px monospace';\n    ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n    ctx.fillStyle = 'rgba(239,68,68,0.9)';\n    var qLabel = 'Q = ' + fmt(ph.Q, 'C');\n    ctx.fillText('+ ' + qLabel, rx, pB + 16);\n    ctx.fillStyle = 'rgba(96,165,250,0.9)';\n    ctx.fillText('\\u2212 ' + qLabel, lx, pB + 16);\n    ctx.restore();\n  }\n\n  \/\/ \u2500\u2500\u2500 DIMENSION LABELS \u2500\u2500\u2500\n  var dimY = pB + 38;\n  ctx.strokeStyle = 'rgba(255,255,255,0.25)'; ctx.lineWidth = 1; ctx.setLineDash([]);\n  ctx.beginPath(); ctx.moveTo(lx, dimY - 5); ctx.lineTo(lx, dimY + 5); ctx.stroke();\n  ctx.beginPath(); ctx.moveTo(rx, dimY - 5); ctx.lineTo(rx, dimY + 5); ctx.stroke();\n  ctx.beginPath(); ctx.moveTo(lx, dimY); ctx.lineTo(rx, dimY); ctx.stroke();\n  ctx.fillStyle = 'rgba(255,255,255,0.25)';\n  ctx.beginPath(); ctx.moveTo(lx + 7, dimY); ctx.lineTo(lx, dimY - 3); ctx.lineTo(lx, dimY + 3); ctx.closePath(); ctx.fill();\n  ctx.beginPath(); ctx.moveTo(rx - 7, dimY); ctx.lineTo(rx, dimY - 3); ctx.lineTo(rx, dimY + 3); ctx.closePath(); ctx.fill();\n  ctx.fillStyle = 'rgba(255,255,255,0.5)'; ctx.font = '11px monospace';\n  ctx.textAlign = 'center'; ctx.textBaseline = 'top';\n  ctx.fillText('d = ' + state.sep + ' mm', cx, dimY + 8);\n  ctx.textBaseline = 'bottom';\n  ctx.fillText('A = ' + state.area + ' cm\\u00B2', cx, pT - 38);\n  ctx.font = 'bold 16px sans-serif'; ctx.textBaseline = 'middle';\n  ctx.fillStyle = 'rgba(96,165,250,0.75)'; ctx.fillText('\\u2212', lx, pT - 12);\n  ctx.fillStyle = 'rgba(239,68,68,0.75)'; ctx.fillText('+', rx, pT - 12);\n\n  \/\/ \u2500\u2500\u2500 VOLTMETRO \u2500\u2500\u2500\n  var vmCx = cx, vmCy = pT - 80;\n  var vmR = 28;\n  \/\/ Cables del volt\u00edmetro a las placas\n  ctx.strokeStyle = 'rgba(251,146,60,0.5)'; ctx.lineWidth = 1.5;\n  ctx.setLineDash([4, 3]);\n  \/\/ Cable desde placa derecha (+) al volt\u00edmetro\n  ctx.beginPath(); ctx.moveTo(rx, pT - 12); ctx.lineTo(rx, vmCy); ctx.lineTo(vmCx + vmR + 4, vmCy); ctx.stroke();\n  \/\/ Cable desde placa izquierda (\u2212) al volt\u00edmetro\n  ctx.beginPath(); ctx.moveTo(lx, pT - 12); ctx.lineTo(lx, vmCy); ctx.lineTo(vmCx - vmR - 4, vmCy); ctx.stroke();\n  ctx.setLineDash([]);\n\n  \/\/ C\u00edrculo del volt\u00edmetro\n  ctx.fillStyle = 'rgba(15,23,42,0.9)';\n  ctx.beginPath(); ctx.arc(vmCx, vmCy, vmR, 0, Math.PI * 2); ctx.fill();\n  ctx.strokeStyle = '#f97316'; ctx.lineWidth = 2;\n  ctx.beginPath(); ctx.arc(vmCx, vmCy, vmR, 0, Math.PI * 2); ctx.stroke();\n\n  \/\/ Escala arco del volt\u00edmetro (de -130\u00b0 a -50\u00b0)\n  var arcStart = -130 * Math.PI \/ 180, arcEnd = -50 * Math.PI \/ 180;\n  ctx.strokeStyle = 'rgba(255,255,255,0.15)'; ctx.lineWidth = 3;\n  ctx.beginPath(); ctx.arc(vmCx, vmCy, vmR - 6, arcStart, arcEnd); ctx.stroke();\n\n  \/\/ Marcas de escala\n  for (var mk = 0; mk <= 10; mk++) {\n    var mkAngle = arcStart + (arcEnd - arcStart) * mk \/ 10;\n    var mkInner = vmR - 10, mkOuter = vmR - 5;\n    ctx.strokeStyle = mk % 5 === 0 ? 'rgba(255,255,255,0.5)' : 'rgba(255,255,255,0.2)';\n    ctx.lineWidth = mk % 5 === 0 ? 1.5 : 0.8;\n    ctx.beginPath();\n    ctx.moveTo(vmCx + Math.cos(mkAngle) * mkInner, vmCy + Math.sin(mkAngle) * mkInner);\n    ctx.lineTo(vmCx + Math.cos(mkAngle) * mkOuter, vmCy + Math.sin(mkAngle) * mkOuter);\n    ctx.stroke();\n  }\n\n  \/\/ Aguja del volt\u00edmetro\n  var vPct = Math.min(1, effectiveV \/ 10);\n  var needleAngle = arcStart + (arcEnd - arcStart) * vPct;\n  ctx.strokeStyle = '#ef4444'; ctx.lineWidth = 2;\n  ctx.beginPath();\n  ctx.moveTo(vmCx, vmCy);\n  ctx.lineTo(vmCx + Math.cos(needleAngle) * (vmR - 8), vmCy + Math.sin(needleAngle) * (vmR - 8));\n  ctx.stroke();\n  \/\/ Centro de la aguja\n  ctx.fillStyle = '#f97316';\n  ctx.beginPath(); ctx.arc(vmCx, vmCy, 3, 0, Math.PI * 2); ctx.fill();\n\n  \/\/ S\u00edmbolo V dentro del c\u00edrculo\n  ctx.fillStyle = '#f97316'; ctx.font = 'bold 11px sans-serif';\n  ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n  ctx.fillText('V', vmCx, vmCy + 12);\n\n  \/\/ Lectura digital del volt\u00edmetro \u2014 arriba a la derecha del circuito\n  var vmReadX = rx + pW \/ 2 + 20, vmReadY = vmCy - vmR - 4;\n  var vmReadW = 78, vmReadH = 38;\n  ctx.fillStyle = 'rgba(15,23,42,0.92)';\n  rRect(ctx, vmReadX, vmReadY, vmReadW, vmReadH, 5); ctx.fill();\n  ctx.strokeStyle = '#f97316'; ctx.lineWidth = 1.2;\n  rRect(ctx, vmReadX, vmReadY, vmReadW, vmReadH, 5); ctx.stroke();\n  ctx.fillStyle = 'rgba(255,255,255,0.4)'; ctx.font = '8px sans-serif';\n  ctx.textAlign = 'center'; ctx.textBaseline = 'top';\n  ctx.fillText('Volt\\u00EDmetro', vmReadX + vmReadW \/ 2, vmReadY + 3);\n  ctx.fillStyle = '#fbbf24'; ctx.font = 'bold 13px monospace';\n  ctx.textBaseline = 'bottom';\n  ctx.fillText(effectiveV.toFixed(2) + ' V', vmReadX + vmReadW \/ 2, vmReadY + vmReadH - 4);\n\n  \/\/ \u2500\u2500\u2500 MEDICIONES PANEL (central canvas) \u2500\u2500\u2500\n  var mX = W - 220, mY = 14, mW = 205, mHs = 22, mHl = 30, mSpS = 27, mSpL = 35;\n  var maxC = 100 * EPSILON_0 * (500 \/ 10000) \/ (1 \/ 1000);\n  var maxQ = maxC * 10;\n  var maxU = 0.5 * maxC * 100;\n  var maxE = 10000;\n\n  \/\/ Calculate total panel height\n  var totalRows = 8;\n  var panelH = mSpS * 4 + mSpL * 3 + mSpS + 20;\n\n  \/\/ Panel background\n  ctx.fillStyle = 'rgba(15,23,42,0.8)';\n  rRect(ctx, mX - 8, mY - 8, mW + 16, panelH, 8); ctx.fill();\n  ctx.strokeStyle = 'rgba(255,255,255,0.1)'; ctx.lineWidth = 1;\n  rRect(ctx, mX - 8, mY - 8, mW + 16, panelH, 8); ctx.stroke();\n\n  \/\/ Title\n  ctx.fillStyle = isConnected ? '#10b981' : '#ef4444';\n  ctx.font = 'bold 11px sans-serif';\n  ctx.textAlign = 'left'; ctx.textBaseline = 'top';\n  ctx.fillText(isConnected ? 'MEDICIONES' : 'MEDICIONES (Q=cte)', mX + 2, mY - 4);\n\n  var rowY = mY + 10;\n  drawMeterBar(ctx, mX, rowY, mW, mHs, Math.min(1, ph.C \/ maxC), '#22c55e', 'C', fmt(ph.C, 'F')); rowY += mSpS;\n  drawMeterBar(ctx, mX, rowY, mW, mHs, Math.min(1, Math.abs(ph.Q) \/ maxQ), '#eab308', 'Q', fmt(ph.Q, 'C')); rowY += mSpS;\n  drawMeterBar(ctx, mX, rowY, mW, mHs, Math.min(1, ph.U \/ maxU), '#a855f7', 'U', fmt(ph.U, 'J')); rowY += mSpS;\n  drawMeterBar(ctx, mX, rowY, mW, mHs, effectiveV \/ 10, '#f97316', 'V', effectiveV.toFixed(2) + ' V'); rowY += mSpS;\n  drawMeterBar(ctx, mX, rowY, mW, mHl, Math.min(1, ph.E0 \/ maxE), '#22d3ee', 'E\\u2080', fmtE(ph.E0), 'Campo de cargas libres'); rowY += mSpL;\n  drawMeterBar(ctx, mX, rowY, mW, mHl, Math.min(1, ph.Ei \/ maxE), '#f87171', 'E\\u1D62', fmtE(ph.Ei), 'Campo el\\u00E9c. inducido'); rowY += mSpL;\n  drawMeterBar(ctx, mX, rowY, mW, mHl, Math.min(1, ph.E \/ maxE), '#4ade80', 'E', fmtE(ph.E), 'Campo el\\u00E9c. resultante'); rowY += mSpL;\n  drawMeterBar(ctx, mX, rowY, mW, mHs, Math.min(1, (ph.kEff - 1) \/ 99), '#60a5fa', 'Ke', ph.kEff.toFixed(4));\n\n  \/\/ \u2500\u2500\u2500 FIELD LEGEND \u2500\u2500\u2500\n  if (effectiveV > 0.01) {\n    var legX = 12, legY = H - 100;\n    ctx.fillStyle = 'rgba(15,23,42,0.75)';\n    rRect(ctx, legX, legY, 220, 90, 6); ctx.fill();\n    ctx.strokeStyle = 'rgba(255,255,255,0.08)'; ctx.lineWidth = 1;\n    rRect(ctx, legX, legY, 220, 90, 6); ctx.stroke();\n    ctx.font = 'bold 11px sans-serif'; ctx.textAlign = 'left'; ctx.textBaseline = 'middle';\n    if (state.showE0) { ctx.fillStyle = 'rgba(34,211,238,0.9)'; ctx.fillText('\\u2192 E\\u2080 = ' + fmtE(ph.E0) + '  (vac\\u00EDo)', legX + 10, legY + 18); }\n    if (state.showEi) { ctx.fillStyle = 'rgba(248,113,113,0.9)'; ctx.fillText('\\u2190 E\\u1D62 = ' + fmtE(ph.Ei) + '  (inducido)', legX + 10, legY + 45); }\n    if (state.showEr) { ctx.fillStyle = 'rgba(74,222,128,0.9)'; ctx.fillText('\\u2192 E  = ' + fmtE(ph.E) + '  (resultante)', legX + 10, legY + 72); }\n  }\n\n  \/\/ \u2500\u2500\u2500 FORMULA BAR \u2500\u2500\u2500\n  var fY = H - 50;\n  ctx.fillStyle = 'rgba(15,23,42,0.75)';\n  rRect(ctx, 8, fY, W - 16, 42, 6); ctx.fill();\n  ctx.strokeStyle = 'rgba(255,255,255,0.08)'; ctx.lineWidth = 1;\n  rRect(ctx, 8, fY, W - 16, 42, 6); ctx.stroke();\n  ctx.fillStyle = 'rgba(255,255,255,0.5)'; ctx.font = '11px monospace';\n  ctx.textAlign = 'left'; ctx.textBaseline = 'middle';\n  var formulas;\n  if (isConnected) {\n    formulas = [\n      'C = ' + fmt(ph.C, 'F'),\n      'Q = ' + fmt(ph.Q, 'C'),\n      'E\\u2080 = ' + fmtE(ph.E0),\n      'E\\u1D62 = ' + fmtE(ph.Ei),\n      'E = ' + fmtE(ph.E),\n    ];\n  } else {\n    formulas = [\n      'C = ' + fmt(ph.C, 'F'),\n      'Q = ' + fmt(ph.Q, 'C') + ' (cte)',\n      'V = ' + effectiveV.toFixed(2) + ' V',\n      'E\\u2080 = ' + fmtE(ph.E0),\n      'E = ' + fmtE(ph.E),\n    ];\n  }\n  var fSpacing = (W - 32) \/ formulas.length;\n  formulas.forEach(function(f, idx) { ctx.fillText(f, 18 + idx * fSpacing, fY + 21); });\n}\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\/\/ INIT\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n(function init() {\n  var canvas = document.getElementById('simCanvas');\n  var wrap = document.getElementById('canvasWrap');\n  var batSwitch = document.getElementById('batSwitch');\n  var batStatus = document.getElementById('batStatus');\n  var voltSlider = document.getElementById('voltSlider');\n  var voltSliderWrap = document.getElementById('voltSliderWrap');\n\n  function resize() {\n    var r = wrap.getBoundingClientRect();\n    var dpr = window.devicePixelRatio || 1;\n    canvas.width = r.width * dpr;\n    canvas.height = r.height * dpr;\n    canvas.style.width = r.width + 'px';\n    canvas.style.height = r.height + 'px';\n    var c = canvas.getContext('2d');\n    if (c) c.scale(dpr, dpr);\n  }\n\n  resize();\n  window.addEventListener('resize', resize);\n  if (typeof ResizeObserver !== 'undefined') { new ResizeObserver(resize).observe(wrap); }\n\n  \/\/ \u2500\u2500\u2500 INTERRUPTOR DE BATER\u00cdA \u2500\u2500\u2500\n  batSwitch.addEventListener('change', function() {\n    if (this.checked) {\n      \/\/ Reconectar: V vuelve al valor de la bater\u00eda, Q se recalcula\n      state.connected = true;\n      batStatus.textContent = 'CONECTADA';\n      batStatus.className = 'switch-status on';\n      voltSlider.disabled = false;\n      voltSliderWrap.style.opacity = '1';\n    } else {\n      \/\/ Desconectar: bloquear Q actual\n      var ph = calcPhysics();\n      state.connected = false;\n      state.lockedQ = ph.Q;\n      state.lockedV = ph.V;\n      batStatus.textContent = 'DESCONECTADA';\n      batStatus.className = 'switch-status off';\n      voltSlider.disabled = true;\n      voltSliderWrap.style.opacity = '0.4';\n    }\n  });\n\n  var sliders = {\n    sepSlider: { key: 'sep', display: 'sepVal', suffix: ' mm', decimals: 0 },\n    areaSlider: { key: 'area', display: 'areaVal', suffix: ' cm\\u00B2', decimals: 0 },\n    voltSlider: { key: 'volt', display: 'voltVal', suffix: ' V', decimals: 1 },\n    kCustomSlider: { key: 'kCustom', display: 'kCustomVal', suffix: '', decimals: 1 },\n    dPosSlider: { key: 'dPos', display: 'dPosVal', suffix: '%', decimals: 0 },\n  };\n\n  Object.keys(sliders).forEach(function(id) {\n    var el = document.getElementById(id);\n    if (!el) return;\n    var cfg = sliders[id];\n    el.addEventListener('input', function() {\n      state[cfg.key] = parseFloat(this.value);\n      var val = cfg.decimals > 0 ? state[cfg.key].toFixed(cfg.decimals) : state[cfg.key];\n      document.getElementById(cfg.display).textContent = val + cfg.suffix;\n    });\n  });\n\n  document.getElementById('matSelect').addEventListener('change', function() {\n    state.mat = this.value;\n    document.getElementById('customKappaWrap').style.display = this.value === 'custom' ? 'block' : 'none';\n  });\n\n  var checks = { chkQ: 'showQ', chkP: 'showP', chkE0: 'showE0', chkEi: 'showEi', chkEr: 'showEr' };\n  Object.keys(checks).forEach(function(id) {\n    var el = document.getElementById(id);\n    if (!el) return;\n    el.addEventListener('change', function() { state[checks[id]] = this.checked; });\n  });\n\n  var startTime = performance.now();\n  function loop() {\n    var t = (performance.now() - startTime) \/ 1000;\n    var c = canvas.getContext('2d');\n    if (c) {\n      var dpr = window.devicePixelRatio || 1;\n      c.setTransform(dpr, 0, 0, dpr, 0, 0);\n      draw(c, canvas.width \/ dpr, canvas.height \/ dpr, t);\n    }\n    requestAnimationFrame(loop);\n  }\n  requestAnimationFrame(loop);\n})();\n<\/script>\n\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Laboratorio de Capacitores \u2014 Diel\u00e9ctrico Laboratorio de Capacitores \u2014 Diel\u00e9ctrico Controles Bater\u00eda CONECTADA Separaci\u00f3n de placas (d) 5 mm \u00c1rea de placas (A) 100 cm\u00b2&hellip;<\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-6866","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>capacitores_diel\u00e9ctricos - F\u00edsica 2<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/capacitores_dielectricos\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"capacitores_diel\u00e9ctricos - F\u00edsica 2\" \/>\n<meta property=\"og:description\" content=\"Laboratorio de Capacitores \u2014 Diel\u00e9ctrico Laboratorio de Capacitores \u2014 Diel\u00e9ctrico Controles Bater\u00eda CONECTADA Separaci\u00f3n de placas (d) 5 mm \u00c1rea de placas (A) 100 cm\u00b2&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/capacitores_dielectricos\/\" \/>\n<meta property=\"og:site_name\" content=\"F\u00edsica 2\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-13T00:31:52+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/index.php\\\/capacitores_dielectricos\\\/\",\"url\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/index.php\\\/capacitores_dielectricos\\\/\",\"name\":\"capacitores_diel\u00e9ctricos - F\u00edsica 2\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/#website\"},\"datePublished\":\"2026-04-11T16:09:08+00:00\",\"dateModified\":\"2026-04-13T00:31:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/index.php\\\/capacitores_dielectricos\\\/#breadcrumb\"},\"inLanguage\":\"es-AR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/index.php\\\/capacitores_dielectricos\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/index.php\\\/capacitores_dielectricos\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"capacitores_diel\u00e9ctricos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/#website\",\"url\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/\",\"name\":\"F\u00edsica 2\",\"description\":\"FICA - UNSL\",\"publisher\":{\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es-AR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/#organization\",\"name\":\"SAC- Secretar\u00eda General FICA\",\"url\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-AR\",\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/SG-Logo.png\",\"contentUrl\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/wp-content\\\/uploads\\\/2021\\\/11\\\/SG-Logo.png\",\"width\":4483,\"height\":1231,\"caption\":\"SAC- Secretar\u00eda General FICA\"},\"image\":{\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"capacitores_diel\u00e9ctricos - F\u00edsica 2","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/capacitores_dielectricos\/","og_locale":"es_ES","og_type":"article","og_title":"capacitores_diel\u00e9ctricos - F\u00edsica 2","og_description":"Laboratorio de Capacitores \u2014 Diel\u00e9ctrico Laboratorio de Capacitores \u2014 Diel\u00e9ctrico Controles Bater\u00eda CONECTADA Separaci\u00f3n de placas (d) 5 mm \u00c1rea de placas (A) 100 cm\u00b2&hellip;","og_url":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/capacitores_dielectricos\/","og_site_name":"F\u00edsica 2","article_modified_time":"2026-04-13T00:31:52+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/capacitores_dielectricos\/","url":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/capacitores_dielectricos\/","name":"capacitores_diel\u00e9ctricos - F\u00edsica 2","isPartOf":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#website"},"datePublished":"2026-04-11T16:09:08+00:00","dateModified":"2026-04-13T00:31:52+00:00","breadcrumb":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/capacitores_dielectricos\/#breadcrumb"},"inLanguage":"es-AR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/capacitores_dielectricos\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/capacitores_dielectricos\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/fisica2.fica.unsl.edu.ar\/"},{"@type":"ListItem","position":2,"name":"capacitores_diel\u00e9ctricos"}]},{"@type":"WebSite","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#website","url":"https:\/\/fisica2.fica.unsl.edu.ar\/","name":"F\u00edsica 2","description":"FICA - UNSL","publisher":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fisica2.fica.unsl.edu.ar\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es-AR"},{"@type":"Organization","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#organization","name":"SAC- Secretar\u00eda General FICA","url":"https:\/\/fisica2.fica.unsl.edu.ar\/","logo":{"@type":"ImageObject","inLanguage":"es-AR","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#\/schema\/logo\/image\/","url":"https:\/\/fisica2.fica.unsl.edu.ar\/wp-content\/uploads\/2021\/11\/SG-Logo.png","contentUrl":"https:\/\/fisica2.fica.unsl.edu.ar\/wp-content\/uploads\/2021\/11\/SG-Logo.png","width":4483,"height":1231,"caption":"SAC- Secretar\u00eda General FICA"},"image":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/6866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/comments?post=6866"}],"version-history":[{"count":26,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/6866\/revisions"}],"predecessor-version":[{"id":6945,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/6866\/revisions\/6945"}],"wp:attachment":[{"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/media?parent=6866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}