<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DC Archives &#8226; HUE CAT INGENIERÍA ESPAÑA</title>
	<atom:link href="https://huecat.es/tag/dc/feed/" rel="self" type="application/rss+xml" />
	<link>https://huecat.es/tag/dc/</link>
	<description>Diseño, Programación y Electrónica</description>
	<lastBuildDate>Fri, 30 Jan 2026 02:28:03 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://huecat.es/wp-content/uploads/2020/10/cropped-huecat-logo-1-1-512-32x32.png</url>
	<title>DC Archives &#8226; HUE CAT INGENIERÍA ESPAÑA</title>
	<link>https://huecat.es/tag/dc/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Manual de Ingeniería: Buck Converter PID</title>
		<link>https://huecat.es/manual-de-ingenieria-buck-converter-pid/</link>
					<comments>https://huecat.es/manual-de-ingenieria-buck-converter-pid/#respond</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Wed, 21 Jan 2026 15:15:36 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Arduino IDE]]></category>
		<category><![CDATA[Buck]]></category>
		<category><![CDATA[DC]]></category>
		<category><![CDATA[IDE]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7633</guid>

					<description><![CDATA[<p>Vin12.0 V Vout5.0 V Inductor100 µH Switching50 kHz Documentación técnica para la implementación de un convertidor DC-DC Buck (Step-down) utilizando control digital PID en lazo cerrado. El sistema migra de una simulación HIL (Hardware-in-the-Loop) en MATLAB a una ejecución standalone en microcontrolador AVR (Arduino). 1. Lista de Materiales, Bill of Materials (BOM) Componente Especificación Crítica [&#8230;]</p>
<p>The post <a href="https://huecat.es/manual-de-ingenieria-buck-converter-pid/">Manual de Ingeniería: Buck Converter PID</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-medium is-resized is-style-default"><img fetchpriority="high" decoding="async" width="300" height="294" src="https://huecat.es/wp-content/uploads/2026/01/image-300x294.png" alt="" class="wp-image-7721" style="aspect-ratio:1.020501138952164;width:221px;height:auto" srcset="https://huecat.es/wp-content/uploads/2026/01/image-300x294.png 300w, https://huecat.es/wp-content/uploads/2026/01/image-768x753.png 768w, https://huecat.es/wp-content/uploads/2026/01/image-600x588.png 600w, https://huecat.es/wp-content/uploads/2026/01/image.png 946w" sizes="(max-width: 300px) 100vw, 300px" /></figure>


<p><style>
    .tech-doc-wrapper {<br />
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;<br />
        background-color: #121212;<br />
        color: #e0e0e0;<br />
        padding: 30px;<br />
        border-radius: 8px;<br />
        line-height: 1.6;<br />
        max-width: 100%;<br />
    }</p>
<p>    .tech-doc-wrapper h2 {<br />
        color: #ffffff;<br />
        border-bottom: 2px solid #3b82f6;<br />
        padding-bottom: 10px;<br />
        margin-top: 40px;<br />
        font-size: 1.5rem;<br />
        text-transform: uppercase;<br />
        letter-spacing: 0.05em;<br />
    }</p>
<p>    .tech-doc-wrapper h3 {<br />
        color: #60a5fa;<br />
        margin-top: 25px;<br />
        font-size: 1.1rem;<br />
    }</p>
<p>    /* Grid de Especificaciones */<br />
    .specs-grid {<br />
        display: grid;<br />
        grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));<br />
        gap: 15px;<br />
        margin-bottom: 30px;<br />
    }</p>
<p>    .spec-card {<br />
        background: #1e1e1e;<br />
        padding: 15px;<br />
        border: 1px solid #333;<br />
        border-radius: 4px;<br />
        text-align: center;<br />
    }</p>
<p>    .spec-card strong {<br />
        display: block;<br />
        color: #a1a1aa;<br />
        font-size: 0.8rem;<br />
        margin-bottom: 5px;<br />
    }</p>
<p>    .spec-card span {<br />
        font-family: "Consolas", monospace;<br />
        font-size: 1.2rem;<br />
        color: #fff;<br />
    }</p>
<p>    /* Tablas */<br />
    .tech-table {<br />
        width: 100%;<br />
        border-collapse: collapse;<br />
        margin: 20px 0;<br />
        background: #1e1e1e;<br />
        font-size: 0.9rem;<br />
    }</p>
<p>    .tech-table th, .tech-table td {<br />
        padding: 12px;<br />
        border-bottom: 1px solid #333;<br />
        text-align: left;<br />
    }</p>
<p>    .tech-table th {<br />
        color: #60a5fa;<br />
        text-transform: uppercase;<br />
        font-size: 0.8rem;<br />
    }</p>
<p>    /* Comparativa */<br />
    .diff-box {<br />
        display: flex;<br />
        flex-wrap: wrap;<br />
        gap: 20px;<br />
        margin-top: 20px;<br />
    }<br />
    .diff-col {<br />
        flex: 1;<br />
        min-width: 280px;<br />
        background: #18181b;<br />
        padding: 20px;<br />
        border-left: 4px solid #333;<br />
    }<br />
    .diff-col.sim { border-color: #eab308; } /* Amarillo */<br />
    .diff-col.real { border-color: #22c55e; } /* Verde */</p>
<p>    /* Bloques de Código */<br />
    .code-block {<br />
        background: #0f0f10; /* Fondo más oscuro para código */<br />
        padding: 20px;<br />
        border-radius: 6px;<br />
        overflow-x: auto;<br />
        border: 1px solid #333;<br />
        font-family: "Consolas", "Monaco", monospace;<br />
        font-size: 0.85rem;<br />
        color: #d4d4d4;<br />
    }</p>
<p>    .code-keyword { color: #c586c0; }<br />
    .code-type { color: #4ec9b0; }<br />
    .code-comment { color: #6a9955; }<br />
    .code-func { color: #dcdcaa; }</p>
<p>    /* Alerta Técnica */<br />
    .tech-alert {<br />
        background: rgba(239, 68, 68, 0.1);<br />
        border: 1px solid #ef4444;<br />
        color: #fca5a5;<br />
        padding: 15px;<br />
        margin: 20px 0;<br />
        border-radius: 4px;<br />
        font-size: 0.9rem;<br />
    }<br />
</style>
</p>
<div class="tech-doc-wrapper">
<div class="specs-grid">
<div class="spec-card"><strong>Vin</strong>12.0 V</div>
<div class="spec-card"><strong>Vout</strong>5.0 V</div>
<div class="spec-card"><strong>Inductor</strong>100 µH</div>
<div class="spec-card"><strong>Switching</strong>50 kHz</div>
</div>
<p>Documentación técnica para la implementación de un convertidor DC-DC Buck (Step-down) utilizando control digital PID en lazo cerrado. El sistema migra de una simulación HIL (Hardware-in-the-Loop) en MATLAB a una ejecución <em>standalone</em> en microcontrolador AVR (Arduino).</p>
<h2>1. Lista de Materiales, Bill of Materials (BOM)</h2>
<table class="tech-table">
<thead>
<tr>
<th>Componente</th>
<th>Especificación Crítica</th>
<th>Función</th>
</tr>
</thead>
<tbody>
<tr>
<td>MCU</td>
<td>ATmega328p (Nano/Uno)</td>
<td>Controlador Digital (PID Discreto)</td>
</tr>
<tr>
<td>MOSFET</td>
<td>IRFZ44N / IRF540</td>
<td>Conmutación de Potencia</td>
</tr>
<tr>
<td>Gate Driver</td>
<td><strong>IR2110 / TC4420</strong></td>
<td>Interfaz TTL 5V a Gate 12V. <em>Esencial para f &gt; 20kHz.</em></td>
</tr>
<tr>
<td>Inductor</td>
<td>100 µH (Núcleo Ferrita)</td>
<td><strong>Isat &gt; 2.5A</strong>. Evitar bobinas de señal SMD.</td>
</tr>
<tr>
<td>Capacitor</td>
<td>33 µF (Low ESR)</td>
<td>Filtrado de rizado de salida.</td>
</tr>
</tbody>
</table>
<div class="tech-alert"><strong>⚠️ Nota de Diseño &#8211; Feedback:</strong><br />El algoritmo PID utiliza una referencia interna de <strong>2.5V</strong>. Para obtener 5V en la salida, es obligatorio implementar un divisor de tensión 2:1 (Resistencias 10kΩ/10kΩ) en el pin de lectura (A0).</div>
<h2>2. Migración: Simulación vs. Hardware Real</h2>
<p>El código base original estaba diseñado como «esclavo» de Simulink. Para el despliegue físico, se modificó la arquitectura de software para eliminar la dependencia del puerto Serial y activar la lectura ADC directa.</p>
<div class="diff-box">
<div class="diff-col sim">
<h3>Versión A: Simulación (HIL)</h3>
<p>El Arduino espera datos de MATLAB para actuar. No funciona solo.</p>
<div class="code-block">if (Serial.available()) {<br />DVout = recepcion(); <span class="code-comment">// Lee valor virtual</span><br />u = PID(DVout);<br />Serial.write(u); <span class="code-comment">// Devuelve dato a PC</span><br />}</div>
</div>
<div class="diff-col real">
<h3>Versión B: Standalone (Real)</h3>
<p>Operación autónoma con lectura de sensores y Anti-Windup activo.</p>
<div class="code-block"><span class="code-comment">// Lee Hardware real</span><br />y = analogRead(A0) * (5.0/1023.0);<br />u = PID(y);<br /><span class="code-comment">// Actúa sobre el MOSFET</span><br />pwmWrite(9, u * 255);</div>
</div>
</div>
<h2>3. Firmware Implementado (C++)</h2>
<p>Código fuente optimizado para despliegue en campo. Se corrigió el error de saturación integral (Windup) que causaba inestabilidad en la versión de simulación.</p>
<div class="code-block">
<pre><span class="code-comment">// Firmware Control Buck PID - v1.0 Release</span>
<span class="code-keyword">#include</span> &lt;pwm.h&gt;

<span class="code-keyword">const</span> <span class="code-type">int</span> PIN_SENSOR = A0;  <span class="code-comment">// Entrada Divisor (Vout/2)</span>
<span class="code-keyword">const</span> <span class="code-type">int</span> PIN_PWM = 9;      <span class="code-comment">// Salida Gate Driver</span>

<span class="code-comment">// Constantes PID (L=100uH, C=33uF)</span>
<span class="code-type">float</span> Kp = 0.272253;
<span class="code-type">float</span> Ti = 0.0015285;
<span class="code-type">float</span> Ts = 20e-6;           <span class="code-comment">// 50kHz Loop</span>

<span class="code-comment">// Variables PID</span>
<span class="code-type">float</span> u = 0.0, u_1 = 0.0;
<span class="code-type">float</span> e = 0.0, e_1 = 0.0;
<span class="code-type">float</span> q0, q1;
<span class="code-type">float</span> Vref = 2.5;           <span class="code-comment">// Target (2.5V leídos = 5.0V reales)</span>

<span class="code-keyword">void</span> <span class="code-func">setup</span>() {
    <span class="code-comment">// Coeficientes Tustin</span>
    q0 = Kp * (1 + (Ts / (2 * Ti)));
    q1 = -Kp * (1 - (Ts / (2 * Ti)));
    
    <span class="code-comment">// Configurar PWM Asíncrono</span>
    InitTimersSafe();
    SetPinFrequencySafe(PIN_PWM, 50000); 
    pinMode(PIN_PWM, OUTPUT);
}

<span class="code-keyword">void</span> <span class="code-func">loop</span>() {
    <span class="code-comment">// 1. Lectura ADC y Normalización</span>
    <span class="code-type">float</span> y_medida = analogRead(PIN_SENSOR) * (5.0 / 1023.0);
    
    <span class="code-comment">// 2. PID Discreto</span>
    e = Vref - y_medida;
    u = u_1 + q0 * e + q1 * e_1;
    
    <span class="code-comment">// 3. Saturación y Anti-Windup (Crítico)</span>
    <span class="code-keyword">if</span> (u &gt; 0.95) u = 0.95; 
    <span class="code-keyword">if</span> (u &lt; 0.00) u = 0.00;
    
    <span class="code-comment">// 4. Actualización Estados</span>
    u_1 = u;
    e_1 = e;
    
    <span class="code-comment">// 5. Actuación</span>
    pwmWrite(PIN_PWM, (<span class="code-type">int</span>)(u * 255));
    
    <span class="code-comment">// Estabilización de Ciclo</span>
    delayMicroseconds(10);
}
</pre>
</div>
</div>

<p>The post <a href="https://huecat.es/manual-de-ingenieria-buck-converter-pid/">Manual de Ingeniería: Buck Converter PID</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/manual-de-ingenieria-buck-converter-pid/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
