{"id":7688,"date":"2026-05-27T22:13:48","date_gmt":"2026-05-28T01:13:48","guid":{"rendered":"https:\/\/fisica2.fica.unsl.edu.ar\/?page_id=7688"},"modified":"2026-05-28T21:54:12","modified_gmt":"2026-05-29T00:54:12","slug":"transformador_ca","status":"publish","type":"page","link":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/transformador_ca\/","title":{"rendered":"transformador_CA"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7688\" class=\"elementor elementor-7688\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bba642b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"bba642b\" 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-824d269\" data-id=\"824d269\" 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-b40b473 elementor-widget elementor-widget-html\" data-id=\"b40b473\" 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>\r\n<html lang=\"es\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Simulador de Transformador Monof\u00e1sico CA<\/title>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.0\/css\/all.min.css\">\r\n<style>\r\n:root {\r\n  --bg-primary:#060a12;--bg-secondary:#0c1220;--bg-card:#111a2e;\r\n  --border:#1a2844;--text-primary:#dce4f0;--text-secondary:#7e90b0;\r\n  --text-muted:#3e506e;--accent:#00e5a0;--accent-dim:rgba(0,229,160,0.12);\r\n  --danger:#ff4060;--vp-color:#00ccff;--ip-color:#ff8844;\r\n  --vs-color:#44ff88;--is-color:#ffd644;--radius:10px;\r\n  --shadow:0 4px 24px rgba(0,0,0,0.5);\r\n}\r\n.light-mode {\r\n  --bg-primary:#e8ecf2;--bg-secondary:#f0f3f8;--bg-card:#ffffff;\r\n  --border:#c8d0e0;--text-primary:#1a2236;--text-secondary:#5a6880;\r\n  --text-muted:#98a4b8;--shadow:0 4px 24px rgba(0,0,0,0.08);\r\n}\r\n*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}\r\nbody{\r\n  font-family:'Outfit',sans-serif;background:var(--bg-primary);color:var(--text-primary);\r\n  min-height:100vh;overflow-x:hidden;\r\n  background-image:\r\n    linear-gradient(rgba(0,229,160,0.02) 1px,transparent 1px),\r\n    linear-gradient(90deg,rgba(0,229,160,0.02) 1px,transparent 1px);\r\n  background-size:50px 50px;transition:background .4s,color .4s;\r\n}\r\nheader{\r\n  display:flex;align-items:center;justify-content:space-between;\r\n  padding:12px 20px;background:var(--bg-secondary);\r\n  border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;\r\n  backdrop-filter:blur(12px);\r\n}\r\n.header-left{display:flex;align-items:center;gap:10px}\r\n.header-left i{color:var(--accent);font-size:1.2rem}\r\n.header-left h1{font-size:clamp(.82rem,2.5vw,1.1rem);font-weight:700;letter-spacing:-.02em; color: #fff;}\r\n.header-right{display:flex;gap:6px}\r\n.btn-icon{\r\n  width:36px;height:36px;border-radius:8px;border:1px solid var(--border);\r\n  background:var(--bg-card);color:var(--text-secondary);cursor:pointer;\r\n  display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:all .25s;\r\n}\r\n.btn-icon:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}\r\n.btn-icon.active{background:var(--accent);color:#060a12;border-color:var(--accent)}\r\n\r\nmain{max-width:1280px;margin:0 auto;padding:14px;display:flex;flex-direction:column;gap:14px}\r\n.top-section{display:grid;grid-template-columns:1fr 300px;gap:14px}\r\n@media(max-width:860px){.top-section{grid-template-columns:1fr}}\r\n\r\n.transformer-panel{\r\n  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);\r\n  overflow:hidden;position:relative;box-shadow:var(--shadow);min-height:420px;height:420px;\r\n}\r\n.transformer-panel canvas{display:block;width:100%;height:100%}\r\n\r\n.controls-panel{\r\n  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);\r\n  padding:16px;display:flex;flex-direction:column;gap:14px;\r\n  box-shadow:var(--shadow);overflow-y:auto;max-height:420px;\r\n}\r\n.controls-title{\r\n  font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;\r\n  color:var(--accent);padding-bottom:6px;border-bottom:1px solid var(--border);\r\n}\r\n.control-group{display:flex;flex-direction:column;gap:5px}\r\n.control-label{display:flex;justify-content:space-between;align-items:baseline;font-size:.8rem;color:var(--text-secondary)}\r\n.control-value{font-family:'JetBrains Mono',monospace;font-weight:600;color:var(--text-primary);font-size:.82rem}\r\ninput[type=\"range\"]{\r\n  -webkit-appearance:none;width:100%;height:6px;border-radius:3px;\r\n  background:var(--bg-primary);border:1px solid var(--border);outline:none;cursor:pointer;\r\n}\r\ninput[type=\"range\"]::-webkit-slider-thumb{\r\n  -webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);\r\n  border:2px solid var(--bg-card);cursor:pointer;box-shadow:0 0 8px rgba(0,229,160,.4);transition:transform .15s;\r\n}\r\ninput[type=\"range\"]::-webkit-slider-thumb:hover{transform:scale(1.2)}\r\ninput[type=\"range\"]::-moz-range-thumb{\r\n  width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-card);cursor:pointer;\r\n}\r\n\r\n.instruments-section{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}\r\n@media(max-width:700px){.instruments-section{grid-template-columns:repeat(2,1fr)}}\r\n.instrument{\r\n  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);\r\n  padding:12px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow);\r\n  position:relative;overflow:hidden;transition:border-color .3s;\r\n}\r\n.instrument::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius) var(--radius) 0 0}\r\n.instrument.vp::before{background:var(--vp-color)}\r\n.instrument.ip::before{background:var(--ip-color)}\r\n.instrument.vs::before{background:var(--vs-color)}\r\n.instrument.is::before{background:var(--is-color)}\r\n.inst-header{display:flex;align-items:center;justify-content:space-between}\r\n.inst-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}\r\n.inst-led{width:7px;height:7px;border-radius:50%;background:#2a3a2a;transition:all .4s}\r\n.inst-led.on{background:var(--accent);box-shadow:0 0 8px var(--accent)}\r\n.inst-display{\r\n  background:#060e08;border:1px solid #1a2a1a;border-radius:6px;padding:8px 10px;\r\n  font-family:'JetBrains Mono',monospace;font-size:1.35rem;font-weight:700;\r\n  text-align:right;letter-spacing:.02em;transition:color .3s;\r\n}\r\n.vp .inst-display{color:var(--vp-color)}\r\n.ip .inst-display{color:var(--ip-color)}\r\n.vs .inst-display{color:var(--vs-color)}\r\n.is .inst-display{color:var(--is-color)}\r\n.inst-display.off{color:#1a2a1a!important}\r\n.inst-unit{font-size:.65rem;color:var(--text-muted);text-align:right;font-weight:500}\r\n.inst-terminals{display:flex;gap:6px;justify-content:flex-end;margin-top:2px}\r\n.terminal{width:8px;height:8px;border-radius:50%;border:1.5px solid}\r\n.terminal.red{border-color:#cc3030;background:#401010}\r\n.terminal.black{border-color:#555;background:#1a1a1a}\r\n\r\n.waveform-section{\r\n  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);\r\n  overflow:hidden;position:relative;box-shadow:var(--shadow);\r\n}\r\n.waveform-header{padding:10px 14px;border-bottom:1px solid var(--border)}\r\n.waveform-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}\r\n.waveform-title{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}\r\n.waveform-legend{display:flex;gap:12px;flex-wrap:wrap}\r\n.legend-item{display:flex;align-items:center;gap:5px;font-size:.68rem;color:var(--text-secondary)}\r\n.legend-dot{width:12px;height:3px;border-radius:2px}\r\n.oscope-controls{\r\n  display:flex;align-items:center;gap:16px;margin-top:8px;padding-top:8px;\r\n  border-top:1px solid rgba(255,255,255,0.04);flex-wrap:wrap;\r\n}\r\n.oscope-ctrl{\r\n  display:flex;align-items:center;gap:8px;font-size:.7rem;\r\n  color:#4a7a4a;font-family:'JetBrains Mono',monospace;\r\n}\r\n.oscope-ctrl input[type=\"range\"]{width:110px;height:5px;border:none;background:#1a3a1a}\r\n.oscope-ctrl input[type=\"range\"]::-webkit-slider-thumb{\r\n  width:14px;height:14px;background:#00e5a0;border:none;border-radius:50%;\r\n  box-shadow:0 0 6px rgba(0,229,160,.5);\r\n}\r\n.oscope-ctrl input[type=\"range\"]::-moz-range-thumb{\r\n  width:14px;height:14px;background:#00e5a0;border:none;border-radius:50%;\r\n}\r\n.speed-tag{\r\n  min-width:80px;text-align:center;padding:3px 10px;border-radius:4px;\r\n  background:rgba(0,229,160,0.12);color:#00e5a0;font-weight:600;font-size:.72rem;\r\n  letter-spacing:.02em;\r\n}\r\n.waveform-section canvas{width:100%;height:220px;display:block}\r\n\r\n.info-section{\r\n  background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);\r\n  padding:18px;box-shadow:var(--shadow);\r\n  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;\r\n}\r\n.info-block-title{\r\n  font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;\r\n  color:var(--accent);margin-bottom:8px;\r\n}\r\n.info-row{\r\n  display:flex;justify-content:space-between;align-items:center;\r\n  padding:5px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:.82rem;\r\n}\r\n.info-row span:first-child{color:var(--text-secondary)}\r\n.info-row span:last-child{font-family:'JetBrains Mono',monospace;font-weight:600}\r\n.formula-box{\r\n  background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;\r\n  padding:10px 12px;margin:4px 0;font-family:'JetBrains Mono',monospace;\r\n  font-size:.78rem;color:var(--text-primary);line-height:1.9;\r\n}\r\n.type-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:600}\r\n.type-badge.elevador{background:rgba(0,229,160,.15);color:var(--accent)}\r\n.type-badge.reductor{background:rgba(255,136,68,.15);color:var(--ip-color)}\r\n.type-badge.aislamiento{background:rgba(0,204,255,.15);color:var(--vp-color)}\r\n.type-badge.off{background:rgba(255,255,255,.05);color:var(--text-muted)}\r\n.overload-warning{\r\n  display:none;align-items:center;gap:6px;padding:7px 12px;border-radius:6px;\r\n  background:rgba(255,64,96,.1);border:1px solid rgba(255,64,96,.3);\r\n  color:var(--danger);font-size:.78rem;font-weight:600;margin-top:6px;\r\n  animation:pulse-warn 1s ease-in-out infinite;\r\n}\r\n.overload-warning.visible{display:flex}\r\n@keyframes pulse-warn{0%,100%{opacity:1}50%{opacity:.6}}\r\n@media(max-width:600px){\r\n  main{padding:8px;gap:8px}header{padding:8px 12px}\r\n  .controls-panel{padding:12px;max-height:none}\r\n  .transformer-panel{min-height:300px;height:300px}\r\n  .inst-display{font-size:1.1rem;padding:6px}.info-section{padding:12px}\r\n}\r\n@media(prefers-reduced-motion:reduce){\r\n  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}\r\n}\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<header>\r\n  <div class=\"header-left\" {\r\n  color: #fff;\r\n} ><i class=\"fas fa-bolt\"><\/i><h1>Simulador de Transformador Monofasico CA<\/h1><\/div>\r\n  <div class=\"header-right\">\r\n    <button class=\"btn-icon active\" id=\"btnPower\" title=\"Encender \/ Apagar\"><i class=\"fas fa-power-off\"><\/i><\/button>\r\n    <button class=\"btn-icon\" id=\"btnSound\" title=\"Sonido\"><i class=\"fas fa-volume-xmark\"><\/i><\/button>\r\n    <button class=\"btn-icon\" id=\"btnTheme\" title=\"Tema\"><i class=\"fas fa-moon\"><\/i><\/button>\r\n    <button class=\"btn-icon\" id=\"btnReset\" title=\"Restablecer\"><i class=\"fas fa-rotate-left\"><\/i><\/button>\r\n  <\/div>\r\n<\/header>\r\n\r\n<main>\r\n  <div class=\"top-section\">\r\n    <div class=\"transformer-panel\"><canvas id=\"cTransformer\"><\/canvas><\/div>\r\n    <div class=\"controls-panel\">\r\n      <div class=\"controls-title\"><i class=\"fas fa-sliders\" style=\"margin-right:5px\"><\/i>Fuente CA<\/div>\r\n      <div class=\"control-group\">\r\n        <div class=\"control-label\"><span>Tension de entrada<\/span><span class=\"control-value\" id=\"valVoltage\">120 V<\/span><\/div>\r\n        <input type=\"range\" id=\"slVoltage\" min=\"0\" max=\"240\" value=\"120\" step=\"1\">\r\n      <\/div>\r\n      <div class=\"control-group\">\r\n        <div class=\"control-label\"><span>Frecuencia<\/span><span class=\"control-value\" id=\"valFreq\">50 Hz<\/span><\/div>\r\n        <input type=\"range\" id=\"slFreq\" min=\"10\" max=\"100\" value=\"50\" step=\"1\">\r\n      <\/div>\r\n      <div class=\"controls-title\" style=\"margin-top:2px\"><i class=\"fas fa-magnet\" style=\"margin-right:5px\"><\/i>Transformador<\/div>\r\n      <div class=\"control-group\">\r\n        <div class=\"control-label\"><span>Espiras primario (Np)<\/span><span class=\"control-value\" id=\"valNp\">200<\/span><\/div>\r\n        <input type=\"range\" id=\"slNp\" min=\"10\" max=\"500\" value=\"200\" step=\"1\">\r\n      <\/div>\r\n      <div class=\"control-group\">\r\n        <div class=\"control-label\"><span>Espiras secundario (Ns)<\/span><span class=\"control-value\" id=\"valNs\">100<\/span><\/div>\r\n        <input type=\"range\" id=\"slNs\" min=\"10\" max=\"500\" value=\"100\" step=\"1\">\r\n      <\/div>\r\n      <div class=\"controls-title\" style=\"margin-top:2px\"><i class=\"fas fa-lightbulb\" style=\"margin-right:5px\"><\/i>Carga<\/div>\r\n      <div class=\"control-group\">\r\n        <div class=\"control-label\"><span>Resistencia de carga<\/span><span class=\"control-value\" id=\"valR\">50 &#8486;<\/span><\/div>\r\n        <input type=\"range\" id=\"slR\" min=\"1\" max=\"1000\" value=\"50\" step=\"1\">\r\n      <\/div>\r\n      <div class=\"overload-warning\" id=\"overloadWarn\"><i class=\"fas fa-triangle-exclamation\"><\/i>Sobrecarga: corriente elevada<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <section class=\"instruments-section\" aria-label=\"Instrumentos\">\r\n    <div class=\"instrument vp\">\r\n      <div class=\"inst-header\"><span class=\"inst-label\">Voltimetro Primario<\/span><span class=\"inst-led\" id=\"ledVp\"><\/span><\/div>\r\n      <div class=\"inst-display off\" id=\"dispVp\">0.00<\/div><div class=\"inst-unit\">V CA (RMS)<\/div>\r\n      <div class=\"inst-terminals\"><span class=\"terminal red\"><\/span><span class=\"terminal black\"><\/span><\/div>\r\n    <\/div>\r\n    <div class=\"instrument ip\">\r\n      <div class=\"inst-header\"><span class=\"inst-label\">Amperimetro Primario<\/span><span class=\"inst-led\" id=\"ledIp\"><\/span><\/div>\r\n      <div class=\"inst-display off\" id=\"dispIp\">0.00<\/div><div class=\"inst-unit\">A CA (RMS)<\/div>\r\n      <div class=\"inst-terminals\"><span class=\"terminal red\"><\/span><span class=\"terminal black\"><\/span><\/div>\r\n    <\/div>\r\n    <div class=\"instrument vs\">\r\n      <div class=\"inst-header\"><span class=\"inst-label\">Voltimetro Secundario<\/span><span class=\"inst-led\" id=\"ledVs\"><\/span><\/div>\r\n      <div class=\"inst-display off\" id=\"dispVs\">0.00<\/div><div class=\"inst-unit\">V CA (RMS)<\/div>\r\n      <div class=\"inst-terminals\"><span class=\"terminal red\"><\/span><span class=\"terminal black\"><\/span><\/div>\r\n    <\/div>\r\n    <div class=\"instrument is\">\r\n      <div class=\"inst-header\"><span class=\"inst-label\">Amperimetro Secundario<\/span><span class=\"inst-led\" id=\"ledIs\"><\/span><\/div>\r\n      <div class=\"inst-display off\" id=\"dispIs\">0.00<\/div><div class=\"inst-unit\">A CA (RMS)<\/div>\r\n      <div class=\"inst-terminals\"><span class=\"terminal red\"><\/span><span class=\"terminal black\"><\/span><\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"waveform-section\" aria-label=\"Osciloscopio\">\r\n    <div class=\"waveform-header\">\r\n      <div class=\"waveform-top\">\r\n        <span class=\"waveform-title\"><i class=\"fas fa-wave-square\" style=\"margin-right:5px\"><\/i>Osciloscopio<\/span>\r\n        <div class=\"waveform-legend\">\r\n          <span class=\"legend-item\"><span class=\"legend-dot\" style=\"background:var(--vp-color)\"><\/span>Vp(t)<\/span>\r\n          <span class=\"legend-item\"><span class=\"legend-dot\" style=\"background:var(--vs-color)\"><\/span>Vs(t)<\/span>\r\n          <span class=\"legend-item\"><span class=\"legend-dot\" style=\"background:var(--ip-color)\"><\/span>Ip(t)<\/span>\r\n          <span class=\"legend-item\"><span class=\"legend-dot\" style=\"background:var(--is-color)\"><\/span>Is(t)<\/span>\r\n        <\/div>\r\n      <\/div>\r\n      <div class=\"oscope-controls\">\r\n        <div class=\"oscope-ctrl\">\r\n          <i class=\"fas fa-gauge\" style=\"color:#00e5a0\"><\/i>\r\n          <span>Velocidad de barrido<\/span>\r\n          <input type=\"range\" id=\"slSpeed\" min=\"0\" max=\"3\" step=\"0.1\" value=\"1\">\r\n          <span class=\"speed-tag\" id=\"valSpeed\">1.0x Normal<\/span>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <canvas id=\"cWaveform\"><\/canvas>\r\n  <\/section>\r\n\r\n  <section class=\"info-section\" aria-label=\"Panel informativo\">\r\n    <div class=\"info-block\">\r\n      <div class=\"info-block-title\"><i class=\"fas fa-circle-info\" style=\"margin-right:4px\"><\/i>Resultados<\/div>\r\n      <div class=\"info-row\"><span>Relacion de transformacion<\/span><span id=\"infoRatio\">2 : 1<\/span><\/div>\r\n      <div class=\"info-row\"><span>Tipo<\/span><span id=\"infoType\"><span class=\"type-badge reductor\">Reductor<\/span><\/span><\/div>\r\n      <div class=\"info-row\"><span>Potencia aproximada<\/span><span id=\"infoPower\">72.0 W<\/span><\/div>\r\n      <div class=\"info-row\"><span>Tension secundaria<\/span><span id=\"infoVs\">60.0 V<\/span><\/div>\r\n      <div class=\"info-row\"><span>Corriente primaria<\/span><span id=\"infoIp\">1.20 A<\/span><\/div>\r\n      <div class=\"info-row\"><span>Corriente secundaria<\/span><span id=\"infoIs\">1.20 A<\/span><\/div>\r\n    <\/div>\r\n    <div class=\"info-block\">\r\n      <div class=\"info-block-title\"><i class=\"fas fa-square-root-variable\" style=\"margin-right:4px\"><\/i>Formulas<\/div>\r\n      <div class=\"formula-box\">\r\n        Vs \/ Vp = Ns \/ Np<br>\r\n        Ip \/ Is = Ns \/ Np<br>\r\n        Vs = Vp x (Ns \/ Np)<br>\r\n        Is = Vs \/ R<sub>carga<\/sub><br>\r\n        Ip = Is x (Ns \/ Np)<br>\r\n        P &asymp; Vs x Is\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"info-block\">\r\n      <div class=\"info-block-title\"><i class=\"fas fa-book-open\" style=\"margin-right:4px\"><\/i>Explicacion fisica<\/div>\r\n      <p style=\"font-size:.82rem;line-height:1.65;color:var(--text-secondary)\" id=\"infoExplanation\">\r\n        Un transformador monofasico opera sobre el principio de induccion electromagnetica. La corriente alterna que circula por la bobina primaria genera un flujo magnetico variable en el nucleo de hierro, el cual induce una fuerza electromotriz en la bobina secundaria.\r\n      <\/p>\r\n    <\/div>\r\n  <\/section>\r\n<\/main>\r\n\r\n<script>\r\n\/* ============================================================\r\n   ESTADO GLOBAL\r\n   ============================================================ *\/\r\nvar S = {\r\n  on: true, dark: true, sound: false,\r\n  Vp: 120, freq: 50, Np: 200, Ns: 100, R: 50,\r\n  t: 0, overload: false,\r\n  graphSpeed: 1.0,   \/\/ 0 = congelada, 1 = normal, 3 = rapida\r\n  oscPhase: 0        \/\/ Fase visual acumulada\r\n};\r\n\r\nvar sm = { vp:0, ip:0, vs:0, is:0 };\r\n\r\n\/* ============================================================\r\n   CALCULOS FISICOS\r\n   ============================================================ *\/\r\nfunction compute() {\r\n  if (!S.on) return { Vs:0, Ip:0, Is:0, P:0, ratio:S.Ns\/S.Np, type:'off' };\r\n  var ratio = S.Ns \/ S.Np;\r\n  var Vs = S.Vp * ratio;\r\n  var Is = S.R > 0 ? Vs \/ S.R : 0;\r\n  var Ip = Is * ratio;\r\n  var P = Vs * Is;\r\n  var type = 'aislamiento';\r\n  if (ratio > 1.001) type = 'elevador';\r\n  else if (ratio < 0.999) type = 'reductor';\r\n  S.overload = (Ip > 10 || Is > 10);\r\n  return { Vs:Vs, Ip:Ip, Is:Is, P:P, ratio:ratio, type:type };\r\n}\r\n\r\n\/* ============================================================\r\n   REFERENCIAS DOM\r\n   ============================================================ *\/\r\nfunction $(id) { return document.getElementById(id); }\r\nvar cTrans = $('cTransformer');\r\nvar cWave  = $('cWaveform');\r\n\r\n\/* ============================================================\r\n   UTILIDADES CANVAS\r\n   ============================================================ *\/\r\nfunction fitCanvas(canvas, forceH) {\r\n  var dpr = window.devicePixelRatio || 1;\r\n  var r = canvas.parentElement.getBoundingClientRect();\r\n  var w = r.width;\r\n  var h = forceH || r.height;\r\n  if (h < 10) h = forceH || 400;\r\n  canvas.width = Math.round(w * dpr);\r\n  canvas.height = Math.round(h * dpr);\r\n  canvas.style.width = w + 'px';\r\n  canvas.style.height = h + 'px';\r\n  var ctx = canvas.getContext('2d');\r\n  ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\r\n  return { w: w, h: h };\r\n}\r\n\r\nfunction rrect(ctx, x, y, w, h, r) {\r\n  r = Math.min(r, w\/2, h\/2);\r\n  ctx.beginPath();\r\n  ctx.moveTo(x+r, y);\r\n  ctx.lineTo(x+w-r, y); ctx.arcTo(x+w, y, x+w, y+r, r);\r\n  ctx.lineTo(x+w, y+h-r); ctx.arcTo(x+w, y+h, x+w-r, y+h, r);\r\n  ctx.lineTo(x+r, y+h); ctx.arcTo(x, y+h, x, y+h-r, r);\r\n  ctx.lineTo(x, y+r); ctx.arcTo(x, y, x+r, y, r);\r\n  ctx.closePath();\r\n}\r\n\r\n\/* ============================================================\r\n   DIBUJO DEL TRANSFORMADOR\r\n   ============================================================ *\/\r\nfunction drawTransformer(time) {\r\n  var dim = fitCanvas(cTrans, 420);\r\n  var w = dim.w, h = dim.h;\r\n  var ctx = cTrans.getContext('2d');\r\n  var c = compute();\r\n  var cx = w\/2, cy = h\/2;\r\n\r\n  var bg = ctx.createRadialGradient(cx, cy, 0, cx, cy, Math.max(w,h)*0.7);\r\n  if (S.dark) { bg.addColorStop(0, '#0e1526'); bg.addColorStop(1, '#060a12'); }\r\n  else { bg.addColorStop(0, '#eef2f8'); bg.addColorStop(1, '#dde2ec'); }\r\n  ctx.fillStyle = bg; ctx.fillRect(0, 0, w, h);\r\n\r\n  var coreW = Math.min(260, w*0.46);\r\n  var coreH = Math.min(190, h*0.56);\r\n  var legW = coreW*0.12;\r\n  var yokeH = coreH*0.13;\r\n  var coilExt = coreW*0.1;\r\n\r\n  var leftLegX = cx - coreW\/2;\r\n  var rightLegX = cx + coreW\/2 - legW;\r\n  var topYokeY = cy - coreH\/2;\r\n  var botYokeY = cy + coreH\/2 - yokeH;\r\n  var coilTop = topYokeY + yokeH + 6;\r\n  var coilBot = botYokeY - 6;\r\n\r\n  \/* Flujo magnetico animado *\/\r\n  if (S.on && S.Vp > 0) {\r\n    var fluxAlpha = Math.min(0.7, 0.25 + c.Vs\/240*0.45);\r\n    var dashOff = -time * S.freq * 3;\r\n    for (var f = 0; f < 3; f++) {\r\n      var inset = 7 + f*8;\r\n      ctx.save();\r\n      ctx.strokeStyle = 'rgba(0,229,160,' + (fluxAlpha*(0.35+f*0.2)).toFixed(2) + ')';\r\n      ctx.lineWidth = 2 - f*0.5;\r\n      ctx.setLineDash([8, 6]);\r\n      ctx.lineDashOffset = dashOff + f*15;\r\n      var fx1 = leftLegX+legW+inset, fx2 = rightLegX-inset;\r\n      var fy1 = topYokeY+yokeH+inset, fy2 = botYokeY-inset;\r\n      ctx.beginPath();\r\n      ctx.moveTo(fx1,fy1); ctx.lineTo(fx2,fy1);\r\n      ctx.lineTo(fx2,fy2); ctx.lineTo(fx1,fy2);\r\n      ctx.closePath(); ctx.stroke(); ctx.restore();\r\n    }\r\n\r\n    var arrowSize = 6;\r\n    var arrows = [\r\n      {x:(leftLegX+legW+rightLegX)\/2, y:topYokeY+yokeH+14, d:0},\r\n      {x:(leftLegX+legW+rightLegX)\/2, y:botYokeY-14, d:Math.PI},\r\n      {x:leftLegX+legW+14, y:cy, d:Math.PI\/2},\r\n      {x:rightLegX-14, y:cy, d:-Math.PI\/2}\r\n    ];\r\n    ctx.fillStyle = 'rgba(0,229,160,'+(fluxAlpha*0.6).toFixed(2)+')';\r\n    for (var a = 0; a < arrows.length; a++) {\r\n      var ar = arrows[a];\r\n      ctx.save(); ctx.translate(ar.x, ar.y); ctx.rotate(ar.d);\r\n      ctx.beginPath();\r\n      ctx.moveTo(arrowSize, 0);\r\n      ctx.lineTo(-arrowSize, -arrowSize*0.6);\r\n      ctx.lineTo(-arrowSize, arrowSize*0.6);\r\n      ctx.closePath(); ctx.fill(); ctx.restore();\r\n    }\r\n  }\r\n\r\n  \/* Nucleo *\/\r\n  var cc = S.dark ? [50,56,68] : [140,155,175];\r\n  var coreGrad = ctx.createLinearGradient(leftLegX, topYokeY, rightLegX+legW, topYokeY);\r\n  coreGrad.addColorStop(0, 'rgb('+(cc[0]-10)+','+(cc[1]-10)+','+(cc[2]-10)+')');\r\n  coreGrad.addColorStop(0.5, 'rgb('+(cc[0]+15)+','+(cc[1]+15)+','+(cc[2]+15)+')');\r\n  coreGrad.addColorStop(1, 'rgb('+(cc[0]-10)+','+(cc[1]-10)+','+(cc[2]-10)+')');\r\n  ctx.fillStyle = coreGrad;\r\n  ctx.strokeStyle = S.dark ? '#2a3040' : '#90a0b0'; ctx.lineWidth = 1;\r\n  rrect(ctx, leftLegX, topYokeY, coreW, yokeH, 3); ctx.fill(); ctx.stroke();\r\n  rrect(ctx, leftLegX, botYokeY, coreW, yokeH, 3); ctx.fill(); ctx.stroke();\r\n  rrect(ctx, leftLegX, topYokeY, legW, coreH, 3); ctx.fill(); ctx.stroke();\r\n  rrect(ctx, rightLegX, topYokeY, legW, coreH, 3); ctx.fill(); ctx.stroke();\r\n\r\n  ctx.strokeStyle = S.dark ? 'rgba(255,255,255,0.05)' : 'rgba(0,0,0,0.06)'; ctx.lineWidth = 0.5;\r\n  for (var li = 1; li < 5; li++) {\r\n    var ly = topYokeY + yokeH*li\/5;\r\n    ctx.beginPath(); ctx.moveTo(leftLegX+2, ly); ctx.lineTo(leftLegX+coreW-2, ly); ctx.stroke();\r\n    var ly2 = botYokeY + yokeH*li\/5;\r\n    ctx.beginPath(); ctx.moveTo(leftLegX+2, ly2); ctx.lineTo(leftLegX+coreW-2, ly2); ctx.stroke();\r\n  }\r\n\r\n  \/* Bobinas *\/\r\n  var maxVis = 14;\r\n  var turnsPri = Math.max(3, Math.min(maxVis, Math.round(S.Np\/18)));\r\n  var turnsSec = Math.max(3, Math.min(maxVis, Math.round(S.Ns\/18)));\r\n  var overld = S.overload && S.on;\r\n\r\n  drawCoil(ctx, leftLegX+legW\/2, coilTop, coilBot, turnsPri, legW\/2+coilExt, '#e08830', S.on&&S.Vp>0, overld, time);\r\n  drawCoil(ctx, rightLegX+legW\/2, coilTop, coilBot, turnsSec, legW\/2+coilExt, '#c87028', S.on&&S.Vp>0, overld, time);\r\n\r\n  \/* Fuente CA *\/\r\n  var srcX = Math.max(40, leftLegX - legW\/2 - coilExt - 50);\r\n  drawACSource(ctx, srcX, cy, S.on, time);\r\n\r\n  \/* Cables primario *\/\r\n  var wc = S.on ? '#e08830' : '#3a4050';\r\n  ctx.strokeStyle = wc; ctx.lineWidth = 2;\r\n  ctx.beginPath();\r\n  ctx.moveTo(srcX, cy-20); ctx.lineTo(srcX, coilTop-6);\r\n  ctx.lineTo(leftLegX-coilExt+6, coilTop-6);\r\n  ctx.lineTo(leftLegX-coilExt+6, coilTop+4); ctx.stroke();\r\n  ctx.beginPath();\r\n  ctx.moveTo(srcX, cy+20); ctx.lineTo(srcX, coilBot+6);\r\n  ctx.lineTo(leftLegX-coilExt+6, coilBot+6);\r\n  ctx.lineTo(leftLegX-coilExt+6, coilBot-4); ctx.stroke();\r\n\r\n  if (S.on && S.Vp > 0) {\r\n    drawDots(ctx, srcX, cy-20, leftLegX-coilExt+6, coilTop+4, time, c.Ip, '#e08830');\r\n    drawDots(ctx, srcX, cy+20, leftLegX-coilExt+6, coilBot-4, time, c.Ip, '#e08830');\r\n  }\r\n\r\n  \/* Carga *\/\r\n  var loadX = Math.min(w-40, rightLegX+legW\/2+coilExt+50);\r\n  drawLoad(ctx, loadX, cy, S.on);\r\n\r\n  var wc2 = S.on ? '#c87028' : '#3a4050';\r\n  ctx.strokeStyle = wc2; ctx.lineWidth = 2;\r\n  var secR = rightLegX + legW + coilExt - 6;\r\n  ctx.beginPath();\r\n  ctx.moveTo(secR, coilTop+4); ctx.lineTo(loadX, coilTop+4);\r\n  ctx.lineTo(loadX, cy-26); ctx.stroke();\r\n  ctx.beginPath();\r\n  ctx.moveTo(secR, coilBot-4); ctx.lineTo(loadX, coilBot-4);\r\n  ctx.lineTo(loadX, cy+26); ctx.stroke();\r\n\r\n  if (S.on && S.Vp > 0) {\r\n    drawDots(ctx, secR, coilTop+4, loadX, cy-26, time, c.Is, '#c87028');\r\n    drawDots(ctx, secR, coilBot-4, loadX, cy+26, time, c.Is, '#c87028');\r\n  }\r\n\r\n  \/* Etiquetas *\/\r\n  ctx.font = '600 12px Outfit'; ctx.textAlign = 'center';\r\n  ctx.fillStyle = S.on ? '#e08830' : '#5a6580';\r\n  ctx.fillText('Np = '+S.Np, leftLegX+legW\/2, coilBot+22);\r\n  ctx.fillStyle = S.on ? '#c87028' : '#5a6580';\r\n  ctx.fillText('Ns = '+S.Ns, rightLegX+legW\/2, coilBot+22);\r\n  ctx.font = '500 10px Outfit';\r\n  ctx.fillStyle = S.dark ? '#4a5a78' : '#8899b0';\r\n  ctx.fillText('Primario', leftLegX+legW\/2, coilTop-12);\r\n  ctx.fillText('Secundario', rightLegX+legW\/2, coilTop-12);\r\n\r\n  \/* LED *\/\r\n  ctx.beginPath(); ctx.arc(cx, topYokeY-18, 5, 0, Math.PI*2);\r\n  if (S.on) {\r\n    ctx.fillStyle = '#00e5a0'; ctx.save();\r\n    ctx.shadowColor = '#00e5a0'; ctx.shadowBlur = 12; ctx.fill(); ctx.restore();\r\n  } else { ctx.fillStyle = '#1a2a1a'; ctx.fill(); }\r\n  ctx.strokeStyle = '#2a3a4a'; ctx.lineWidth = 1; ctx.stroke();\r\n\r\n  ctx.font = '500 9px Outfit'; ctx.fillStyle = S.dark ? '#4a5a78' : '#8899b0';\r\n  ctx.textAlign = 'center';\r\n  ctx.fillText(S.on ? 'ENERGIZADO' : 'APAGADO', cx, topYokeY-6);\r\n}\r\n\r\nfunction drawCoil(ctx, centerX, top, bot, numTurns, radius, baseColor, energized, overload, time) {\r\n  var spacing = (bot-top)\/numTurns;\r\n  var ry = spacing*0.42;\r\n  var strokeColor, fillColor;\r\n\r\n  if (overload) {\r\n    var pulse = 0.5+0.5*Math.sin(time*8);\r\n    fillColor = 'rgba(255,'+Math.floor(40+pulse*40)+','+Math.floor(30+pulse*20)+',0.3)';\r\n    strokeColor = 'rgb(255,'+Math.floor(80+pulse*50)+',40)';\r\n  } else {\r\n    fillColor = energized ? 'rgba(224,136,48,0.12)' : 'rgba(100,110,130,0.08)';\r\n    strokeColor = energized ? baseColor : '#5a6070';\r\n  }\r\n\r\n  if (energized && !overload) { ctx.save(); ctx.shadowColor = baseColor; ctx.shadowBlur = 10; }\r\n\r\n  ctx.globalAlpha = 0.22; ctx.strokeStyle = strokeColor; ctx.lineWidth = 2.5;\r\n  for (var i = 0; i < numTurns; i++) {\r\n    var ey = top+(i+0.5)*spacing;\r\n    ctx.beginPath(); ctx.ellipse(centerX, ey, radius, ry, 0, Math.PI, 0, false); ctx.stroke();\r\n  }\r\n  ctx.globalAlpha = 1;\r\n\r\n  ctx.strokeStyle = strokeColor; ctx.lineWidth = 3;\r\n  for (var i = 0; i < numTurns; i++) {\r\n    var ey = top+(i+0.5)*spacing;\r\n    ctx.beginPath(); ctx.ellipse(centerX, ey, radius, ry, 0, 0, Math.PI, false); ctx.stroke();\r\n  }\r\n\r\n  ctx.fillStyle = fillColor;\r\n  for (var i = 0; i < numTurns; i++) {\r\n    var ey = top+(i+0.5)*spacing;\r\n    ctx.beginPath(); ctx.ellipse(centerX, ey, radius, ry, 0, 0, Math.PI, false); ctx.fill();\r\n  }\r\n\r\n  if (energized && !overload) ctx.restore();\r\n}\r\n\r\nfunction drawACSource(ctx, x, y, on, time) {\r\n  var r = 18;\r\n  ctx.beginPath(); ctx.arc(x, y, r, 0, Math.PI*2);\r\n  ctx.fillStyle = on ? 'rgba(0,229,160,0.08)' : 'rgba(100,110,130,0.05)'; ctx.fill();\r\n  ctx.strokeStyle = on ? '#00e5a0' : '#4a5060'; ctx.lineWidth = 2; ctx.stroke();\r\n\r\n  ctx.beginPath(); ctx.strokeStyle = on ? '#00e5a0' : '#4a5060'; ctx.lineWidth = 1.8;\r\n  for (var i = -11; i <= 11; i++) {\r\n    var px = x+i;\r\n    var py = y - Math.sin((i\/11)*Math.PI*2 + (on ? time*S.freq*0.3 : 0)) * 7;\r\n    if (i === -11) ctx.moveTo(px, py); else ctx.lineTo(px, py);\r\n  }\r\n  ctx.stroke();\r\n\r\n  ctx.fillStyle = on ? '#00e5a0' : '#4a5060';\r\n  ctx.beginPath(); ctx.arc(x, y-r-2, 2.5, 0, Math.PI*2); ctx.fill();\r\n  ctx.beginPath(); ctx.arc(x, y+r+2, 2.5, 0, Math.PI*2); ctx.fill();\r\n\r\n  ctx.font = '500 9px Outfit'; ctx.textAlign = 'center';\r\n  ctx.fillStyle = S.dark ? '#4a5a78' : '#8899b0';\r\n  ctx.fillText('Fuente CA', x, y+r+16);\r\n}\r\n\r\nfunction drawLoad(ctx, x, y, on) {\r\n  var rW=14, rH=36, steps=6, stepH=rH\/steps;\r\n  ctx.strokeStyle = on ? '#ffd644' : '#4a5060'; ctx.lineWidth = 2;\r\n  ctx.beginPath(); ctx.moveTo(x, y-rH\/2);\r\n  for (var i = 0; i < steps; i++) {\r\n    var yy = y-rH\/2+i*stepH; var dir = i%2===0?1:-1;\r\n    ctx.lineTo(x+dir*rW*0.6, yy+stepH\/2);\r\n    ctx.lineTo(x, yy+stepH);\r\n  }\r\n  ctx.stroke();\r\n  ctx.strokeStyle = on ? 'rgba(255,214,68,0.25)' : 'rgba(100,110,130,0.12)'; ctx.lineWidth = 1;\r\n  rrect(ctx, x-rW, y-rH\/2-4, rW*2, rH+8, 4); ctx.stroke();\r\n  ctx.font = '500 9px Outfit'; ctx.textAlign = 'center';\r\n  ctx.fillStyle = S.dark ? '#4a5a78' : '#8899b0';\r\n  ctx.fillText('R = '+S.R+' \\u2126', x, y+rH\/2+18);\r\n  ctx.fillText('Carga', x, y-rH\/2-10);\r\n}\r\n\r\nfunction drawDots(ctx, x1, y1, x2, y2, time, current, color) {\r\n  if (current < 0.01) return;\r\n  var num = Math.min(5, Math.max(2, Math.floor(current*1.5)));\r\n  var speed = Math.min(current*0.6, 3.5);\r\n  ctx.fillStyle = color;\r\n  for (var i = 0; i < num; i++) {\r\n    var t = ((time*speed + i\/num) % 1 + 1) % 1;\r\n    ctx.beginPath(); ctx.arc(x1+(x2-x1)*t, y1+(y2-y1)*t, 2.5, 0, Math.PI*2); ctx.fill();\r\n  }\r\n}\r\n\r\n\/* ============================================================\r\n   DIBUJO DEL OSCILOSCOPIO\r\n   ============================================================ *\/\r\nfunction drawWaveform() {\r\n  var dim = fitCanvas(cWave, 220);\r\n  var w = dim.w, h = dim.h;\r\n  var ctx = cWave.getContext('2d');\r\n  var c = compute();\r\n\r\n  var pad = { l:50, r:14, t:10, b:24 };\r\n  var gw = w - pad.l - pad.r;\r\n  var gh = h - pad.t - pad.b;\r\n  var cy = pad.t + gh\/2;\r\n\r\n  \/* Fondo osciloscopio *\/\r\n  ctx.fillStyle = '#060e08'; ctx.fillRect(0, 0, w, h);\r\n\r\n  \/* Grid *\/\r\n  ctx.strokeStyle = 'rgba(0,229,160,0.07)'; ctx.lineWidth = 0.5;\r\n  for (var i = 0; i <= 10; i++) {\r\n    var x = pad.l + gw*i\/10;\r\n    ctx.beginPath(); ctx.moveTo(x, pad.t); ctx.lineTo(x, pad.t+gh); ctx.stroke();\r\n  }\r\n  for (var i = 0; i <= 6; i++) {\r\n    var y = pad.t + gh*i\/6;\r\n    ctx.beginPath(); ctx.moveTo(pad.l, y); ctx.lineTo(pad.l+gw, y); ctx.stroke();\r\n  }\r\n  ctx.strokeStyle = 'rgba(0,229,160,0.18)'; ctx.lineWidth = 1;\r\n  ctx.beginPath(); ctx.moveTo(pad.l, cy); ctx.lineTo(pad.l+gw, cy); ctx.stroke();\r\n\r\n  if (!S.on || S.Vp === 0) {\r\n    ctx.font = '500 12px Outfit'; ctx.fillStyle = '#2a4a2a'; ctx.textAlign = 'center';\r\n    ctx.fillText('Sin senal', w\/2, cy+4);\r\n    return;\r\n  }\r\n\r\n  var VpPeak = S.Vp * Math.SQRT2;\r\n  var VsPeak = c.Vs * Math.SQRT2;\r\n  var IpPeak = c.Ip * Math.SQRT2;\r\n  var IsPeak = c.Is * Math.SQRT2;\r\n  var maxV = Math.max(VpPeak, VsPeak, 1);\r\n  var maxI = Math.max(IpPeak, IsPeak, 0.001);\r\n\r\n  var numCycles = 3;\r\n  var period = 1 \/ S.freq;\r\n  var windowTime = numCycles * period;\r\n\r\n  \/* La fase visual S.oscPhase se acumula en el bucle principal *\/\r\n  var phaseOff = S.oscPhase;\r\n\r\n  \/* Tensiones *\/\r\n  var sigs = [\r\n    { peak:VpPeak, max:maxV, color:'#00ccff', lw:2 },\r\n    { peak:VsPeak, max:maxV, color:'#44ff88', lw:2 }\r\n  ];\r\n  for (var s = 0; s < sigs.length; s++) {\r\n    var sg = sigs[s];\r\n    ctx.beginPath(); ctx.strokeStyle = sg.color; ctx.lineWidth = sg.lw;\r\n    for (var px = 0; px <= gw; px++) {\r\n      var t = (px\/gw)*windowTime;\r\n      var v = sg.peak * Math.sin(2*Math.PI*S.freq*t - phaseOff);\r\n      var y = cy - (v\/sg.max)*(gh\/2-4);\r\n      if (px === 0) ctx.moveTo(pad.l+px, y); else ctx.lineTo(pad.l+px, y);\r\n    }\r\n    ctx.stroke();\r\n  }\r\n\r\n  \/* Corrientes *\/\r\n  var iSigs = [\r\n    { peak:IpPeak, max:maxI, color:'#ff8844', lw:1.5 },\r\n    { peak:IsPeak, max:maxI, color:'#ffd644', lw:1.5 }\r\n  ];\r\n  for (var s = 0; s < iSigs.length; s++) {\r\n    var sg = iSigs[s];\r\n    ctx.beginPath(); ctx.strokeStyle = sg.color; ctx.lineWidth = sg.lw;\r\n    ctx.setLineDash([4,3]);\r\n    for (var px = 0; px <= gw; px++) {\r\n      var t = (px\/gw)*windowTime;\r\n      var v = sg.peak * Math.sin(2*Math.PI*S.freq*t - phaseOff);\r\n      var y = cy - (v\/sg.max)*(gh\/2-4)*0.7;\r\n      if (px === 0) ctx.moveTo(pad.l+px, y); else ctx.lineTo(pad.l+px, y);\r\n    }\r\n    ctx.stroke(); ctx.setLineDash([]);\r\n  }\r\n\r\n  \/* Etiquetas ejes *\/\r\n  ctx.font = '500 9px JetBrains Mono'; ctx.fillStyle = '#3a6a3a'; ctx.textAlign = 'right';\r\n  ctx.fillText(maxV.toFixed(0)+'V', pad.l-5, pad.t+10);\r\n  ctx.fillText('-'+maxV.toFixed(0)+'V', pad.l-5, pad.t+gh-2);\r\n  ctx.fillText('0', pad.l-5, cy+3);\r\n  ctx.textAlign = 'center';\r\n  for (var i = 0; i <= numCycles; i++) {\r\n    var x = pad.l + (i\/numCycles)*gw;\r\n    ctx.fillText((i*period*1000).toFixed(1)+'ms', x, pad.t+gh+14);\r\n  }\r\n}\r\n\r\n\/* ============================================================\r\n   INSTRUMENTOS\r\n   ============================================================ *\/\r\nfunction updateInstruments(dt) {\r\n  var c = compute();\r\n  var a = 1 - Math.exp(-dt\/0.12);\r\n  sm.vp += ((S.on ? S.Vp : 0) - sm.vp) * a;\r\n  sm.ip += ((S.on ? c.Ip : 0) - sm.ip) * a;\r\n  sm.vs += ((S.on ? c.Vs : 0) - sm.vs) * a;\r\n  sm.is += ((S.on ? c.Is : 0) - sm.is) * a;\r\n\r\n  $('dispVp').textContent = sm.vp.toFixed(2);\r\n  $('dispIp').textContent = sm.ip < 0.01 ? '0.00' : sm.ip.toFixed(2);\r\n  $('dispVs').textContent = sm.vs.toFixed(2);\r\n  $('dispIs').textContent = sm.is < 0.01 ? '0.00' : sm.is.toFixed(2);\r\n\r\n  var on = S.on && S.Vp > 0;\r\n  $('dispVp').classList.toggle('off', !on);\r\n  $('dispIp').classList.toggle('off', !on);\r\n  $('dispVs').classList.toggle('off', !on);\r\n  $('dispIs').classList.toggle('off', !on);\r\n  $('ledVp').classList.toggle('on', on);\r\n  $('ledIp').classList.toggle('on', on);\r\n  $('ledVs').classList.toggle('on', on);\r\n  $('ledIs').classList.toggle('on', on);\r\n}\r\n\r\n\/* ============================================================\r\n   PANEL INFORMATIVO\r\n   ============================================================ *\/\r\nfunction updateInfo() {\r\n  var c = compute();\r\n  var g = gcd(S.Np, S.Ns);\r\n  $('infoRatio').textContent = (S.Np\/g)+' : '+(S.Ns\/g);\r\n\r\n  var typeEl = $('infoType');\r\n  if (!S.on) typeEl.innerHTML = '<span class=\"type-badge off\">Apagado<\/span>';\r\n  else if (c.type === 'elevador') typeEl.innerHTML = '<span class=\"type-badge elevador\">Elevador<\/span>';\r\n  else if (c.type === 'reductor') typeEl.innerHTML = '<span class=\"type-badge reductor\">Reductor<\/span>';\r\n  else typeEl.innerHTML = '<span class=\"type-badge aislamiento\">Aislamiento<\/span>';\r\n\r\n  $('infoPower').textContent = S.on ? c.P.toFixed(1)+' W' : '0.0 W';\r\n  $('infoVs').textContent = S.on ? c.Vs.toFixed(1)+' V' : '0.0 V';\r\n  $('infoIp').textContent = S.on ? c.Ip.toFixed(2)+' A' : '0.00 A';\r\n  $('infoIs').textContent = S.on ? c.Is.toFixed(2)+' A' : '0.00 A';\r\n  $('overloadWarn').classList.toggle('visible', S.overload && S.on);\r\n\r\n  var explanation = 'Un transformador monofasico opera sobre el principio de induccion electromagnetica. ';\r\n  if (S.on) {\r\n    if (c.type === 'elevador')\r\n      explanation += 'Con '+S.Ns+' espiras en el secundario frente a '+S.Np+' en el primario (relacion '+(S.Np\/g)+':'+(S.Ns\/g)+'), el transformador eleva la tension de '+S.Vp.toFixed(1)+' V a '+c.Vs.toFixed(1)+' V, mientras reduce la corriente proporcionalmente.';\r\n    else if (c.type === 'reductor')\r\n      explanation += 'Con '+S.Ns+' espiras en el secundario frente a '+S.Np+' en el primario (relacion '+(S.Np\/g)+':'+(S.Ns\/g)+'), el transformador reduce la tension de '+S.Vp.toFixed(1)+' V a '+c.Vs.toFixed(1)+' V, mientras aumenta la corriente en el secundario.';\r\n    else\r\n      explanation += 'Con igual numero de espiras en primario y secundario, el transformador mantiene la tension en '+S.Vp.toFixed(1)+' V. Se emplea como transformador de aislamiento galvanico.';\r\n  } else {\r\n    explanation += 'El transformador esta desenergizado. Sin corriente alterna en el primario no se genera flujo magnetico variable ni se induce tension en el secundario.';\r\n  }\r\n  $('infoExplanation').textContent = explanation;\r\n}\r\n\r\nfunction gcd(a, b) { return b === 0 ? a : gcd(b, a%b); }\r\n\r\n\/* ============================================================\r\n   CONTROLES\r\n   ============================================================ *\/\r\nfunction bindSlider(id, valId, key, fmt) {\r\n  $(id).addEventListener('input', function() {\r\n    S[key] = parseFloat(this.value);\r\n    $(valId).textContent = fmt(S[key]);\r\n    updateInfo();\r\n  });\r\n}\r\nbindSlider('slVoltage', 'valVoltage', 'Vp', function(v){return v+' V'});\r\nbindSlider('slFreq', 'valFreq', 'freq', function(v){return v+' Hz'});\r\nbindSlider('slNp', 'valNp', 'Np', function(v){return v.toString()});\r\nbindSlider('slNs', 'valNs', 'Ns', function(v){return v.toString()});\r\nbindSlider('slR', 'valR', 'R', function(v){return v+' \\u2126'});\r\n\r\n\/* Slider de velocidad del osciloscopio *\/\r\n $('slSpeed').addEventListener('input', function() {\r\n  S.graphSpeed = parseFloat(this.value);\r\n  var label = $('valSpeed');\r\n  if (S.graphSpeed <= 0.05) label.textContent = 'Congelada';\r\n  else if (S.graphSpeed < 0.5) label.textContent = S.graphSpeed.toFixed(1)+'x Lenta';\r\n  else if (S.graphSpeed < 1.5) label.textContent = S.graphSpeed.toFixed(1)+'x Normal';\r\n  else label.textContent = S.graphSpeed.toFixed(1)+'x Rapida';\r\n});\r\n\r\n $('btnPower').addEventListener('click', function() {\r\n  S.on = !S.on;\r\n  this.classList.toggle('active', S.on);\r\n  updateInfo();\r\n});\r\n\r\n $('btnTheme').addEventListener('click', function() {\r\n  S.dark = !S.dark;\r\n  document.body.classList.toggle('light-mode', !S.dark);\r\n  this.querySelector('i').className = S.dark ? 'fas fa-moon' : 'fas fa-sun';\r\n});\r\n\r\n $('btnReset').addEventListener('click', function() {\r\n  S.Vp=120; S.freq=50; S.Np=200; S.Ns=100; S.R=50; S.on=true;\r\n  S.graphSpeed=1.0; S.oscPhase=0;\r\n  $('slVoltage').value=120; $('valVoltage').textContent='120 V';\r\n  $('slFreq').value=50; $('valFreq').textContent='50 Hz';\r\n  $('slNp').value=200; $('valNp').textContent='200';\r\n  $('slNs').value=100; $('valNs').textContent='100';\r\n  $('slR').value=50; $('valR').textContent='50 \\u2126';\r\n  $('slSpeed').value=1; $('valSpeed').textContent='1.0x Normal';\r\n  $('btnPower').classList.add('active');\r\n  sm.vp=sm.ip=sm.vs=sm.is=0;\r\n  updateInfo();\r\n});\r\n\r\n\/* ============================================================\r\n   SONIDO\r\n   ============================================================ *\/\r\nvar audioCtx=null, oscNode=null, gainNode=null;\r\n\r\nfunction initAudio() {\r\n  if (audioCtx) return;\r\n  try {\r\n    audioCtx = new (window.AudioContext||window.webkitAudioContext)();\r\n    oscNode = audioCtx.createOscillator();\r\n    var filt = audioCtx.createBiquadFilter();\r\n    gainNode = audioCtx.createGain();\r\n    oscNode.type = 'sawtooth'; oscNode.frequency.value = S.freq*2;\r\n    filt.type = 'lowpass'; filt.frequency.value = 300; filt.Q.value = 1;\r\n    gainNode.gain.value = 0;\r\n    oscNode.connect(filt); filt.connect(gainNode); gainNode.connect(audioCtx.destination);\r\n    oscNode.start();\r\n  } catch(e) { audioCtx = null; }\r\n}\r\n\r\n $('btnSound').addEventListener('click', function() {\r\n  S.sound = !S.sound;\r\n  this.querySelector('i').className = S.sound ? 'fas fa-volume-high' : 'fas fa-volume-xmark';\r\n  this.classList.toggle('active', S.sound);\r\n  if (S.sound) { initAudio(); if (audioCtx && audioCtx.state === 'suspended') audioCtx.resume(); }\r\n  updateAudio();\r\n});\r\n\r\nfunction updateAudio() {\r\n  if (!gainNode||!audioCtx) return;\r\n  if (S.sound && S.on && S.Vp > 0) {\r\n    var vol = Math.min(0.035, S.Vp\/240*0.035);\r\n    gainNode.gain.setTargetAtTime(vol, audioCtx.currentTime, 0.1);\r\n    oscNode.frequency.setTargetAtTime(S.freq*2, audioCtx.currentTime, 0.1);\r\n  } else {\r\n    gainNode.gain.setTargetAtTime(0, audioCtx.currentTime, 0.1);\r\n  }\r\n}\r\n\r\n\/* ============================================================\r\n   BUCLE DE ANIMACION PRINCIPAL\r\n   ============================================================ *\/\r\nvar lastTime = 0;\r\n\r\nfunction loop(timestamp) {\r\n  var dt = Math.min((timestamp - lastTime) \/ 1000, 0.05);\r\n  if (lastTime === 0) dt = 0.016;\r\n  lastTime = timestamp;\r\n  S.t += dt;\r\n\r\n  \/*\r\n   * FASE VISUAL DEL OSCILOSCOPIO\r\n   *\r\n   * El truco: NO usar la frecuencia electrica real para mover las ondas\r\n   * porque a 50 Hz la fase avanza ~5 radianes por fotograma y el ojo\r\n   * ve aliasing (onda aparentemente estatica o parpadeante).\r\n   *\r\n   * En su lugar, usamos una \"frecuencia visual\" independiente:\r\n   *   - Se cuenta en ciclos completos (2*pi radianes)\r\n   *   - A velocidad 1.0x: 1.5 ciclos visuales por segundo\r\n   *     (la onda se desplaza suavemente a la derecha)\r\n   *   - A velocidad 0: congelada\r\n   *   - A velocidad 3.0x: 4.5 ciclos\/seg (rapida pero legible)\r\n   *\r\n   * La forma de onda SIEMPRE tiene la frecuencia electrica correcta\r\n   * (3 ciclos de 50 Hz en pantalla), solo cambia la velocidad\r\n   * de desplazamiento horizontal.\r\n   *\/\r\n  var visualHz = S.graphSpeed * 1.5;  \/\/ ciclos visuales por segundo\r\n  S.oscPhase += dt * visualHz * 2 * Math.PI;\r\n\r\n  drawTransformer(S.t);\r\n  drawWaveform();\r\n  updateInstruments(dt);\r\n  updateAudio();\r\n\r\n  requestAnimationFrame(loop);\r\n}\r\n\r\nupdateInfo();\r\nrequestAnimationFrame(loop);\r\n<\/script>\r\n\r\n<style>\r\n  .btn-guia {\r\n    position: fixed;\r\n    bottom: 24px;\r\n    left: 24px;\r\n    z-index: 999;\r\n    background: #3fb950;\r\n    color: #0d1117;\r\n    font-family: 'Space Grotesk', sans-serif;\r\n    font-size: 0.82rem;\r\n    font-weight: 700;\r\n    letter-spacing: 1px;\r\n    text-transform: uppercase;\r\n    padding: 10px 18px;\r\n    border-radius: 8px;\r\n    border: none;\r\n    cursor: pointer;\r\n    box-shadow: 0 4px 20px rgba(63,185,80,0.35);\r\n    transition: transform 0.2s, box-shadow 0.2s;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n  }\r\n  .btn-guia:hover {\r\n    transform: translateY(-2px);\r\n    box-shadow: 0 6px 24px rgba(63,185,80,0.5);\r\n  }\r\n  .btn-guia svg { width: 15px; height: 15px; flex-shrink: 0; }\r\n  .guia-panel {\r\n    position: fixed;\r\n    bottom: 72px;\r\n    left: 24px;\r\n    width: 400px;\r\n    max-height: 70vh;\r\n    z-index: 1000;\r\n    background: #ffffff;\r\n    border: 1px solid #d0d7de;\r\n    border-radius: 12px;\r\n    box-shadow: 0 16px 48px rgba(0,0,0,0.4);\r\n    display: none;\r\n    flex-direction: column;\r\n    overflow: hidden;\r\n    font-family: 'Space Grotesk', sans-serif;\r\n  }\r\n  .guia-panel.visible { display: flex; }\r\n  .guia-header {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: center;\r\n    padding: 12px 16px;\r\n    border-bottom: 1px solid #d0d7de;\r\n    flex-shrink: 0;\r\n    background: #f6f8fa;\r\n  }\r\n  .guia-header-title {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n    font-size: 0.85rem;\r\n    font-weight: 700;\r\n    color: #1f2328;\r\n  }\r\n  .guia-header-title svg { width: 15px; height: 15px; color: #3fb950; }\r\n  .guia-close {\r\n    background: none;\r\n    border: none;\r\n    color: #636c76;\r\n    font-size: 1rem;\r\n    cursor: pointer;\r\n    padding: 2px 7px;\r\n    border-radius: 4px;\r\n    transition: color 0.2s, background 0.2s;\r\n    line-height: 1;\r\n  }\r\n  .guia-close:hover { color: #1f2328; background: rgba(0,0,0,0.06); }\r\n  .guia-body {\r\n    overflow-y: auto;\r\n    padding: 18px 18px 20px;\r\n    color: #1f2328;\r\n    font-size: 0.83rem;\r\n    line-height: 1.65;\r\n    background: #ffffff;\r\n  }\r\n  .guia-body::-webkit-scrollbar { width: 5px; }\r\n  .guia-body::-webkit-scrollbar-track { background: transparent; }\r\n  .guia-body::-webkit-scrollbar-thumb { background: #d0d7de; border-radius: 3px; }\r\n  .guia-section-title {\r\n    font-size: 1rem;\r\n    font-weight: 700;\r\n    color: #1f2328;\r\n    margin: 0 0 12px 0;\r\n    padding-bottom: 8px;\r\n    border-bottom: 1px solid #d0d7de;\r\n  }\r\n  .guia-block { margin-bottom: 14px; }\r\n  .guia-label {\r\n    font-size: 0.72rem;\r\n    text-transform: uppercase;\r\n    letter-spacing: 1px;\r\n    color: #636c76;\r\n    margin-bottom: 4px;\r\n  }\r\n  .guia-text { color: #1f2328; }\r\n  .guia-formula {\r\n    background: #f6f8fa;\r\n    border: 1px solid #d0d7de;\r\n    border-radius: 6px;\r\n    padding: 10px 14px;\r\n    text-align: center;\r\n    font-family: 'JetBrains Mono', monospace;\r\n    font-size: 0.88rem;\r\n    color: #0550ae;\r\n    margin: 10px 0;\r\n  }\r\n  .guia-steps { list-style: none; margin: 0; padding: 0; counter-reset: steps; }\r\n  .guia-steps li {\r\n    counter-increment: steps;\r\n    display: flex;\r\n    gap: 10px;\r\n    margin-bottom: 8px;\r\n    align-items: flex-start;\r\n    color: #1f2328;\r\n  }\r\n  .guia-steps li::before {\r\n    content: counter(steps);\r\n    background: #dafbe1;\r\n    color: #1a7f37;\r\n    font-size: 0.72rem;\r\n    font-weight: 700;\r\n    width: 20px;\r\n    height: 20px;\r\n    border-radius: 50%;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    flex-shrink: 0;\r\n    margin-top: 1px;\r\n    border: 1px solid #1a7f37;\r\n  }\r\n  .guia-result {\r\n    background: #dafbe1;\r\n    border-left: 3px solid #1a7f37;\r\n    border-radius: 0 6px 6px 0;\r\n    padding: 10px 14px;\r\n    color: #1f2328;\r\n    font-size: 0.82rem;\r\n    margin-top: 10px;\r\n  }\r\n  .guia-params {\r\n    background: #f6f8fa;\r\n    border: 1px solid #d0d7de;\r\n    border-radius: 6px;\r\n    padding: 10px 14px;\r\n    font-size: 0.8rem;\r\n    color: #1f2328;\r\n  }\r\n  .guia-params span { color: #0550ae; font-family: 'JetBrains Mono', monospace; }\r\n  .var { font-family: 'JetBrains Mono', monospace; }\r\n  .var.pos { color: #cf222e; }\r\n  .var.neg { color: #0550ae; }\r\n  .var.neu { color: #7d4e00; }\r\n  .var.ok  { color: #1a7f37; }\r\n<\/style>\r\n\r\n<div class=\"guia-panel\" id=\"guiaPanel\">\r\n  <div class=\"guia-header\">\r\n    <div class=\"guia-header-title\">\r\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"\/><path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"\/><\/svg>\r\n      Gu\u00eda de uso\r\n    <\/div>\r\n    <button class=\"guia-close\" onclick=\"toggleGuia()\">\u2715<\/button>\r\n  <\/div>\r\n\r\n  <div class=\"guia-body\">\r\n\r\n    <!--\u2605 BORRAR DESDE AQUI \u2605-->\r\n\r\n\r\n<div style=\"font-family: Arial, sans-serif; line-height: 1.6; color: #333;\">\r\n    <h3 style=\"color: #0056b3;\">El Transformador El\u00e9ctrico en Corriente Alterna<\/h3>\r\n\r\n    <p><strong>Objetivo:<\/strong> Comprender el principio de funcionamiento de un transformador el\u00e9ctrico monof\u00e1sico, analizando la relaci\u00f3n de transformaci\u00f3n, la inducci\u00f3n mutua a trav\u00e9s de un n\u00facleo magn\u00e9tico y la conservaci\u00f3n de la potencia entre el primario y el secundario.<\/p>\r\n    \r\n    <p><strong>Descripci\u00f3n breve:<\/strong> Simulaci\u00f3n interactiva que recrea un transformador compuesto por dos bobinas acopladas magn\u00e9ticamente por un n\u00facleo de hierro. Permite estudiar c\u00f3mo una tensi\u00f3n alterna aplicada al devanado primario induce un flujo magn\u00e9tico variable que genera una diferencia de potencial en el devanado secundario, validando la ley de voltajes y corrientes seg\u00fan el n\u00famero de espiras:<\/p>\r\n\r\n    <div style=\"text-align: center; margin: 20px 0; background: #f0f4f8; padding: 10px; border-radius: 5px;\">\r\n        \\( \\frac{V_p}{V_s} = \\frac{N_p}{N_s} = \\frac{I_s}{I_p} \\quad \\rightarrow \\quad P_p \\approx P_s \\)\r\n    <\/div>\r\n\r\n    <p><strong>C\u00f3mo usar (pasos):<\/strong><\/p>\r\n    <ul style=\"margin-left: 20px;\">\r\n        <li>Configurar la cantidad de vueltas o espiras del devanado primario (\\(N_p\\)) y del devanado secundario (\\(N_s\\)) para definir el tipo de transformador (elevador o reductor).<\/li>\r\n        <li>Aplicar una se\u00f1al de voltaje alterno en la entrada y observar en tiempo real las amplitudes de las ondas en el osciloscopio virtual para ambos circuitos.<\/li>\r\n        <li>Conectar una resistencia de carga en el circuito secundario para medir la intensidad de corriente resultante (\\(I_s\\)) y analizar c\u00f3mo repercute en la corriente demandada en el primario (\\(I_p\\)).<\/li>\r\n        <li>Activar la visualizaci\u00f3n de las l\u00edneas de flujo magn\u00e9tico en el n\u00facleo de hierro para comprender el papel de la permeabilidad magn\u00e9tica en el acoplamiento.<\/li>\r\n        <li>Modificar la frecuencia de la fuente para comprobar c\u00f3mo afecta el fen\u00f3meno de inducci\u00f3n mutua y la transferencia de energ\u00eda.<\/li>\r\n    <\/ul>\r\n\r\n    <p><strong>Par\u00e1metros ajustables:<\/strong> N\u00famero de espiras primarias y secundarias, voltaje y frecuencia de entrada (\\(Hz\\)), resistencia de carga (\\(\\Omega\\)) y visualizaci\u00f3n de flujos y vectores.<\/p>\r\n\r\n    <p style=\"background-color: #f8f9fa; padding: 15px; border-left: 5px solid #0056b3;\">\r\n        <strong>Resultados esperados \/ observaciones:<\/strong> Si el n\u00famero de espiras del secundario es mayor al del primario (\\(N_s > N_p\\)), el dispositivo act\u00faa como un transformador elevador de voltaje. Se comprueba experimentalmente que, bajo condiciones ideales (sin p\u00e9rdidas), el aumento de tensi\u00f3n en el secundario implica una reducci\u00f3n proporcional de la corriente, manteniendo constante la potencia el\u00e9ctrica del sistema.\r\n    <\/p>\r\n<\/div>\r\n\r\n\r\n   <!--\u2605 BORRAR HASTA AQUI \u2605-->\r\n\r\n  <\/div>\r\n<\/div>\r\n\r\n<button class=\"btn-guia\" onclick=\"toggleGuia()\">\r\n  <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"\/><path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"\/><\/svg>\r\n  Gu\u00eda de uso\r\n<\/button>\r\n\r\n<script>\r\n  function toggleGuia() {\r\n    document.getElementById('guiaPanel').classList.toggle('visible');\r\n  }\r\n<\/script>\r\n\r\n\r\n<\/body>\r\n<\/html>\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>Simulador de Transformador Monof\u00e1sico CA Simulador de Transformador Monofasico CA Fuente CA Tension de entrada120 V Frecuencia50 Hz Transformador Espiras primario (Np)200 Espiras secundario (Ns)100&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-7688","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>transformador_CA - 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\/transformador_ca\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"transformador_CA - F\u00edsica 2\" \/>\n<meta property=\"og:description\" content=\"Simulador de Transformador Monof\u00e1sico CA Simulador de Transformador Monofasico CA Fuente CA Tension de entrada120 V Frecuencia50 Hz Transformador Espiras primario (Np)200 Espiras secundario (Ns)100&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/transformador_ca\/\" \/>\n<meta property=\"og:site_name\" content=\"F\u00edsica 2\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-29T00:54:12+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=\"3 minutos\" \/>\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\\\/transformador_ca\\\/\",\"url\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/index.php\\\/transformador_ca\\\/\",\"name\":\"transformador_CA - F\u00edsica 2\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/#website\"},\"datePublished\":\"2026-05-28T01:13:48+00:00\",\"dateModified\":\"2026-05-29T00:54:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/index.php\\\/transformador_ca\\\/#breadcrumb\"},\"inLanguage\":\"es-AR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/index.php\\\/transformador_ca\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/index.php\\\/transformador_ca\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\\\/\\\/fisica2.fica.unsl.edu.ar\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"transformador_CA\"}]},{\"@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":"transformador_CA - 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\/transformador_ca\/","og_locale":"es_ES","og_type":"article","og_title":"transformador_CA - F\u00edsica 2","og_description":"Simulador de Transformador Monof\u00e1sico CA Simulador de Transformador Monofasico CA Fuente CA Tension de entrada120 V Frecuencia50 Hz Transformador Espiras primario (Np)200 Espiras secundario (Ns)100&hellip;","og_url":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/transformador_ca\/","og_site_name":"F\u00edsica 2","article_modified_time":"2026-05-29T00:54:12+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/transformador_ca\/","url":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/transformador_ca\/","name":"transformador_CA - F\u00edsica 2","isPartOf":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#website"},"datePublished":"2026-05-28T01:13:48+00:00","dateModified":"2026-05-29T00:54:12+00:00","breadcrumb":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/transformador_ca\/#breadcrumb"},"inLanguage":"es-AR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/transformador_ca\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/transformador_ca\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/fisica2.fica.unsl.edu.ar\/"},{"@type":"ListItem","position":2,"name":"transformador_CA"}]},{"@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\/7688","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=7688"}],"version-history":[{"count":10,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/7688\/revisions"}],"predecessor-version":[{"id":7716,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/7688\/revisions\/7716"}],"wp:attachment":[{"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/media?parent=7688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}