<?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>Arduino Archives &#8226; HUE CAT INGENIERÍA ESPAÑA</title>
	<atom:link href="https://huecat.es/tag/arduino/feed/" rel="self" type="application/rss+xml" />
	<link>https://huecat.es/tag/arduino/</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>Arduino Archives &#8226; HUE CAT INGENIERÍA ESPAÑA</title>
	<link>https://huecat.es/tag/arduino/</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>
		<item>
		<title>Electrónica para sistema de Sanitización controlado por ESP8266 y base de datos MySQL para gestión de consumibles</title>
		<link>https://huecat.es/electronica-para-sistema-de-sanitizacion-controlado-por-esp8266-y-base-de-datos-mysql-para-gestion-de-consumibles/</link>
					<comments>https://huecat.es/electronica-para-sistema-de-sanitizacion-controlado-por-esp8266-y-base-de-datos-mysql-para-gestion-de-consumibles/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Mon, 19 Jan 2026 12:21:18 +0000</pubDate>
				<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Sensores]]></category>
		<category><![CDATA[STEM]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Trabajos Realizados]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7574</guid>

					<description><![CDATA[<p>La higiene industrial ya no puede depender del error humano. En un entorno post-pandémico, la sanitización efectiva no es un lujo, es una exigencia operativa. Sin embargo, los sistemas tradicionales de desinfección (UV y químicos) presentan dos grandes riesgos: la exposición accidental de las personas a agentes nocivos y la falta de control sobre los [&#8230;]</p>
<p>The post <a href="https://huecat.es/electronica-para-sistema-de-sanitizacion-controlado-por-esp8266-y-base-de-datos-mysql-para-gestion-de-consumibles/">Electrónica para sistema de Sanitización controlado por ESP8266 y base de datos MySQL para gestión de consumibles</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong>La higiene industrial ya no puede depender del error humano.</strong> En un entorno post-pandémico, la sanitización efectiva no es un lujo, es una exigencia operativa. Sin embargo, los sistemas tradicionales de desinfección (UV y químicos) presentan dos grandes riesgos: la exposición accidental de las personas a agentes nocivos y la falta de control sobre los consumibles. Este proyecto nace para resolver esa ecuación mediante IoT: creamos un sistema de sanitización autónomo que es lo suficientemente inteligente para detenerse ante la presencia humana y lo suficientemente comunicativo para gestionar su propio mantenimiento, eliminando las «zonas ciegas» de la limpieza industrial.</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-scaled.jpg"><img decoding="async" width="1024" height="531" src="https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-1024x531.jpg" alt="" class="wp-image-7619" srcset="https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-1024x531.jpg 1024w, https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-300x156.jpg 300w, https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-768x398.jpg 768w, https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-1536x796.jpg 1536w, https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-2048x1062.jpg 2048w, https://huecat.es/wp-content/uploads/2026/01/microcontrolador-stm-32-uno-placa-ingenieria-espana-taller-600x311.jpg 600w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h3 class="wp-block-heading">Sistema de luminarias UV (sanitización por Ultravioletas) y sistema automatizado para pulverización de producto ambientador para la Industria, controlado por IoT</h3>



<p><br>Detalles: Conexión a base de datos MySQL, sensor de movimiento, sensor de nivel de líquido por ultrasonido (SR-04), conexión por WiFi, LCD1602</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql.jpg"><img decoding="async" width="1024" height="659" src="https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-1024x659.jpg" alt="" class="wp-image-7525" srcset="https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-1024x659.jpg 1024w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-300x193.jpg 300w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-768x494.jpg 768w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-1536x988.jpg 1536w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-2048x1317.jpg 2048w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-700x450.jpg 700w, https://huecat.es/wp-content/uploads/2022/09/sistema_iot_mysql-600x386.jpg 600w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>
<p>The post <a href="https://huecat.es/electronica-para-sistema-de-sanitizacion-controlado-por-esp8266-y-base-de-datos-mysql-para-gestion-de-consumibles/">Electrónica para sistema de Sanitización controlado por ESP8266 y base de datos MySQL para gestión de consumibles</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/electronica-para-sistema-de-sanitizacion-controlado-por-esp8266-y-base-de-datos-mysql-para-gestion-de-consumibles/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Transmisión Automática CVT para Bicicletas: Control PID y Sensor PAS</title>
		<link>https://huecat.es/bicicleta-que-hace-los-cambios-automaticamente-con-sensor-pas/</link>
					<comments>https://huecat.es/bicicleta-que-hace-los-cambios-automaticamente-con-sensor-pas/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Fri, 26 May 2023 14:04:00 +0000</pubDate>
				<category><![CDATA[Ingeniería mecatrónica]]></category>
		<category><![CDATA[STEM]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=6899</guid>

					<description><![CDATA[<p>Requerimiento: Bicicleta que hace los cambios automáticamente La automatización en la movilidad personal no se limita a los motores eléctricos; la gestión eficiente de la energía mecánica es igual de crítica. Este proyecto aborda la problemática del cambio de marchas manual, que a menudo resulta en una cadencia ineficiente y fatiga prematura del ciclista. El [&#8230;]</p>
<p>The post <a href="https://huecat.es/bicicleta-que-hace-los-cambios-automaticamente-con-sensor-pas/">Transmisión Automática CVT para Bicicletas: Control PID y Sensor PAS</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Requerimiento: Bicicleta que hace los cambios automáticamente</p>



<p>La automatización en la movilidad personal no se limita a los motores eléctricos; la gestión eficiente de la energía mecánica es igual de crítica. Este proyecto aborda la problemática del cambio de marchas manual, que a menudo resulta en una cadencia ineficiente y fatiga prematura del ciclista.</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/05/imagen-1.png"><img decoding="async" width="1024" height="582" src="https://huecat.es/wp-content/uploads/2023/05/imagen-1-1024x582.png" alt="" class="wp-image-7594" srcset="https://huecat.es/wp-content/uploads/2023/05/imagen-1-1024x582.png 1024w, https://huecat.es/wp-content/uploads/2023/05/imagen-1-300x171.png 300w, https://huecat.es/wp-content/uploads/2023/05/imagen-1-768x437.png 768w, https://huecat.es/wp-content/uploads/2023/05/imagen-1-1536x873.png 1536w, https://huecat.es/wp-content/uploads/2023/05/imagen-1-2048x1165.png 2048w, https://huecat.es/wp-content/uploads/2023/05/imagen-1-600x341.png 600w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>El objetivo fue diseñar un sistema mecatrónico capaz de leer la cadencia de pedaleo en tiempo real y ajustar la relación de transmisión automáticamente. El sistema busca mantener al ciclista en su zona óptima de RPM (Revoluciones Por Minuto), actuando como una caja de cambios inteligente que reacciona antes de que el usuario pierda inercia. No es solo comodidad; es optimización de par y eficiencia energética aplicada a un vehículo de tracción humana.</p>



<p><small>📍 Barcelona</small></p>



<figure class="wp-block-video"><video height="480" style="aspect-ratio: 848 / 480;" width="848" controls src="https://huecat.es/wp-content/uploads/2023/10/mecatronica-ingenieria-arduino-microcontrolador-esp8266.mp4"></video></figure>



<p>Trabajo realizado por Alumno del <a href="https://huecat.es/programa-de-tutorias-hue-cat-para-futuros-ingenieros-y-tecnologos/">Programa de Tutorías HUE CAT para Futuros Ingenieros y Tecnólogos</a></p>



<p><strong>Incluye Sensor PAS, Placa Arduino Uno, Módulo de LCD OLED</strong></p>



<p>El núcleo del sistema se basa en una placa <strong>Arduino Uno</strong> que procesa las señales de un sensor de asistencia al pedaleo (<strong>PAS</strong>). A diferencia de los sistemas comerciales que solo detectan movimiento, aquí se implementó un algoritmo que calcula la frecuencia de los pulsos magnéticos para determinar la cadencia exacta.</p>



<p>La lógica de actuación sigue estos principios:</p>



<ol start="1" class="wp-block-list">
<li><strong>Lectura de Cadencia:</strong> Mediante interrupciones de hardware, se capturan los flancos de señal del sensor PAS para calcular las RPM instantáneas con latencia mínima.</li>



<li><strong>Mapeo de Marchas:</strong> Se definieron umbrales de histéresis para evitar el «baile» de la cadena (cambios constantes e innecesarios). Si la cadencia supera el umbral superior (ej. 80 RPM), el sistema activa el servomotor para endurecer la marcha. Si cae por debajo del umbral inferior (ej. 50 RPM), se reduce la marcha para liberar carga.</li>



<li><strong>Visualización:</strong> Un módulo <strong>OLED</strong> comunica al usuario el estado del sistema: marcha actual, RPM y modo de operación.</li>
</ol>



<figure class="wp-block-image size-full"><a href="https://huecat.es/wp-content/uploads/2023/05/imagen.png"><img decoding="async" width="1024" height="559" src="https://huecat.es/wp-content/uploads/2023/05/imagen.png" alt="" class="wp-image-7590" srcset="https://huecat.es/wp-content/uploads/2023/05/imagen.png 1024w, https://huecat.es/wp-content/uploads/2023/05/imagen-300x164.png 300w, https://huecat.es/wp-content/uploads/2023/05/imagen-768x419.png 768w, https://huecat.es/wp-content/uploads/2023/05/imagen-600x328.png 600w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Este desarrollo demuestra cómo componentes estándar, gestionados por un código eficiente, pueden replicar sistemas de transmisión complejos.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
#include &lt;Servo.h&gt;
#include &lt;Wire.h&gt;
#include &lt;Adafruit_SSD1306.h&gt;

// Configuración de Hardware
const int PIN_SENSOR_PAS = 2; // Usamos interrupción 0
const int PIN_SERVO = 9;
Servo desviador;

// Variables de lógica
volatile unsigned long ultimoPulso = 0;
unsigned long rpm = 0;
unsigned long tiempoUltimoCalculo = 0;
int marchaActual = 1;

// Umbrales de Cadencia (Configurables)
const int UMBRAL_SUBIR_MARCHA = 75;
const int UMBRAL_BAJAR_MARCHA = 45;

void setup() {
  Serial.begin(9600);
  desviador.attach(PIN_SERVO);
  pinMode(PIN_SENSOR_PAS, INPUT_PULLUP);
  
  // Interrupción para capturar cada imán del PAS sin detener el loop
  attachInterrupt(digitalPinToInterrupt(PIN_SENSOR_PAS), contarPedaleo, RISING);
}

void loop() {
  // 1. Calcular RPM cada 500ms para estabilidad
  if (millis() - tiempoUltimoCalculo &gt; 500) {
    calcularRPM();
    ajustarTransmision();
    tiempoUltimoCalculo = millis();
  }
  
  // Aquí el procesador está libre para actualizar OLED u otras tareas
}

void contarPedaleo() {
  // Debounce simple y registro de tiempo
  if (millis() - ultimoPulso &gt; 50) { 
    rpm = 60000 / ((millis() - ultimoPulso) * 5); // Asumiendo 5 imanes en el plato
    ultimoPulso = millis();
  }
}

void ajustarTransmision() {
  // Lógica de histéresis para evitar cambios erráticos
  if (rpm &gt; UMBRAL_SUBIR_MARCHA &amp;&amp; marchaActual &lt; 5) {
    marchaActual++;
    moverDesviador(marchaActual);
  } else if (rpm &lt; UMBRAL_BAJAR_MARCHA &amp;&amp; marchaActual &gt; 1 &amp;&amp; rpm &gt; 10) {
    // rpm &gt; 10 evita bajar marchas si la bici está quieta
    marchaActual--;
    moverDesviador(marchaActual);
  }
}

void moverDesviador(int marcha) {
  // Mapeo de ángulos calibrados para cada piñón
  int angulo;
  switch(marcha) {
    case 1: angulo = 10; break;
    case 2: angulo = 35; break;
    case 3: angulo = 60; break;
    // ... completar calibración
    default: angulo = 10;
  }
  desviador.write(angulo);
}
</pre></div><p>The post <a href="https://huecat.es/bicicleta-que-hace-los-cambios-automaticamente-con-sensor-pas/">Transmisión Automática CVT para Bicicletas: Control PID y Sensor PAS</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/bicicleta-que-hace-los-cambios-automaticamente-con-sensor-pas/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		<enclosure url="https://huecat.es/wp-content/uploads/2023/10/mecatronica-ingenieria-arduino-microcontrolador-esp8266.mp4" length="17434042" type="video/mp4" />

			</item>
		<item>
		<title>El transistor MOSFET IRLB3034</title>
		<link>https://huecat.es/el-transistor-mosfet-irlb3034/</link>
					<comments>https://huecat.es/el-transistor-mosfet-irlb3034/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Thu, 24 Jun 2021 22:32:00 +0000</pubDate>
				<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[transistor]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=6623</guid>

					<description><![CDATA[<p>El transistor MOSFET IRLB3034 es un componente de potencia ampliamente utilizado en aplicaciones electrónicas donde se requiere controlar cargas de alta potencia con una eficiencia y confiabilidad superiores. Con características eléctricas impresionantes y una amplia gama de aplicaciones, el IRLB3034 ha ganado popularidad entre los diseñadores y los entusiastas de la electrónica. En este artículo, [&#8230;]</p>
<p>The post <a href="https://huecat.es/el-transistor-mosfet-irlb3034/">El transistor MOSFET IRLB3034</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>El transistor MOSFET IRLB3034 es un componente de potencia ampliamente utilizado en aplicaciones electrónicas donde se requiere controlar cargas de alta potencia con una eficiencia y confiabilidad superiores. Con características eléctricas impresionantes y una amplia gama de aplicaciones, el IRLB3034 ha ganado popularidad entre los diseñadores y los entusiastas de la electrónica. En este artículo, exploraremos las características clave del IRLB3034 y sus aplicaciones más comunes.</p>



<p></p>



<h3 class="wp-block-heading">Características del IRLB3034:</h3>



<p> El IRLB3034 es un transistor de efecto de campo de metal-óxido-semiconductor (MOSFET) de canal N. Una de sus principales ventajas es su baja resistencia de encendido (Rds(on)), que permite un paso eficiente de la corriente cuando está activado. Esto se traduce en una menor disipación de potencia y una mayor eficiencia en comparación con otros dispositivos de potencia.</p>



<p>Otra característica notable del IRLB3034 es su alta tensión de drenaje a fuente (Vds), que puede alcanzar hasta 40V, lo que lo hace adecuado para aplicaciones que requieren un manejo de voltajes más altos. Además, el IRLB3034 puede manejar corrientes de hasta 195 amperios, lo que lo convierte en una opción robusta para aplicaciones de alta potencia.</p>



<p>Aplicaciones del IRLB3034:</p>



<ol class="wp-block-list">
<li>Control de motores: El IRLB3034 se utiliza comúnmente en aplicaciones de control de motores, como controladores de velocidad de motor, control de servomotores y sistemas de tracción eléctrica.</li>



<li>Fuentes de alimentación conmutadas: Debido a su baja resistencia de encendido y alta eficiencia, el IRLB3034 es una opción popular en el diseño de fuentes de alimentación conmutadas, donde se requiere un control preciso y una alta eficiencia energética.</li>



<li>Iluminación LED: El IRLB3034 se utiliza en circuitos de control de iluminación LED, permitiendo el ajuste de brillo y la conmutación rápida de tiras de LED, paneles o lámparas.</li>



<li>Electrónica automotriz: Gracias a su capacidad para manejar altas corrientes y tensiones, el IRLB3034 es utilizado en aplicaciones automotrices, como sistemas de control de luces, controladores de motores y sistemas de gestión de energía.</li>
</ol>



<p>Consideraciones de diseño: Al utilizar el IRLB3034 en un diseño, es esencial tener en cuenta ciertos aspectos para garantizar un funcionamiento óptimo y seguro. Algunas consideraciones importantes incluyen:</p>



<ol class="wp-block-list">
<li>Disipación de calor: Dado que el IRLB3034 puede manejar altas corrientes, es fundamental proporcionar una adecuada disipación de calor mediante el uso de disipadores de calor o sistemas de enfriamiento activo para evitar el sobrecalentamiento.</li>



<li>Protección de diodos de recuperación rápida: Para proteger el transistor de voltajes inversos y picos de tensión, se recomienda utilizar diodos de recuperación rápida (por ejemplo, diodos Schottky) en paralelo con la carga.</li>



<li>Control de puerta: Para garantizar un adecuado encendido/apagado del transistor, se debe aplicar una tensión de compuerta (Vgs) adecuada y asegurar que la señal de control tenga una impedancia baja.</li>
</ol>



<p></p>



<p>El siguiente código fue hecho para probar una Tira de LED de alta potencia (aún sin disipador) por lo que se mantiene en valores PWM bajos.</p>



<p></p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2021/06/IRLB.jpg"><img decoding="async" width="1024" height="716" src="https://huecat.es/wp-content/uploads/2021/06/IRLB-1024x716.jpg" alt="" class="wp-image-6638" srcset="https://huecat.es/wp-content/uploads/2021/06/IRLB-1024x716.jpg 1024w, https://huecat.es/wp-content/uploads/2021/06/IRLB-300x210.jpg 300w, https://huecat.es/wp-content/uploads/2021/06/IRLB-768x537.jpg 768w, https://huecat.es/wp-content/uploads/2021/06/IRLB.jpg 1285w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
/*
  Prueba para Usar MOSFET IRF520como interruptor digital con Arduino IDE
*/


int led = D0;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 4;    // how many points to fade the LED by
int maxFade = 25;

// the setup routine runs once when you press reset:
void setup() {
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
  Serial.begin(115200);
}

// the loop routine runs over and over again forever:
void loop() {
  // set the brightness of pin 9:
  analogWrite(led, brightness);

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness &lt;= 0 || brightness &gt;= maxFade) {
    fadeAmount = -fadeAmount;
    if (fadeAmount&gt;0) delay (5000);
  }
  Serial.print(&quot;brightness: &quot;);
  Serial.println(brightness);
  delay(30);
}
</pre></div><p>The post <a href="https://huecat.es/el-transistor-mosfet-irlb3034/">El transistor MOSFET IRLB3034</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/el-transistor-mosfet-irlb3034/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>¿Cómo funciona el wifiManager? para ESP32/ESP8266</title>
		<link>https://huecat.es/como-funciona-el-wifimanager-para-esp32-esp8266/</link>
					<comments>https://huecat.es/como-funciona-el-wifimanager-para-esp32-esp8266/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Fri, 23 Apr 2021 14:29:00 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[ESP32]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Sistemas Embebidos]]></category>
		<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=6611</guid>

					<description><![CDATA[<p>La librería WiFiManager simplifica el proceso de configuración y gestión de conexiones WiFi en los módulos ESP32 y ESP8266. Proporciona una forma fácil de configurar y almacenar las credenciales de red WiFi, permitiendo que los dispositivos se conecten a las redes de manera autónoma y se recuperen de forma automática en caso de desconexiones. El [&#8230;]</p>
<p>The post <a href="https://huecat.es/como-funciona-el-wifimanager-para-esp32-esp8266/">¿Cómo funciona el wifiManager? para ESP32/ESP8266</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>La librería WiFiManager simplifica el proceso de configuración y gestión de conexiones WiFi en los módulos ESP32 y ESP8266. Proporciona una forma fácil de configurar y almacenar las credenciales de red WiFi, permitiendo que los dispositivos se conecten a las redes de manera autónoma y se recuperen de forma automática en caso de desconexiones.</p>



<figure class="wp-block-image size-full"><a href="https://huecat.es/wp-content/uploads/2023/06/ESP32-ESP8266-wi-fi-manager-web-server-how-it-works.webp"><img decoding="async" width="735" height="827" src="https://huecat.es/wp-content/uploads/2023/06/ESP32-ESP8266-wi-fi-manager-web-server-how-it-works.webp" alt="" class="wp-image-6612" srcset="https://huecat.es/wp-content/uploads/2023/06/ESP32-ESP8266-wi-fi-manager-web-server-how-it-works.webp 735w, https://huecat.es/wp-content/uploads/2023/06/ESP32-ESP8266-wi-fi-manager-web-server-how-it-works-267x300.webp 267w" sizes="(max-width: 735px) 100vw, 735px" /></a></figure>



<p>El «WiFiManager» es una biblioteca diseñada para facilitar la configuración y administración del Wi-Fi en dispositivos IoT basados en los microcontroladores ESP32 y ESP8266. Esta biblioteca ofrece una forma conveniente de crear un portal de configuración basado en la web, lo que permite a los usuarios ingresar las credenciales de Wi-Fi sin necesidad de cargar un nuevo código en el dispositivo.</p>



<p>El proceso de funcionamiento del WiFiManager se puede describir en los siguientes pasos:</p>



<ol class="wp-block-list">
<li>Inclusión de la biblioteca: En primer lugar, es necesario incluir la biblioteca WiFiManager en el proyecto. Esto se puede realizar descargando e instalando la biblioteca desde el administrador de bibliotecas de Arduino IDE o mediante el uso de un gestor de paquetes como PlatformIO.</li>



<li>Creación de una instancia del WiFiManager: Se crea una instancia del objeto WiFiManager en el código del proyecto.</li>
</ol>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
#include &lt;WiFiManager.h&gt;

WiFiManager wifiManager;

</pre></div>


<h3 class="wp-block-heading">Inicialización y conexión:</h3>



<p> Antes de utilizar el WiFiManager, es necesario inicializarlo y conectarlo al punto de acceso Wi-Fi existente. Si se encuentran credenciales de Wi-Fi almacenadas previamente, el dispositivo se conectará automáticamente. En caso contrario, se iniciará el portal de configuración.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
void setup() {
  // Inicializar el WiFiManager
  wifiManager.autoConnect(&quot;MiDispositivo&quot;);

  // Resto del código de configuración o funcionalidad
}
</pre></div>


<p>En el ejemplo anterior, «MiDispositivo» es el nombre del punto de acceso que se creará si no se encuentran credenciales de Wi-Fi almacenadas. Este nombre puede modificarse según las preferencias del usuario.</p>



<h3 class="wp-block-heading">Portal de configuración:</h3>



<p> Si no se encuentran credenciales de Wi-Fi almacenadas, el WiFiManager iniciará un portal de configuración. Esto implica que el ESP32/ESP8266 actuará como un punto de acceso Wi-Fi al cual es posible conectarse desde un dispositivo móvil o una computadora.</p>



<p></p>



<p>Al conectarse a este punto de acceso, se abrirá automáticamente una página de configuración basada en la web, donde los usuarios pueden ingresar las credenciales de su red Wi-Fi. Una vez que las credenciales se ingresen y envíen, el ESP32/ESP8266 se conectará a la red Wi-Fi especificada y recordará estas credenciales para futuros usos.</p>



<h3 class="wp-block-heading">Almacenamiento de la configuración: </h3>



<p>Después de que el WiFiManager se conecte exitosamente a la red Wi-Fi especificada, almacenará las credenciales en la memoria no volátil del dispositivo (por ejemplo, en el ESP32/ESP8266). Esto permite que las credenciales se utilicen en las próximas ejecuciones, sin necesidad de ingresarlas nuevamente cada vez que se reinicie el dispositivo.</p>
<p>The post <a href="https://huecat.es/como-funciona-el-wifimanager-para-esp32-esp8266/">¿Cómo funciona el wifiManager? para ESP32/ESP8266</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/como-funciona-el-wifimanager-para-esp32-esp8266/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Timers o Temporizadores Arduino</title>
		<link>https://huecat.es/temporizadores-arduin/</link>
					<comments>https://huecat.es/temporizadores-arduin/#respond</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Fri, 26 Feb 2021 01:18:00 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[delay]]></category>
		<category><![CDATA[millis]]></category>
		<category><![CDATA[timer]]></category>
		<category><![CDATA[timers]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=6186</guid>

					<description><![CDATA[<p>¿Qué es TIMER en Electrónica Embebida? El temporizador es una especie de interrupción. Es como un reloj simple que puede medir el intervalo de tiempo de un evento. Cada microcontrolador tiene un reloj (oscilador), digamos que en Arduino Uno es de 16Mhz. Este es el responsable de la velocidad. Cuanto mayor sea la frecuencia de [&#8230;]</p>
<p>The post <a href="https://huecat.es/temporizadores-arduin/">Timers o Temporizadores Arduino</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p></p>



<h2 class="wp-block-heading">¿Qué es TIMER en Electrónica Embebida? </h2>



<p>El temporizador es una especie de <a href="https://huecat.es/interrupciones-en-un-microcontrolador/" target="_blank" rel="noreferrer noopener">interrupción</a>. Es como un reloj simple que puede medir el intervalo de tiempo de un evento. Cada microcontrolador tiene un reloj (oscilador), digamos que en Arduino Uno es de 16Mhz. Este es el responsable de la velocidad. Cuanto mayor sea la frecuencia de reloj, mayor será la velocidad de procesamiento. Un temporizador utiliza un contador que cuenta a cierta velocidad dependiendo de la frecuencia del reloj. En Arduino Uno se necesitan 1/16000000 segundos o 62 nanosegundos para hacer un solo conteo. Lo que significa que Arduino se mueve de una instrucción a otra instrucción por cada 62 nanosegundos.</p>



<p></p>



<p>En esta página se buscan establecer nuestros bits de registro del temporizador para usar la interrupción de desbordamiento del temporizador para alternar un LED cada vez que ocurra una interrupción. </p>



<p>El valor del precargador del bit del temporizador también se puede ajustar usando botones para controlar la duración en la que ocurre la interrupción.</p>



<p></p>



<p></p>



<h2 class="wp-block-heading">Timers / Temporizadores en Arduino UNO</h2>



<p>En Arduino UNO hay tres temporizadores que se utilizan para diferentes funciones.</p>



<h3 class="wp-block-heading">Timer0 / Temporizador0: </h3>



<p>Es un temporizador de 8 bits y se utiliza en funciones de temporizador como delay(), millis().</p>



<h3 class="wp-block-heading">Timer1 / Temporizador1: </h3>



<p>Es un temporizador de 16 bits y se usa en la biblioteca de servos. </p>



<h3 class="wp-block-heading">Timer2/Temporizador2: </h3>



<p>Es un temporizador de 8 bits y se utiliza en la función tone().</p>



<p></p>



<p></p>



<h2 class="wp-block-heading">Registros de Timer de Arduino</h2>



<p>Para cambiar la configuración de los temporizadores, se utilizan registros de temporizador. </p>



<h3 class="wp-block-heading">A) TIMER1: Registros de control de temporizador / Timer (TCCRnA/B): </h3>



<p>Este registro contiene los bits de control principales del temporizador y se utiliza para controlar los preescaladores del temporizador. También permite controlar el modo de temporizador usando los bits WGM.</p>



<figure class="wp-block-table"><table><tbody><tr><td>TCCR1A</td><td>7</td><td>6</td><td>5</td><td>4</td><td>3</td><td>2</td><td>1</td><td>0</td></tr><tr><td>&nbsp;</td><td>COM1A1</td><td>COM1A0</td><td>COM1B1</td><td>COM1B0</td><td>COM1C1</td><td>COM1C0</td><td>WGM11</td><td>WGM10</td></tr></tbody></table></figure>



<figure class="wp-block-table"><table><tbody><tr><td>TCCR1B</td><td>7</td><td>6</td><td>5</td><td>4</td><td>3</td><td>2</td><td>1</td><td>0</td></tr><tr><td>&nbsp;</td><td>ICNC1</td><td>ICES1</td><td>&#8211;</td><td>WGM13</td><td>WGM12</td><td>CS12</td><td>CS11</td><td>CS10</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">Prescaler / Preescalador</h4>



<p>Los bits CS12, CS11, CS10 en TCCR1B establecen el valor del preescalador. Se utiliza un preescalador para configurar la velocidad del reloj del temporizador. Arduino Uno tiene preescaladores de 1, 8, 64, 256, 1024.</p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>CS12</strong></td><td><strong>CS11</strong></td><td><strong>CS10</strong></td><td>Uso</td></tr><tr><td>0</td><td>0</td><td>0</td><td>No Clock Timer STOP</td></tr><tr><td>0</td><td>0</td><td>1</td><td>CLCK i/o /1 No Prescaling</td></tr><tr><td>0</td><td>1</td><td>0</td><td>CLK i/o /8 (From Prescaler)</td></tr><tr><td>0</td><td>1</td><td>1</td><td>CLK i/o /64 (From Prescaler)</td></tr><tr><td>1</td><td>0</td><td>0</td><td>CLK i/o /256 (From Prescaler)</td></tr><tr><td>1</td><td>0</td><td>1</td><td>CLK i/o /1024 (From Prescaler)</td></tr><tr><td>1</td><td>1</td><td>0</td><td>External clock source on T1 Pin. Clock on falling edge &nbsp;</td></tr><tr><td>1</td><td>1</td><td>1</td><td>External Clock source on T1 pin. Clock on rising edge.</td></tr></tbody></table></figure>



<p></p>



<h3 class="wp-block-heading">B) TIMER 2: Registro de temporizador/contador (TCNTn)</h3>



<p>Este registro se utiliza para controlar el valor del contador y establecer un valor de precarga. Fórmula para el valor del precargador para el tiempo requerido en segundos: TCNTn = 65535 – (16x1010xTiempo en segundos / Valor del preescalador) Para calcular el valor del precargador para el temporizador 1 durante un tiempo de 2 segundos: </p>



<p>TCNT1&nbsp; = 65535 – (16&#215;10<sup>6</sup>x2 / 1024) = 34285</p>



<p></p>



<p></p>



<p></p>



<h2 class="wp-block-heading">Interrupciones del temporizador de Arduino</h2>



<p><br>Hay varias interrupciones de temporizador en Arduino:</p>



<p><br>a) Interrupción de desbordamiento del temporizador:</p>



<p>Cada vez que el temporizador alcanza su valor máximo, por ejemplo (16 Bit-65535), se produce la interrupción de desbordamiento del temporizador. Por lo tanto, se llama a una rutina de servicio de interrupción ISR cuando el bit de interrupción de desbordamiento del temporizador está habilitado en el TOIEx presente en el registro de máscara de interrupción del temporizador TIMSKx.</p>



<p></p>



<p>Formato de la función ISR:</p>



<pre class="wp-block-code"><code>ISR(TIMER1_COMPA_vect)
{
}</code></pre>



<h3 class="wp-block-heading">Registro de comparación de salida (OCRnA/B):</h3>



<p>Aquí, cuando se produce la interrupción de coincidencia de comparación de salida, se llama al servicio de interrupción ISR (TIMERx_COMPy_vect) y también se establecerá el bit indicador OCFxy en el registro TIFRx. Este ISR se habilita configurando el bit de habilitación en OCIExy presente en el registro TIMSKx. Donde TIMSKx es Registro de máscara de interrupción de temporizador. </p>



<p></p>



<h3 class="wp-block-heading">Captura de entrada de temporizador: </h3>



<p>A continuación, cuando se produce la interrupción de captura de entrada del temporizador, se llama al servicio de interrupción ISR (TIMERx_CAPT_vect) y también se establece el bit indicador ICFx en TIFRx (registro de indicador de interrupción del temporizador). Este ISR se habilita configurando el bit de habilitación en ICIEx presente en el registro TIMSKx.</p>



<p></p>
<p>The post <a href="https://huecat.es/temporizadores-arduin/">Timers o Temporizadores Arduino</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/temporizadores-arduin/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ESP32 / ESP8266 Escribir en una Base de datos MySQL usando PHP y Arduino IDE</title>
		<link>https://huecat.es/esp32-esp8266-insertar-datos-en-la-base-de-datos-mysql-usando-php-y-arduino-ide/</link>
					<comments>https://huecat.es/esp32-esp8266-insertar-datos-en-la-base-de-datos-mysql-usando-php-y-arduino-ide/#comments</comments>
		
		<dc:creator><![CDATA[Florencia Nold]]></dc:creator>
		<pubDate>Fri, 24 Jan 2020 15:08:27 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[ESP32]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Sistemas Embebidos]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[postscript]]></category>
		<category><![CDATA[Tubo T5]]></category>
		<guid isPermaLink="false">https://hue.cat/?p=3120</guid>

					<description><![CDATA[<p>Este artículo pretende explicar cómo conectar un módulo con un ESP32/ESP8266 a un servidor WEB que reciba los datos. El microcontrolador será el cliente de una «página WEB», accederá con información a un vínculo para insertar información en una Base de Datos Actualizado: 2/7/2025 CONTEXTO Insertar datos directamente en una base MySQL desde un microcontrolador [&#8230;]</p>
<p>The post <a href="https://huecat.es/esp32-esp8266-insertar-datos-en-la-base-de-datos-mysql-usando-php-y-arduino-ide/">ESP32 / ESP8266 Escribir en una Base de datos MySQL usando PHP y Arduino IDE</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2020/01/ESP32_PHP_BASE_DE_dATOS.png"><img decoding="async" width="1024" height="683" src="https://huecat.es/wp-content/uploads/2020/01/ESP32_PHP_BASE_DE_dATOS-1024x683.png" alt="" class="wp-image-7372" srcset="https://huecat.es/wp-content/uploads/2020/01/ESP32_PHP_BASE_DE_dATOS-1024x683.png 1024w, https://huecat.es/wp-content/uploads/2020/01/ESP32_PHP_BASE_DE_dATOS-300x200.png 300w, https://huecat.es/wp-content/uploads/2020/01/ESP32_PHP_BASE_DE_dATOS-768x512.png 768w, https://huecat.es/wp-content/uploads/2020/01/ESP32_PHP_BASE_DE_dATOS-1500x1000.png 1500w, https://huecat.es/wp-content/uploads/2020/01/ESP32_PHP_BASE_DE_dATOS.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<h2 class="wp-block-heading">Este artículo pretende explicar cómo conectar un módulo con un ESP32/ESP8266 a un servidor WEB que reciba los datos.</h2>



<h4 class="wp-block-heading">El microcontrolador será el cliente de una «página WEB», accederá con <strong>información </strong>a un <strong>vínculo </strong>para <strong>insertar </strong>información en una <strong>Base de Datos</strong></h4>
</div>
</div>



<p>Actualizado: 2/7/2025</p>



<p>CONTEXTO</p>



<p>Insertar datos directamente en una base MySQL desde un microcontrolador resulta sencillo, pero puede presentar riesgos de seguridad y escalabilidad. Como alternativa, se puede usar una API REST o un broker MQTT. Este artículo muestra un enfoque con PHP y HTTP, con medidas básicas de protección.</p>
<p>The post <a href="https://huecat.es/esp32-esp8266-insertar-datos-en-la-base-de-datos-mysql-usando-php-y-arduino-ide/">ESP32 / ESP8266 Escribir en una Base de datos MySQL usando PHP y Arduino IDE</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/esp32-esp8266-insertar-datos-en-la-base-de-datos-mysql-usando-php-y-arduino-ide/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo medir temperatura y humedad con Arduino y los sensores DHT11-DHT22</title>
		<link>https://huecat.es/medir-temperatura-y-humedad-con-dht-11-dht-22-arduino-ide-microcontrolador-programacion-espana-clases-y-tutorias/</link>
					<comments>https://huecat.es/medir-temperatura-y-humedad-con-dht-11-dht-22-arduino-ide-microcontrolador-programacion-espana-clases-y-tutorias/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Thu, 04 Jan 2018 01:17:00 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=6484</guid>

					<description><![CDATA[<p>Medir la temperatura y la humedad es una tarea común en muchos proyectos de electrónica y automatización del hogar. En este tutorial, te mostraré cómo utilizar Arduino en combinación con los sensores de temperatura y humedad DHT11 y DHT22 para obtener lecturas precisas de estos parámetros ambientales. Estos sensores son ampliamente utilizados debido a su [&#8230;]</p>
<p>The post <a href="https://huecat.es/medir-temperatura-y-humedad-con-dht-11-dht-22-arduino-ide-microcontrolador-programacion-espana-clases-y-tutorias/">Cómo medir temperatura y humedad con Arduino y los sensores DHT11-DHT22</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Medir la temperatura y la humedad es una tarea común en muchos proyectos de electrónica y automatización del hogar. En este tutorial, te mostraré cómo utilizar Arduino en combinación con los sensores de temperatura y humedad DHT11 y DHT22 para obtener lecturas precisas de estos parámetros ambientales. Estos sensores son ampliamente utilizados debido a su costo asequible, su facilidad de uso y su precisión razonable.</p>



<figure class="wp-block-image size-full"><a href="https://huecat.es/wp-content/uploads/2023/05/Sensori-DHT11-e-DHT22.jpg"><img decoding="async" width="982" height="351" src="https://huecat.es/wp-content/uploads/2023/05/Sensori-DHT11-e-DHT22.jpg" alt="" class="wp-image-6491" srcset="https://huecat.es/wp-content/uploads/2023/05/Sensori-DHT11-e-DHT22.jpg 982w, https://huecat.es/wp-content/uploads/2023/05/Sensori-DHT11-e-DHT22-300x107.jpg 300w, https://huecat.es/wp-content/uploads/2023/05/Sensori-DHT11-e-DHT22-768x275.jpg 768w" sizes="(max-width: 982px) 100vw, 982px" /></a></figure>



<p></p>



<p>Materiales necesarios:</p>



<ul class="wp-block-list">
<li>Placa de desarrollo tipo (por ejemplo, Arduino UNO)</li>



<li>Sensor DHT11 o DHT22</li>



<li>Resistencia de 10k ohmios</li>



<li>Protoboard o breadboard</li>



<li>Cables de conexión</li>
</ul>



<p>Paso 1: Conexiones eléctricas Conecta el sensor DHT11 o DHT22 a la placa Arduino según el siguiente esquema:</p>



<ul class="wp-block-list">
<li>Conecta el pin de datos del sensor (generalmente marcado como «out» o «data») al pin digital 2 de Arduino.</li>



<li>Conecta la alimentación del sensor (VCC) al pin de 5V de la <a href="https://huecat.es/la-placa-de-desarrollo/" target="_blank" rel="noreferrer noopener">placa de desarrollo</a>.</li>



<li>Conecta el pin de tierra del sensor (GND) al pin GND del circuito.</li>



<li>Si se está utilizando el sensor DHT22, conectar una resistencia de 10k ohmios entre el pin de datos y el pin de alimentación (VCC).</li>
</ul>



<p></p>



<p>Paso 2: Código de programación Abre el entorno de desarrollo de Arduino IDE y crea un nuevo proyecto. Asegúrate de tener instalada la biblioteca «DHT» en tu entorno. Luego, copia y pega el siguiente código:</p>



<figure class="wp-block-image size-full"><a href="https://huecat.es/wp-content/uploads/2023/09/sketch_sep02a-Arduino-1.8.19-02_09_2023-23_10_46.png"><img decoding="async" width="784" height="411" src="https://huecat.es/wp-content/uploads/2023/09/sketch_sep02a-Arduino-1.8.19-02_09_2023-23_10_46.png" alt="" class="wp-image-6800" srcset="https://huecat.es/wp-content/uploads/2023/09/sketch_sep02a-Arduino-1.8.19-02_09_2023-23_10_46.png 784w, https://huecat.es/wp-content/uploads/2023/09/sketch_sep02a-Arduino-1.8.19-02_09_2023-23_10_46-300x157.png 300w, https://huecat.es/wp-content/uploads/2023/09/sketch_sep02a-Arduino-1.8.19-02_09_2023-23_10_46-768x403.png 768w" sizes="(max-width: 784px) 100vw, 784px" /></a></figure>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
#include &lt;DHT.h&gt;

#define DHTPIN 2 // Pin digital al que está conectado el sensor
#define DHTTYPE DHT11 // Si utilizas el DHT22, cambia esta línea por DHT22

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
}

void loop() {
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  if (isnan(humidity) || isnan(temperature)) {
    Serial.println(&quot;Error al leer el sensor DHT!&quot;);
    return;
  }

  Serial.print(&quot;Humedad: &quot;);
  Serial.print(humidity);
  Serial.print(&quot;% - Temperatura: &quot;);
  Serial.print(temperature);
  Serial.println(&quot;°C&quot;);

  delay(2000); // Espera 2 segundos antes de tomar la siguiente lectura
}

</pre></div>


<p>Paso 3: Compilar y cargar el programa Verifica que la placa Arduino esté conectada correctamente a tu computadora y selecciona el tipo de placa y puerto en el entorno de Arduino. Luego, compila y carga el programa en la placa.</p>



<p>Paso 4: Verificación y lecturas Una vez cargado el programa, abre el monitor serial en el entorno de Arduino. Deberías comenzar a ver las lecturas de temperatura y humedad que se actualizan cada 2 segundos.</p>



<p>Conclusión: En este tutorial, aprendiste cómo utilizar Arduino y los sensores DHT11 y DHT22 para medir la temperatura y la humedad ambiental. Puedes utilizar esta información para una amplia gama de proyectos, como sistemas de monitoreo climático, control de invernaderos, etc.</p>
<p>The post <a href="https://huecat.es/medir-temperatura-y-humedad-con-dht-11-dht-22-arduino-ide-microcontrolador-programacion-espana-clases-y-tutorias/">Cómo medir temperatura y humedad con Arduino y los sensores DHT11-DHT22</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/medir-temperatura-y-humedad-con-dht-11-dht-22-arduino-ide-microcontrolador-programacion-espana-clases-y-tutorias/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
	</channel>
</rss>
