{"id":6220,"date":"2026-03-15T21:44:54","date_gmt":"2026-03-16T00:44:54","guid":{"rendered":"https:\/\/fisica2.fica.unsl.edu.ar\/?page_id=6220"},"modified":"2026-03-19T14:59:55","modified_gmt":"2026-03-19T17:59:55","slug":"circuito_rc","status":"publish","type":"page","link":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/circuito_rc\/","title":{"rendered":"circuito_RC"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6220\" class=\"elementor elementor-6220\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7a665ac elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7a665ac\" 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-8d9c037\" data-id=\"8d9c037\" 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-bcc7c66 elementor-widget elementor-widget-html\" data-id=\"bcc7c66\" 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>Laboratorio Virtual - Circuito RC<\/title>\r\n    <style>\r\n        :root {\r\n            --bg-primary: #0f172a;\r\n            --bg-secondary: #1e293b;\r\n            --bg-tertiary: #334155;\r\n            --fg-primary: #f1f5f9;\r\n            --fg-secondary: #94a3b8;\r\n            --fg-muted: #64748b;\r\n            --accent: #38bdf8;\r\n            --positive: #ef4444;\r\n            --negative: #3b82f6;\r\n            --success: #22c55e;\r\n            --warning: #f59e0b;\r\n            --border: #475569;\r\n        }\r\n\r\n        * { margin: 0; padding: 0; box-sizing: border-box; }\r\n        body {\r\n            font-family: 'Segoe UI', system-ui, sans-serif;\r\n            background: var(--bg-primary);\r\n            color: var(--fg-primary);\r\n            min-height: 100vh;\r\n            overflow-x: hidden;\r\n        }\r\n\r\n        .container {\r\n            display: grid;\r\n            grid-template-columns: 380px 320px 1fr;\r\n            gap: 16px;\r\n            padding: 16px;\r\n            max-width: 1800px;\r\n            margin: 0 auto;\r\n            min-height: 100vh;\r\n        }\r\n\r\n        header {\r\n            grid-column: 1 \/ -1;\r\n            background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%);\r\n            border: 1px solid var(--border);\r\n            border-radius: 12px;\r\n            padding: 16px 24px;\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n        }\r\n        header h1 { font-size: 1.5rem; font-weight: 600; }\r\n        header h1 span { color: var(--accent); }\r\n        \r\n        \/* Definimos el estilo base *\/\r\n        .mode-badge {\r\n            padding: 6px 16px; border-radius: 20px;\r\n            font-size: 0.85rem; font-weight: 600; text-transform: uppercase;\r\n            background: var(--accent); color: var(--bg-primary);\r\n        }\r\n\r\n        .panel {\r\n            background: var(--bg-secondary);\r\n            border: 1px solid var(--border);\r\n            border-radius: 12px;\r\n            padding: 20px;\r\n            display: flex;\r\n            flex-direction: column;\r\n        }\r\n        \r\n        .section-title {\r\n            font-size: 0.75rem; text-transform: uppercase;\r\n            letter-spacing: 1.5px; color: var(--fg-muted);\r\n            padding-bottom: 8px; border-bottom: 1px solid var(--border);\r\n            margin-bottom: 16px;\r\n        }\r\n\r\n        \/* Circuit and Controls styles *\/\r\n        .circuit-panel { height: fit-content; }\r\n        .circuit-container {\r\n            background: var(--bg-primary);\r\n            border-radius: 8px; padding: 16px;\r\n            min-height: 400px; position: relative; margin-bottom: 16px;\r\n        }\r\n        #circuitCanvas { width: 100%; height: 100%; display: block; }\r\n        .indicators { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }\r\n        .indicator-card { background: var(--bg-tertiary); border-radius: 8px; padding: 12px; text-align: center; }\r\n        .indicator-label { font-size: 0.7rem; color: var(--fg-muted); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 4px; }\r\n        .indicator-value { font-size: 1.1rem; font-weight: 600; font-family: 'Courier New', monospace; color: var(--accent); }\r\n\r\n        .controls-panel { height: fit-content; }\r\n        .control-group { margin-bottom: 16px; }\r\n        .control-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }\r\n        .control-label { font-size: 0.85rem; color: var(--fg-secondary); }\r\n        .control-value { font-family: 'Courier New', monospace; font-weight: 600; color: var(--accent); min-width: 80px; text-align: right; }\r\n        input[type=\"range\"] { width: 100%; height: 6px; background: var(--bg-tertiary); border-radius: 3px; appearance: none; cursor: pointer; }\r\n        input[type=\"range\"]::-webkit-slider-thumb { appearance: none; width: 18px; height: 18px; background: var(--accent); border-radius: 50%; cursor: pointer; }\r\n        \r\n        .buttons-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 16px; }\r\n        .btn {\r\n            padding: 10px 16px; border: none; border-radius: 6px;\r\n            font-size: 0.85rem; font-weight: 600; cursor: pointer;\r\n            transition: all 0.2s; text-transform: uppercase; letter-spacing: 0.5px;\r\n        }\r\n        .btn-primary { background: var(--accent); color: var(--bg-primary); }\r\n        .btn-secondary { background: var(--bg-tertiary); color: var(--fg-primary); border: 1px solid var(--border); }\r\n        .btn-success { background: var(--success); color: white; }\r\n        \r\n        .checkbox-group { display: flex; gap: 16px; flex-wrap: wrap; }\r\n        .checkbox-item { display: flex; align-items: center; gap: 6px; cursor: pointer; }\r\n        .checkbox-item input { width: 16px; height: 16px; cursor: pointer; }\r\n\r\n        .experiment-panel.hidden { display: none; }\r\n        .experiment-info { background: rgba(245, 158, 11, 0.1); border: 1px solid var(--warning); border-radius: 8px; padding: 12px; margin-bottom: 16px; }\r\n        .experiment-info h3 { color: var(--warning); font-size: 0.9rem; margin-bottom: 8px; }\r\n        .experiment-info p { font-size: 0.8rem; color: var(--fg-secondary); line-height: 1.5; }\r\n        .input-group { margin-bottom: 12px; }\r\n        .input-group label { display: block; font-size: 0.8rem; color: var(--fg-secondary); margin-bottom: 6px; }\r\n        .input-group input { width: 100%; padding: 10px; background: var(--bg-primary); border: 1px solid var(--border); border-radius: 6px; color: var(--fg-primary); font-family: 'Courier New', monospace; }\r\n        .result-box { background: var(--bg-tertiary); border-radius: 8px; padding: 16px; margin-top: 16px; }\r\n        .result-row { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 0.85rem; }\r\n        .feedback { margin-top: 12px; padding: 12px; border-radius: 6px; text-align: center; font-weight: 600; }\r\n        .feedback.success { background: rgba(34, 197, 94, 0.2); color: var(--success); border: 1px solid var(--success); }\r\n        .feedback.warning { background: rgba(245, 158, 11, 0.2); color: var(--warning); border: 1px solid var(--warning); }\r\n        .feedback.error { background: rgba(239, 68, 68, 0.2); color: var(--positive); border: 1px solid var(--positive); }\r\n\r\n        \/* Column 3: Graphs *\/\r\n        .graphs-column { display: flex; flex-direction: column; gap: 16px; }\r\n        .graph-container { background: var(--bg-primary); border-radius: 8px; padding: 16px; flex: 1; display: flex; flex-direction: column; }\r\n        .graph-title { font-size: 0.85rem; font-weight: 600; margin-bottom: 8px; }\r\n        .graph-canvas-wrapper { position: relative; flex: 1; min-height: 200px; }\r\n        .graph-canvas-wrapper canvas { width: 100%; height: 100%; }\r\n        .cursor-info {\r\n            position: absolute; background: var(--bg-secondary); border: 1px solid var(--accent);\r\n            padding: 6px 10px; border-radius: 4px; font-size: 0.8rem;\r\n            font-family: 'Courier New', monospace; pointer-events: none;\r\n            opacity: 0; transition: opacity 0.2s; z-index: 10; white-space: nowrap; color: #fff;\r\n        }\r\n        .cursor-info.visible { opacity: 1; }\r\n\r\n        @media (max-width: 1400px) {\r\n            .container { grid-template-columns: 1fr 1fr; }\r\n            .graphs-column { grid-column: 1 \/ -1; flex-direction: row; }\r\n            .graph-container { min-height: 300px; }\r\n        }\r\n        @media (max-width: 900px) {\r\n            .container { grid-template-columns: 1fr; }\r\n            .graphs-column { flex-direction: column; }\r\n        }\r\n        \r\n        .header-center {\r\n            display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 12px;\r\n        }\r\n        .header-logo { height: 25px; width: 70px; }\r\n        .header-subtitle { font-size: 0.85rem; color: var(--fg-secondary); margin: 0; white-space: nowrap; }\r\n        \r\n    <\/style>\r\n<\/head>\r\n<body>\r\n    <div class=\"container\">\r\n        <header>\r\n            <h1> <span style=\"color: white;\">Laboratorio Virtual <\/span>- <span>Circuito RC<\/span><\/h1>\r\n\r\n            <div class=\"header-center\">\r\n                <a href=\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/FISAR_SIM\/\" target=\"_blank\">\r\n                <img decoding=\"async\" src=\"FISAR_SIM_1\" alt=\"Fluxar Logo\" class=\"header-logo\"><\/a>\r\n                <p class=\"header-subtitle\">&nbsp;&nbsp;Simulaciones Interactivas FICA - UNSL<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"mode-indicator\">\r\n                <span id=\"modeText\" style=\"font-size: 0.85rem; color: var(--fg-secondary); margin-right: 12px;\">Modo Normal<\/span>\r\n                <span id=\"modeBadge\" class=\"mode-badge\">Normal<\/span>\r\n            <\/div>\r\n        <\/header>\r\n\r\n        <!-- Column 1: Circuit Visualization -->\r\n        <div class=\"panel circuit-panel\">\r\n            <div class=\"section-title\">Circuito y Valores<\/div>\r\n            <div class=\"circuit-container\">\r\n                <canvas id=\"circuitCanvas\"><\/canvas>\r\n            <\/div>\r\n            <div class=\"indicators\">\r\n                <div class=\"indicator-card\">\r\n                    <div class=\"indicator-label\">Constante \u03c4<\/div>\r\n                    <div class=\"indicator-value\" id=\"tauValue\">0.00 s<\/div>\r\n                <\/div>\r\n                <div class=\"indicator-card\">\r\n                    <div class=\"indicator-label\">Carga Max<\/div>\r\n                    <div class=\"indicator-value\" id=\"qmaxValue\">0.00 mC<\/div>\r\n                <\/div>\r\n                <div class=\"indicator-card\">\r\n                    <div class=\"indicator-label\">Corriente Inic.<\/div>\r\n                    <div class=\"indicator-value\" id=\"i0Value\">0.00 mA<\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Column 2: Controls -->\r\n        <div class=\"panel controls-panel\">\r\n            <div class=\"section-title\">Parametros<\/div>\r\n            \r\n            <div class=\"control-group\">\r\n                <div class=\"control-row\">\r\n                    <span class=\"control-label\">Voltaje<\/span>\r\n                    <span class=\"control-value\" id=\"voltageDisplay\">5.0 V<\/span>\r\n                <\/div>\r\n                <input type=\"range\" id=\"voltageSlider\" min=\"0\" max=\"10\" step=\"0.1\" value=\"5\">\r\n            <\/div>\r\n\r\n            <div class=\"control-group\">\r\n                <div class=\"control-row\">\r\n                    <span class=\"control-label\">Resistencia<\/span>\r\n                    <span class=\"control-value\" id=\"resistanceDisplay\">1000 \u03a9<\/span>\r\n                <\/div>\r\n                <input type=\"range\" id=\"resistanceSlider\" min=\"100\" max=\"10000\" step=\"100\" value=\"1000\">\r\n            <\/div>\r\n\r\n            <div class=\"control-group\">\r\n                <div class=\"control-row\">\r\n                    <span class=\"control-label\">Capacitancia<\/span>\r\n                    <span class=\"control-value\" id=\"capacitanceDisplay\">100 \u00b5F<\/span>\r\n                <\/div>\r\n                <input type=\"range\" id=\"capacitanceSlider\" min=\"1\" max=\"1000\" step=\"1\" value=\"100\">\r\n            <\/div>\r\n\r\n            <div class=\"control-group\">\r\n                <div class=\"control-row\">\r\n                    <span class=\"control-label\">Velocidad<\/span>\r\n                    <span class=\"control-value\" id=\"speedDisplay\">1x<\/span>\r\n                <\/div>\r\n                <input type=\"range\" id=\"speedSlider\" min=\"1\" max=\"10\" step=\"1\" value=\"1\">\r\n            <\/div>\r\n\r\n            <div class=\"control-group\">\r\n                <div class=\"checkbox-group\">\r\n                    <div class=\"checkbox-item\">\r\n                        <input type=\"checkbox\" id=\"modeExperimental\">\r\n                        <label for=\"modeExperimental\">Modo Experimento<\/label>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"buttons-grid\">\r\n                <button class=\"btn btn-primary\" id=\"btnStart\">Iniciar<\/button>\r\n                <button class=\"btn btn-secondary\" id=\"btnPause\">Pausar<\/button>\r\n                <button class=\"btn btn-secondary\" id=\"btnReset\">Reiniciar<\/button>\r\n            <\/div>\r\n\r\n            <!-- Experiment Mode Panel -->\r\n            <div class=\"experiment-panel hidden\" id=\"experimentPanel\" style=\"margin-top: 20px;\">\r\n                <div class=\"section-title\">Modo Experimental<\/div>\r\n                <div class=\"experiment-info\">\r\n                    <h3>Instrucciones<\/h3>\r\n                    <p>Determine R midiendo t\u2081\/\u2082 en la gr\u00e1fica de Voltaje (donde Vc = 50% Vmax).<\/p>\r\n                <\/div>\r\n                \r\n                <div class=\"input-group\">\r\n                    <label>Tiempo t\u2081\/\u2082 (s):<\/label>\r\n                    <input type=\"number\" id=\"inputT12\" step=\"0.001\" placeholder=\"Ej: 0.069\">\r\n                <\/div>\r\n                <div class=\"input-group\">\r\n                    <label>R calculada (\u03a9):<\/label>\r\n                    <input type=\"number\" id=\"inputRCalculated\" step=\"1\" placeholder=\"Ingrese c\u00e1lculo\">\r\n                <\/div>\r\n                <button class=\"btn btn-success\" id=\"btnVerify\" style=\"width: 100%;\">Verificar<\/button>\r\n                <div class=\"result-box\">\r\n                    <div class=\"result-row\"><span>Valor Real:<\/span><span id=\"realResistance\">-- \u03a9<\/span><\/div>\r\n                    <div class=\"result-row\"><span>Error:<\/span><span id=\"errorPercent\">-- %<\/span><\/div>\r\n                <\/div>\r\n                <div class=\"feedback\" id=\"feedbackBox\" style=\"display: none;\"><\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Column 3: Graphs -->\r\n        <div class=\"graphs-column\">\r\n            <div class=\"panel graph-container\">\r\n                <div class=\"graph-title\">Carga q(t)<\/div>\r\n                <div class=\"graph-canvas-wrapper\">\r\n                    <canvas id=\"chargeGraph\"><\/canvas>\r\n                    <div class=\"cursor-info\" id=\"chargeCursor\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"panel graph-container\">\r\n                <div class=\"graph-title\">Corriente i(t)<\/div>\r\n                <div class=\"graph-canvas-wrapper\">\r\n                    <canvas id=\"currentGraph\"><\/canvas>\r\n                    <div class=\"cursor-info\" id=\"currentCursor\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"panel graph-container\">\r\n                <div class=\"graph-title\">Voltaje Vc(t)<\/div>\r\n                <div class=\"graph-canvas-wrapper\">\r\n                    <canvas id=\"voltageGraph\"><\/canvas>\r\n                    <div class=\"cursor-info\" id=\"voltageCursor\"><\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        \/\/ ==================== STATE MANAGEMENT ====================\r\n        const state = {\r\n            voltage: 5.0, resistance: 1000, capacitance: 100e-6, speed: 1,\r\n            isRunning: false, isPaused: false, time: 0,\r\n            experimentalMode: false, dataPoints: [],\r\n            tau: 0, qmax: 0, i0: 0,\r\n            animationId: null, lastTimestamp: 0\r\n        };\r\n\r\n        \/\/ Variable para guardar el intervalo que fuerza el color\r\n        let colorEnforcer = null;\r\n\r\n        \/\/ ==================== DOM ELEMENTS ====================\r\n        const elements = {\r\n            voltageSlider: document.getElementById('voltageSlider'), resistanceSlider: document.getElementById('resistanceSlider'),\r\n            capacitanceSlider: document.getElementById('capacitanceSlider'), speedSlider: document.getElementById('speedSlider'),\r\n            voltageDisplay: document.getElementById('voltageDisplay'), resistanceDisplay: document.getElementById('resistanceDisplay'),\r\n            capacitanceDisplay: document.getElementById('capacitanceDisplay'), speedDisplay: document.getElementById('speedDisplay'),\r\n            tauValue: document.getElementById('tauValue'), qmaxValue: document.getElementById('qmaxValue'), i0Value: document.getElementById('i0Value'),\r\n            btnStart: document.getElementById('btnStart'), btnPause: document.getElementById('btnPause'), btnReset: document.getElementById('btnReset'),\r\n            modeExperimental: document.getElementById('modeExperimental'), modeBadge: document.getElementById('modeBadge'), modeText: document.getElementById('modeText'), experimentPanel: document.getElementById('experimentPanel'),\r\n            inputT12: document.getElementById('inputT12'), inputRCalculated: document.getElementById('inputRCalculated'), btnVerify: document.getElementById('btnVerify'),\r\n            realResistance: document.getElementById('realResistance'), errorPercent: document.getElementById('errorPercent'), feedbackBox: document.getElementById('feedbackBox'),\r\n            circuitCanvas: document.getElementById('circuitCanvas'),\r\n            chargeGraph: document.getElementById('chargeGraph'), currentGraph: document.getElementById('currentGraph'), voltageGraph: document.getElementById('voltageGraph'),\r\n            chargeCursor: document.getElementById('chargeCursor'), currentCursor: document.getElementById('currentCursor'), voltageCursor: document.getElementById('voltageCursor'),\r\n        };\r\n\r\n        \/\/ ==================== PHYSICS CALCULATIONS ====================\r\n        function calculateTau() { state.tau = state.resistance * state.capacitance; return state.tau; }\r\n        function calculateQmax() { state.qmax = state.capacitance * state.voltage; return state.qmax; }\r\n        function calculateI0() { state.i0 = state.voltage \/ state.resistance; return state.i0; }\r\n        function getCharge(t) { const tau = calculateTau(); if (tau === 0) return 0; return state.qmax * (1 - Math.exp(-t \/ tau)); }\r\n        function getCurrent(t) { const tau = calculateTau(); if (tau === 0) return 0; return state.i0 * Math.exp(-t \/ tau); }\r\n        function getVoltage(t) { const tau = calculateTau(); if (tau === 0) return 0; return state.voltage * (1 - Math.exp(-t \/ tau)); }\r\n\r\n        \/\/ ==================== CIRCUIT DRAWING ====================\r\n        function drawCircuit() {\r\n            const canvas = elements.circuitCanvas; const ctx = canvas.getContext('2d');\r\n            const rect = canvas.parentElement.getBoundingClientRect();\r\n            canvas.width = rect.width; canvas.height = rect.height;\r\n            const w = canvas.width, h = canvas.height, padding = 40;\r\n            ctx.clearRect(0, 0, w, h);\r\n            \r\n            const circuitWidth = w - padding * 2, circuitHeight = h - padding * 2;\r\n            const cx = w \/ 2, cy = h \/ 2;\r\n            const left = cx - circuitWidth \/ 2, right = cx + circuitWidth \/ 2;\r\n            const top = cy - circuitHeight \/ 2, bottom = cy + circuitHeight \/ 2;\r\n\r\n            ctx.strokeStyle = '#64748b'; ctx.lineWidth = 3; ctx.lineCap = 'round';\r\n            \r\n            \/\/ Wires\r\n            ctx.beginPath(); ctx.moveTo(left, top); ctx.lineTo(cx - circuitWidth\/4 - 30, top); ctx.stroke();\r\n            ctx.beginPath(); ctx.moveTo(cx - circuitWidth\/4 + 30, top); ctx.lineTo(cx + circuitWidth\/4 - 30, top); ctx.stroke();\r\n            ctx.beginPath(); ctx.moveTo(cx + circuitWidth\/4 + 30, top); ctx.lineTo(right, top); ctx.lineTo(right, cy - 30); ctx.stroke();\r\n            ctx.beginPath(); ctx.moveTo(right, cy + 30); ctx.lineTo(right, bottom); ctx.lineTo(left, bottom); ctx.lineTo(left, cy + 30); ctx.stroke();\r\n            ctx.beginPath(); ctx.moveTo(left, cy - 30); ctx.lineTo(left, top); ctx.stroke();\r\n\r\n            \/\/ Battery\r\n            ctx.strokeStyle = '#fbbf24'; ctx.lineWidth = 4;\r\n            ctx.beginPath(); ctx.moveTo(left - 20, cy - 30); ctx.lineTo(left + 20, cy - 30); ctx.stroke();\r\n            ctx.lineWidth = 3; ctx.beginPath(); ctx.moveTo(left - 10, cy + 30); ctx.lineTo(left + 10, cy + 30); ctx.stroke();\r\n            ctx.fillStyle = '#fbbf24'; ctx.font = 'bold 14px monospace'; ctx.textAlign = 'center';\r\n            ctx.fillText(state.voltage.toFixed(1) + 'V', left + 35, cy + 5);\r\n            ctx.fillStyle = '#ef4444'; ctx.fillText('+', left, cy - 45);\r\n            ctx.fillStyle = '#3b82f6'; ctx.fillText('-', left, cy + 55);\r\n\r\n            \/\/ Switch\r\n            const switchX = cx - circuitWidth \/ 4;\r\n            ctx.strokeStyle = '#94a3b8'; ctx.lineWidth = 3;\r\n            ctx.beginPath(); ctx.arc(switchX - 15, top, 5, 0, Math.PI * 2); ctx.stroke();\r\n            ctx.beginPath(); ctx.arc(switchX + 15, top, 5, 0, Math.PI * 2); ctx.stroke();\r\n            const leverAngle = state.isRunning ? 0 : -Math.PI \/ 4;\r\n            ctx.save(); ctx.translate(switchX - 15, top); ctx.rotate(leverAngle);\r\n            ctx.beginPath(); ctx.moveTo(0, 0); ctx.lineTo(35, 0); ctx.stroke(); ctx.restore();\r\n            ctx.fillStyle = '#94a3b8'; ctx.font = '12px sans-serif'; ctx.fillText(state.isRunning ? 'CERRADO' : 'ABIERTO', switchX, top - 20);\r\n\r\n            \/\/ Resistor\r\n            const resX = cx + circuitWidth\/4;\r\n            ctx.strokeStyle = '#f97316'; ctx.beginPath(); ctx.moveTo(resX - 30, top);\r\n            const zigW = 60\/6;\r\n            for(let i=0; i<6; i++) ctx.lineTo(resX - 30 + (i+1)*zigW, i%2===0 ? top-15 : top+15);\r\n            ctx.stroke();\r\n            ctx.fillStyle = '#f97316'; ctx.font = 'bold 12px monospace';\r\n            ctx.fillText(state.experimentalMode ? 'R = ?' : state.resistance + ' \u03a9', resX, top - 30);\r\n\r\n            \/\/ Capacitor\r\n            ctx.strokeStyle = '#38bdf8'; ctx.lineWidth = 4;\r\n            ctx.beginPath(); ctx.moveTo(right - 25, cy - 10); ctx.lineTo(right + 25, cy - 10); ctx.stroke();\r\n            ctx.beginPath(); ctx.moveTo(right - 25, cy + 10); ctx.lineTo(right + 25, cy + 10); ctx.stroke();\r\n            ctx.fillStyle = '#38bdf8'; ctx.font = 'bold 12px monospace'; ctx.textAlign = 'left';\r\n            ctx.fillText((state.capacitance * 1e6).toFixed(0) + '\u00b5F', right - 25, cy - 20);\r\n\r\n            \/\/ Charges\r\n            if (state.time > 0) drawChargeAccumulation(ctx, right, cy, 50);\r\n        }\r\n\r\n        function drawChargeAccumulation(ctx, capX, capY, plateWidth) {\r\n            const charge = getCharge(state.time);\r\n            const numPairs = Math.floor((charge \/ state.qmax) * 4);\r\n            ctx.font = 'bold 14px sans-serif'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\r\n            for (let i = 1; i <= numPairs; i++) {\r\n                const x = capX - plateWidth\/2 + i * (plateWidth\/5);\r\n                ctx.fillStyle = '#ef4444'; ctx.fillText('+', x, capY - 10);\r\n                ctx.fillStyle = '#3b82f6'; ctx.fillText('-', x, capY + 10);\r\n            }\r\n        }\r\n\r\n        \/\/ ==================== GRAPH CLASS ====================\r\n        class Graph {\r\n            constructor(canvas, cursorEl, options) {\r\n                this.canvas = canvas; this.ctx = canvas.getContext('2d');\r\n                this.cursorEl = cursorEl; this.options = options;\r\n                this.padding = { top: 20, right: 20, bottom: 40, left: 60 };\r\n                this.data = [];\r\n                this.showTau = true;\r\n                this.setupCanvas(); this.setupMouseEvents();\r\n            }\r\n\r\n            setupCanvas() {\r\n                const rect = this.canvas.parentElement.getBoundingClientRect();\r\n                this.canvas.width = rect.width; this.canvas.height = rect.height;\r\n            }\r\n\r\n            setupMouseEvents() {\r\n                this.canvas.addEventListener('mousemove', (e) => this.handleMouseMove(e));\r\n                this.canvas.addEventListener('mouseleave', () => this.cursorEl.classList.remove('visible'));\r\n            }\r\n\r\n            handleMouseMove(e) {\r\n                const rect = this.canvas.getBoundingClientRect();\r\n                const x = e.clientX - rect.left;\r\n                const plotWidth = this.canvas.width - this.padding.left - this.padding.right;\r\n                const t = ((x - this.padding.left) \/ plotWidth) * this.options.maxTime;\r\n\r\n                if (t >= 0 && t <= this.options.maxTime) {\r\n                    const val = this.options.getValue(t);\r\n                    this.cursorEl.innerHTML = `t: ${t.toFixed(3)} s<br>${this.options.label}: ${val.toFixed(4)} ${this.options.unit}`;\r\n                    this.cursorEl.style.left = (x + 15) + 'px';\r\n                    this.cursorEl.style.top = (e.clientY - rect.top - 30) + 'px';\r\n                    this.cursorEl.classList.add('visible');\r\n                } else {\r\n                    this.cursorEl.classList.remove('visible');\r\n                }\r\n            }\r\n\r\n            clear() { this.data = []; }\r\n            addPoint(t, value) { this.data.push({ t, value }); }\r\n\r\n            draw() {\r\n                const ctx = this.ctx; const w = this.canvas.width; const h = this.canvas.height;\r\n                ctx.clearRect(0, 0, w, h);\r\n                const plotWidth = w - this.padding.left - this.padding.right;\r\n                const plotHeight = h - this.padding.top - this.padding.bottom;\r\n\r\n                ctx.fillStyle = '#0f172a'; ctx.fillRect(this.padding.left, this.padding.top, plotWidth, plotHeight);\r\n                \r\n                ctx.strokeStyle = '#1e293b'; ctx.lineWidth = 1;\r\n                for (let i = 0; i <= 10; i++) { const x = this.padding.left + (i\/10)*plotWidth; ctx.beginPath(); ctx.moveTo(x, this.padding.top); ctx.lineTo(x, h-this.padding.bottom); ctx.stroke(); }\r\n                for (let i = 0; i <= 5; i++) { const y = this.padding.top + (i\/5)*plotHeight; ctx.beginPath(); ctx.moveTo(this.padding.left, y); ctx.lineTo(w-this.padding.right, y); ctx.stroke(); }\r\n\r\n                ctx.strokeStyle = '#64748b'; ctx.lineWidth = 2;\r\n                ctx.beginPath(); ctx.moveTo(this.padding.left, this.padding.top); ctx.lineTo(this.padding.left, h-this.padding.bottom); ctx.stroke();\r\n                ctx.beginPath(); ctx.moveTo(this.padding.left, h-this.padding.bottom); ctx.lineTo(w-this.padding.right, h-this.padding.bottom); ctx.stroke();\r\n\r\n                if (this.showTau && state.tau <= this.options.maxTime) {\r\n                    const tauX = this.padding.left + (state.tau \/ this.options.maxTime) * plotWidth;\r\n                    ctx.strokeStyle = 'rgba(251, 191, 36, 0.6)'; ctx.lineWidth = 2; ctx.setLineDash([5, 5]);\r\n                    ctx.beginPath(); ctx.moveTo(tauX, this.padding.top); ctx.lineTo(tauX, h-this.padding.bottom); ctx.stroke(); ctx.setLineDash([]);\r\n                    ctx.fillStyle = '#fbbf24'; ctx.font = '11px monospace'; ctx.textAlign = 'center'; ctx.fillText('\u03c4', tauX, this.padding.top - 5);\r\n                }\r\n\r\n                if (this.data.length > 1) {\r\n                    ctx.strokeStyle = this.options.color; ctx.lineWidth = 2; ctx.beginPath();\r\n                    this.data.forEach((pt, i) => {\r\n                        const px = this.padding.left + (pt.t \/ this.options.maxTime) * plotWidth;\r\n                        const py = h - this.padding.bottom - (pt.value \/ this.options.maxValue) * plotHeight;\r\n                        i === 0 ? ctx.moveTo(px, py) : ctx.lineTo(px, py);\r\n                    });\r\n                    ctx.stroke();\r\n                }\r\n\r\n                \/\/ ===== TEXTOS BLANCOS =====\r\n                ctx.fillStyle = '#ffffff'; \r\n                ctx.font = '11px sans-serif';\r\n                ctx.textAlign = 'center'; ctx.fillText('Tiempo (s)', w\/2, h-5);\r\n                ctx.save(); ctx.translate(15, h\/2); ctx.rotate(-Math.PI\/2);\r\n                ctx.fillText(this.options.label + ' (' + this.options.unit + ')', 0, 0); ctx.restore();\r\n\r\n                ctx.font = '10px monospace'; ctx.textAlign = 'right';\r\n                for (let i=0; i<=5; i++) { const v = (i\/5)*this.options.maxValue; const y = h-this.padding.bottom-(i\/5)*plotHeight; ctx.fillText(v.toFixed(2), this.padding.left-5, y+3); }\r\n                ctx.textAlign = 'center';\r\n                for (let i=0; i<=5; i++) { const t = (i\/5)*this.options.maxTime; const x = this.padding.left+(i\/5)*plotWidth; ctx.fillText(t.toFixed(2), x, h-this.padding.bottom+15); }\r\n            }\r\n        }\r\n\r\n        let chargeGraph, currentGraph, voltageGraph;\r\n\r\n        function initGraphs() {\r\n            const maxTime = Math.max(5 * state.tau, 1);\r\n            chargeGraph = new Graph(elements.chargeGraph, elements.chargeCursor, { label: 'Carga', unit: 'mC', color: '#38bdf8', maxTime: maxTime, maxValue: calculateQmax() * 1000 * 1.1, getValue: (t) => getCharge(t) * 1000 });\r\n            currentGraph = new Graph(elements.currentGraph, elements.currentCursor, { label: 'Corriente', unit: 'mA', color: '#22c55e', maxTime: maxTime, maxValue: calculateI0() * 1000 * 1.1, getValue: (t) => getCurrent(t) * 1000 });\r\n            voltageGraph = new Graph(elements.voltageGraph, elements.voltageCursor, { label: 'Voltaje', unit: 'V', color: '#f59e0b', maxTime: maxTime, maxValue: state.voltage * 1.1, getValue: (t) => getVoltage(t) });\r\n        }\r\n\r\n        function updateGraphs() {\r\n            const maxTime = Math.max(5 * state.tau, 1);\r\n            chargeGraph.options.maxTime = maxTime; chargeGraph.options.maxValue = calculateQmax() * 1000 * 1.1;\r\n            currentGraph.options.maxTime = maxTime; currentGraph.options.maxValue = calculateI0() * 1000 * 1.1;\r\n            voltageGraph.options.maxTime = maxTime; voltageGraph.options.maxValue = state.voltage * 1.1;\r\n            chargeGraph.draw(); currentGraph.draw(); voltageGraph.draw();\r\n        }\r\n\r\n        \/\/ ==================== SIMULATION ====================\r\n        function simulate(timestamp) {\r\n            if (!state.isRunning || state.isPaused) return;\r\n            const dt = ((timestamp - (state.lastTimestamp || timestamp)) \/ 1000) * state.speed;\r\n            state.lastTimestamp = timestamp; state.time += dt;\r\n            \r\n            chargeGraph.addPoint(state.time, getCharge(state.time) * 1000);\r\n            currentGraph.addPoint(state.time, getCurrent(state.time) * 1000);\r\n            voltageGraph.addPoint(state.time, getVoltage(state.time));\r\n\r\n            if (state.time >= 5 * state.tau) {\r\n                state.isRunning = false; elements.btnStart.textContent = 'Iniciar'; elements.btnStart.disabled = false;\r\n                drawCircuit();\r\n            }\r\n            updateDisplays();\r\n            if (state.isRunning) { drawCircuit(); updateGraphs(); requestAnimationFrame(simulate); }\r\n        }\r\n\r\n        function updateDisplays() {\r\n            elements.tauValue.textContent = state.tau.toFixed(4) + ' s';\r\n            elements.qmaxValue.textContent = (state.qmax * 1000).toFixed(4) + ' mC';\r\n            elements.i0Value.textContent = (state.i0 * 1000).toFixed(4) + ' mA';\r\n        }\r\n\r\n        function updateParameters() {\r\n            state.voltage = +elements.voltageSlider.value; state.resistance = +elements.resistanceSlider.value;\r\n            state.capacitance = +elements.capacitanceSlider.value * 1e-6; state.speed = +elements.speedSlider.value;\r\n            elements.voltageDisplay.textContent = state.voltage.toFixed(1) + ' V';\r\n            elements.resistanceDisplay.textContent = state.resistance + ' \u03a9';\r\n            elements.capacitanceDisplay.textContent = (state.capacitance * 1e6).toFixed(0) + ' \u00b5F';\r\n            elements.speedDisplay.textContent = state.speed + 'x';\r\n            calculateTau(); calculateQmax(); calculateI0(); updateDisplays();\r\n            if (!state.isRunning) { initGraphs(); drawCircuit(); updateGraphs(); }\r\n        }\r\n\r\n        \/\/ ==================== EVENT LISTENERS ====================\r\n        function setupEventListeners() {\r\n            ['voltageSlider', 'resistanceSlider', 'capacitanceSlider', 'speedSlider'].forEach(id => elements[id].addEventListener('input', updateParameters));\r\n            \r\n            elements.btnStart.onclick = () => {\r\n                if (!state.isRunning) {\r\n                    state.isRunning = true; state.isPaused = false; state.lastTimestamp = 0;\r\n                    elements.btnStart.textContent = 'Corriendo...'; elements.btnStart.disabled = true;\r\n                    requestAnimationFrame(simulate);\r\n                }\r\n            };\r\n            elements.btnPause.onclick = () => {\r\n                if (state.isRunning) {\r\n                    state.isPaused = !state.isPaused;\r\n                    if (!state.isPaused) { state.lastTimestamp = 0; requestAnimationFrame(simulate); }\r\n                    elements.btnPause.textContent = state.isPaused ? 'Continuar' : 'Pausar';\r\n                }\r\n            };\r\n            elements.btnReset.onclick = () => {\r\n                state.isRunning = false; state.isPaused = false; state.time = 0; state.dataPoints = [];\r\n                elements.btnStart.textContent = 'Iniciar'; elements.btnStart.disabled = false; elements.btnPause.textContent = 'Pausar';\r\n                initGraphs(); drawCircuit(); updateGraphs();\r\n            };\r\n\r\n            elements.modeExperimental.onchange = (e) => {\r\n                state.experimentalMode = e.target.checked;\r\n                \r\n                if (state.experimentalMode) {\r\n                    \/\/ 1. Intentamos cambiar el texto\r\n                    elements.modeBadge.textContent = 'Experimental';\r\n                    \r\n                    \/\/ 2. Inyectamos CSS din\u00e1mico de alta especificidad\r\n                    let styleEl = document.getElementById('fix-badge-css');\r\n                    if (!styleEl) {\r\n                        styleEl = document.createElement('style');\r\n                        styleEl.id = 'fix-badge-css';\r\n                        document.head.appendChild(styleEl);\r\n                    }\r\n                    styleEl.innerHTML = '#modeBadge.mode-badge { color: #ffffff !important; background-color: #f59e0b !important; }';\r\n\r\n                    \/\/ 3. FUERZA BRUTA: Verificamos cada 100ms si el color es correcto\r\n                    \/\/ Esto gana cualquier guerra contra WordPress\r\n                    clearInterval(colorEnforcer); \/\/ Limpiamos si ya exist\u00eda\r\n                    colorEnforcer = setInterval(() => {\r\n                        elements.modeBadge.style.color = '#ffffff';\r\n                        elements.modeBadge.style.backgroundColor = '#f59e0b';\r\n                    }, 100);\r\n\r\n                } else {\r\n                    \/\/ Detenemos el forzador\r\n                    clearInterval(colorEnforcer);\r\n                    \r\n                    \/\/ Removemos CSS inyectado\r\n                    const styleEl = document.getElementById('fix-badge-css');\r\n                    if(styleEl) styleEl.remove();\r\n                    \r\n                    \/\/ Restauramos valores\r\n                    elements.modeBadge.textContent = 'Normal';\r\n                    elements.modeBadge.style.color = ''; \r\n                    elements.modeBadge.style.backgroundColor = '';\r\n                }\r\n\r\n                elements.experimentPanel.classList.toggle('hidden', !state.experimentalMode);\r\n                if (state.experimentalMode) {\r\n                    state.resistance = Math.round((Math.random() * 9900 + 100) \/ 100) * 100;\r\n                    elements.resistanceSlider.value = state.resistance; elements.resistanceDisplay.textContent = '? \u03a9';\r\n                    updateParameters();\r\n                } else elements.resistanceDisplay.textContent = state.resistance + ' \u03a9';\r\n                drawCircuit();\r\n            };\r\n\r\n            elements.btnVerify.onclick = () => {\r\n                const calcR = +elements.inputRCalculated.value;\r\n                if (isNaN(calcR) || calcR <= 0) return alert('Valor inv\u00e1lido');\r\n                const err = Math.abs((calcR - state.resistance) \/ state.resistance * 100);\r\n                elements.realResistance.textContent = state.resistance + ' \u03a9';\r\n                elements.errorPercent.textContent = err.toFixed(2) + ' %';\r\n                elements.feedbackBox.style.display = 'block';\r\n                elements.feedbackBox.className = 'feedback ' + (err < 5 ? 'success' : err < 15 ? 'warning' : 'error');\r\n                elements.feedbackBox.textContent = err < 5 ? '\u00a1Excelente!' : err < 15 ? 'Buen trabajo' : 'Error significativo';\r\n            };\r\n\r\n            window.onresize = () => { \r\n                drawCircuit(); \r\n                chargeGraph.setupCanvas(); currentGraph.setupCanvas(); voltageGraph.setupCanvas(); \r\n                updateGraphs(); \r\n            };\r\n        }\r\n\r\n        \/\/ ==================== INITIALIZATION ====================\r\n        function init() { calculateTau(); calculateQmax(); calculateI0(); updateDisplays(); initGraphs(); drawCircuit(); setupEventListeners(); }\r\n        init();\r\n    <\/script>\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>Laboratorio Virtual &#8211; Circuito RC Laboratorio Virtual &#8211; Circuito RC &nbsp;&nbsp;Simulaciones Interactivas FICA &#8211; UNSL Modo Normal Normal Circuito y Valores Constante \u03c4 0.00 s&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-6220","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>circuito_RC - 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\/circuito_rc\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"circuito_RC - F\u00edsica 2\" \/>\n<meta property=\"og:description\" content=\"Laboratorio Virtual &#8211; Circuito RC Laboratorio Virtual &#8211; Circuito RC &nbsp;&nbsp;Simulaciones Interactivas FICA &#8211; UNSL Modo Normal Normal Circuito y Valores Constante \u03c4 0.00 s&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/circuito_rc\/\" \/>\n<meta property=\"og:site_name\" content=\"F\u00edsica 2\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-19T17:59:55+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\/circuito_rc\/\",\"url\":\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/circuito_rc\/\",\"name\":\"circuito_RC - F\u00edsica 2\",\"isPartOf\":{\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/#website\"},\"datePublished\":\"2026-03-16T00:44:54+00:00\",\"dateModified\":\"2026-03-19T17:59:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/circuito_rc\/#breadcrumb\"},\"inLanguage\":\"es-AR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/circuito_rc\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/circuito_rc\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Inicio\",\"item\":\"https:\/\/fisica2.fica.unsl.edu.ar\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"circuito_RC\"}]},{\"@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":"circuito_RC - 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\/circuito_rc\/","og_locale":"es_ES","og_type":"article","og_title":"circuito_RC - F\u00edsica 2","og_description":"Laboratorio Virtual &#8211; Circuito RC Laboratorio Virtual &#8211; Circuito RC &nbsp;&nbsp;Simulaciones Interactivas FICA &#8211; UNSL Modo Normal Normal Circuito y Valores Constante \u03c4 0.00 s&hellip;","og_url":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/circuito_rc\/","og_site_name":"F\u00edsica 2","article_modified_time":"2026-03-19T17:59:55+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\/circuito_rc\/","url":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/circuito_rc\/","name":"circuito_RC - F\u00edsica 2","isPartOf":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/#website"},"datePublished":"2026-03-16T00:44:54+00:00","dateModified":"2026-03-19T17:59:55+00:00","breadcrumb":{"@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/circuito_rc\/#breadcrumb"},"inLanguage":"es-AR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/circuito_rc\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/circuito_rc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Inicio","item":"https:\/\/fisica2.fica.unsl.edu.ar\/"},{"@type":"ListItem","position":2,"name":"circuito_RC"}]},{"@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\/6220","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=6220"}],"version-history":[{"count":55,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/6220\/revisions"}],"predecessor-version":[{"id":6709,"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/pages\/6220\/revisions\/6709"}],"wp:attachment":[{"href":"https:\/\/fisica2.fica.unsl.edu.ar\/index.php\/wp-json\/wp\/v2\/media?parent=6220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}