<?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 IDE Archives &#8226; HUE CAT INGENIERÍA ESPAÑA</title>
	<atom:link href="https://huecat.es/tag/arduino-ide/feed/" rel="self" type="application/rss+xml" />
	<link>https://huecat.es/tag/arduino-ide/</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 IDE Archives &#8226; HUE CAT INGENIERÍA ESPAÑA</title>
	<link>https://huecat.es/tag/arduino-ide/</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>Controlar un ESP32 (o esp8266) con Android utilizando AppInventor2</title>
		<link>https://huecat.es/controlar-un-esp32-o-esp8266-con-android-utilizando-appinventor/</link>
					<comments>https://huecat.es/controlar-un-esp32-o-esp8266-con-android-utilizando-appinventor/#respond</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Mon, 27 Nov 2023 18:01:02 +0000</pubDate>
				<category><![CDATA[ESP32]]></category>
		<category><![CDATA[ESP8266]]></category>
		<category><![CDATA[Arduino IDE]]></category>
		<category><![CDATA[Ble]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[IDE]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=6976</guid>

					<description><![CDATA[<p>App Inventor 2 es una plataforma en línea de código abierto que permite crear aplicaciones para dispositivos Android sin necesidad de conocimientos avanzados de programación. F App Inventor 2 fue desarrollado por Google y posteriormente transferido al MIT (Instituto Tecnológico de Massachusetts). Para este proyecto se creará una aplicación en App Inventor que se conecte [&#8230;]</p>
<p>The post <a href="https://huecat.es/controlar-un-esp32-o-esp8266-con-android-utilizando-appinventor/">Controlar un ESP32 (o esp8266) con Android utilizando AppInventor2</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>App Inventor 2 es una plataforma en línea de código abierto que permite crear aplicaciones para dispositivos Android sin necesidad de conocimientos avanzados de programación. F</p>



<p>App Inventor 2 fue desarrollado por Google y posteriormente transferido al MIT (Instituto Tecnológico de Massachusetts).</p>



<p><strong>Para este proyecto se creará  una aplicación en App Inventor que se conecte a un slider a través de Bluetooth y lo controle desde un dispositivo programado con Arduino IDE</strong></p>



<p></p>



<p></p>



<p>Aplicación en App Inventor que se conecte a un slider a través de Bluetooth y se controle desde un dispositivo Arduino con un ESP32, puedes seguir estos pasos generales:</p>



<p></p>



<h2 class="wp-block-heading">Lado de la Aplicación en App Inventor:</h2>



<p>1. <strong>Crear la Interfaz Gráfica:</strong></p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox.png"><img decoding="async" width="1024" height="718" src="https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox-1024x718.png" alt="" class="wp-image-7010" srcset="https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox-1024x718.png 1024w, https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox-300x210.png 300w, https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox-768x539.png 768w, https://huecat.es/wp-content/uploads/2023/11/2023-12-05-00_25_31-MIT-App-Inventor-—-Mozilla-Firefox.png 1232w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p><strong>2. Comienza un nuevo proyecto</strong></p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox.png"><img decoding="async" width="1024" height="497" src="https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox-1024x497.png" alt="" class="wp-image-7002" srcset="https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox-1024x497.png 1024w, https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox-300x146.png 300w, https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox-768x373.png 768w, https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox-1536x746.png 1536w, https://huecat.es/wp-content/uploads/2023/11/2023-11-27-22_52_29-MIT-App-Inventor-—-Mozilla-Firefox.png 1896w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>3. <strong>Componentes Bluetooth:</strong> Añadir el componente Bluetooth al diseño.</p>



<p></p>



<p></p>



<p></p>



<p>4. <strong>Configurar Bluetooth:</strong></p>



<ul class="wp-block-list">
<li>Configurar el componente Bluetooth para buscar dispositivos y establecer la conexión.</li>
</ul>



<ol class="wp-block-list">
<li><strong>Programar la Interacción con el Slider:</strong>
<ul class="wp-block-list">
<li>Programar la lógica que enviará los datos del slider a través de Bluetooth al dispositivo Arduino cuando se modifique su valor.</li>
</ul>
</li>



<li><strong>Manejar la Conexión y Desconexión:</strong>
<ul class="wp-block-list">
<li>Implementar lógica para gestionar la conexión y desconexión con el dispositivo Bluetooth.</li>
</ul>
</li>



<li><strong>Diseñar la Interfaz de Usuario:</strong>
<ul class="wp-block-list">
<li>Diseñar la interfaz de usuario para mostrar el estado de la conexión y otra información relevante.</li>
</ul>
</li>
</ol>



<p>En la pantalla de diseño, agrega un componente <code>Slider</code> desde la paleta de componentes.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">


Manejo del Slider y envío de datos:

En el bloque &quot;BluetoothClient1.SendText&quot;, el valor del slider se convierte a una cadena (Text), ya que el módulo Bluetooth envía datos como texto.

Asegúrate de configurar correctamente el BluetoothClient1.Address con la dirección Bluetooth de tu dispositivo.

Conecta tu dispositivo Android a tu Arduino mediante Bluetooth.
</pre></div>


<p></p>



<p></p>



<h2 class="wp-block-heading">Lado del Dispositivo Arduino (ESP32):</h2>



<ol class="wp-block-list">
<li><strong>Preparar todo para poder configurar el ESP32 con Arduino IDE.</strong>
<ul class="wp-block-list">
<li>Si aún no has configurado el Arduino IDE para tu ESP32, <a href="https://huecat.es/arduino-ide-compilar-codigo-para-esp32-esp8266/">puedes seguir estos pasos: Configurar el ESP32 con Arduino IDE</a></li>
</ul>
</li>



<li><strong>Programar la Lógica del Arduino</strong> <strong>Controlar el Slider</strong> (recibir datos)






<ul class="wp-block-list">
<li>Escribe un programa para el ESP32 que escuche los datos enviados por la aplicación a través de Bluetooth.</li>
</ul>



<ul class="wp-block-list">
<li>Implementa la lógica que ajustará el valor del slider según los datos recibidos a través de Bluetooth.</li>
</ul>
</li>
</ol>



<p></p>



<p></p>



<p>Controlar un slider en App Inventor 2 y enviar los datos al ESP32 a través de Bluetooth</p>



<p> Asegurarse tener un módulo Bluetooth conectado al microcontrolador.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
// Importar la librería para el módulo Bluetooth
#include &lt;SoftwareSerial.h&gt;

SoftwareSerial BTSerial(10, 11); // RX, TX

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

void loop() {
  if (BTSerial.available()) {
    int valor = BTSerial.parseInt();
    if (valor &gt;= 0 &amp;&amp; valor &lt;= 255) {
      // Aquí puedes utilizar el valor recibido como desees
      analogWrite(9, valor); // Por ejemplo, controlar un LED con el valor del slider
    }
  }
}
</pre></div>


<p></p>



<p></p>



<p>Este código utiliza la librería <code>SoftwareSerial</code> para comunicarse con el módulo Bluetooth en los pines 10 y 11. Luego, lee el valor entero enviado desde la aplicación y lo utiliza para controlar un LED conectado al pin 9 (se puede ajustar esto según tu configuración).</p>
<p>The post <a href="https://huecat.es/controlar-un-esp32-o-esp8266-con-android-utilizando-appinventor/">Controlar un ESP32 (o esp8266) con Android utilizando AppInventor2</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/controlar-un-esp32-o-esp8266-con-android-utilizando-appinventor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Medición de pulso cardíaco con Sensor AD8232 y Arduino IDE</title>
		<link>https://huecat.es/medicion-de-pulso-cardiaco-con-sensor-ad8232-y-arduino-ide/</link>
					<comments>https://huecat.es/medicion-de-pulso-cardiaco-con-sensor-ad8232-y-arduino-ide/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Fri, 07 Jul 2023 00:51:29 +0000</pubDate>
				<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[AD8232]]></category>
		<category><![CDATA[Arduino IDE]]></category>
		<category><![CDATA[Arduino Uno]]></category>
		<category><![CDATA[ESP32]]></category>
		<category><![CDATA[Heltec]]></category>
		<category><![CDATA[IDE]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=6289</guid>

					<description><![CDATA[<p>Esta es la experiencia de ayudar a montar un sistema básico de monitorización cardíaca usando el sensor AD8232 y un entorno Arduino IDE. Veremos desde la configuración del hardware y la lectura de la señal ECG hasta los pasos para filtrar y visualizar el pulso en tiempo real. El objetivo es ofrecer una guía práctica, [&#8230;]</p>
<p>The post <a href="https://huecat.es/medicion-de-pulso-cardiaco-con-sensor-ad8232-y-arduino-ide/">Medición de pulso cardíaco con Sensor AD8232 y Arduino IDE</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-full"><a href="https://huecat.es/wp-content/uploads/2023/07/ecg_proyecto_nueva_imagen_2025_heart_sensor_electrocardiograma_square.png"><img decoding="async" width="1024" height="1024" src="https://huecat.es/wp-content/uploads/2023/07/ecg_proyecto_nueva_imagen_2025_heart_sensor_electrocardiograma_square.png" alt="El AD8232 es un pequeño chip que se utiliza para medir la actividad eléctrica del corazón." class="wp-image-7322" srcset="https://huecat.es/wp-content/uploads/2023/07/ecg_proyecto_nueva_imagen_2025_heart_sensor_electrocardiograma_square.png 1024w, https://huecat.es/wp-content/uploads/2023/07/ecg_proyecto_nueva_imagen_2025_heart_sensor_electrocardiograma_square-300x300.png 300w, https://huecat.es/wp-content/uploads/2023/07/ecg_proyecto_nueva_imagen_2025_heart_sensor_electrocardiograma_square-150x150.png 150w, https://huecat.es/wp-content/uploads/2023/07/ecg_proyecto_nueva_imagen_2025_heart_sensor_electrocardiograma_square-768x768.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Esta es la experiencia de ayudar a montar un sistema básico de monitorización cardíaca usando el sensor AD8232 y un entorno Arduino IDE. Veremos desde la configuración del hardware y la lectura de la señal ECG hasta los pasos para filtrar y visualizar el pulso en tiempo real. El objetivo es ofrecer una guía práctica, apta tanto para quien se inicia en electrónica biomédica como para quienes buscan incorporar un pequeño proyecto de pulso a sus aplicaciones IoT.</p>



<p><strong>El AD8232 es un pequeño chip que se utiliza para medir la actividad eléctrica del corazón. </strong>Se buscará registrar la actividad eléctrica como un ECG o electrocardiograma. La electrocardiografía se utiliza para ayudar a diagnosticar diversas afecciones cardíacas, así como aprender más del corazón y hasta para armar detectores de mentiras.</p>



<p>Según su datasheet, «La potencia, el tamaño y el nivel de integración resultantes permiten a los diseñadores desarrollar dispositivos de monitorización cardíaca y de frecuencia cardíaca para su uso fuera de entornos de cuidados intensivos en áreas como la gestión de la salud personal y la monitorización remota de la salud.»</p>



<figure class="wp-block-pullquote has-border-color has-vivid-red-border-color"><blockquote><p>NOTA: Este dispositivo no está diseñado para diagnosticar o tratar ninguna condición.</p></blockquote></figure>



<p>Entendiendo el ECG</p>



<p>En términos generales, veamos qué representa un ECG y cómo podemos detectarlo. El ECG se divide en dos intervalos básicos, el intervalo PR y el intervalo QT, que se describen a continuación.</p>



<p><a href="https://es.wikipedia.org/wiki/Archivo:Reizleitungssystem_12.png"></a></p>



<p><a href="https://es.wikipedia.org/wiki/Archivo:Reizleitungssystem_12.png"></a></p>



<p>Sistema de conducción eléctrica del corazón:&nbsp;<strong>1.</strong>&nbsp;Nodo SA;&nbsp;<strong>2.</strong>&nbsp;Nódulo AV.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>El&nbsp;corazón&nbsp;tiene cuatro cámaras: dos&nbsp;<a href="https://es.wikipedia.org/wiki/Aur%C3%ADcula_card%C3%ADaca" target="_blank" rel="noreferrer noopener">aurículas</a>&nbsp;y dos&nbsp;<a href="https://es.wikipedia.org/wiki/Ventr%C3%ADculo" target="_blank" rel="noreferrer noopener">ventrículos</a>, izquierdos y derechos. La aurícula derecha recibe la sangre venosa del cuerpo y la envía al ventrículo derecho el cual la bombea a los&nbsp;<a href="https://es.wikipedia.org/wiki/Pulmones">pulmones</a>, lugar en el que la sangre se oxigena y libera dióxido de carbono (CO<sub>2</sub>) y del que pasa a la aurícula izquierda. De aquí la sangre se deriva al ventrículo izquierdo, de donde se distribuye, al contraerse éste, a todo el cuerpo y regresa a la aurícula derecha cerrando el&nbsp;<a href="https://es.wikipedia.org/wiki/Ciclo_card%C3%ADaco" target="_blank" rel="noreferrer noopener">ciclo cardíaco</a>.</p>
<cite>Fuente de todo el contenido sobre el corazón: <a href="https://es.wikipedia.org/wiki/Electrocardiograma" target="_blank" rel="noreferrer noopener">Wikipedia</a></cite></blockquote>



<p>Antes de sumergirnos en los detalles de la señal ECG, conviene recordar que la calidad de la medición depende en gran medida de una correcta colocación de los electrodos y de un adecuado filtrado del ruido. Asegúrate de mantener los cables lo más cortos posible y de trabajar en un entorno con mínimas interferencias eléctricas. Además, el sensor AD8232 incorpora detectores de “leads-off” (LO+ y LO–) que nos ayudarán a verificar si la piel y los electrodos están en buen contacto antes de empezar la lectura.</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/07/ecg_conection.png"><img decoding="async" width="1024" height="683" src="https://huecat.es/wp-content/uploads/2023/07/ecg_conection-1024x683.png" alt="" class="wp-image-7384" srcset="https://huecat.es/wp-content/uploads/2023/07/ecg_conection-1024x683.png 1024w, https://huecat.es/wp-content/uploads/2023/07/ecg_conection-300x200.png 300w, https://huecat.es/wp-content/uploads/2023/07/ecg_conection-768x512.png 768w, https://huecat.es/wp-content/uploads/2023/07/ecg_conection-1500x1000.png 1500w, https://huecat.es/wp-content/uploads/2023/07/ecg_conection.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<h2 class="wp-block-heading">Actividad eléctrica del corazón</h2>



<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">
<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/03/EKG_Complex_en_es.png"><img decoding="async" width="1024" height="807" src="https://huecat.es/wp-content/uploads/2023/03/EKG_Complex_en_es-1024x807.png" alt="" class="wp-image-6295" srcset="https://huecat.es/wp-content/uploads/2023/03/EKG_Complex_en_es-1024x807.png 1024w, https://huecat.es/wp-content/uploads/2023/03/EKG_Complex_en_es-300x237.png 300w, https://huecat.es/wp-content/uploads/2023/03/EKG_Complex_en_es-768x606.png 768w, https://huecat.es/wp-content/uploads/2023/03/EKG_Complex_en_es.png 1480w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading">Intervalo PR</h3>



<p>El intervalo PR es la onda inicial generada por un impulso eléctrico que viaja desde la aurícula derecha hacia la izquierda. La aurícula derecha es la primera cámara en ver un impulso eléctrico. Este impulso eléctrico hace que las cámaras se «despolaricen». Esto lo obliga a contraerse y drenar la sangre desoxigenada de la vena cava superior e inferior hacia el ventrículo derecho. A medida que el impulso eléctrico viaja a través de la parte superior del corazón, hace que la aurícula izquierda se contraiga. La aurícula izquierda es responsable de recibir sangre recién oxigenada desde los pulmones hacia el ventrículo izquierdo a través de las venas pulmonares izquierda y derecha. Las venas pulmonares están rojas en el diagrama porque transportan sangre oxigenada. Todavía se les llama venas porque las venas llevan la sangre hacia el corazón. ¡Ciencia!</p>



<h3 class="wp-block-heading">Intervalo QT El Intervalo QT</h3>



<p>El QRS es un proceso complejo que genera el «bip» característico en los monitores cardíacos. Durante QRS ambos ventrículos comienzan a bombear. El ventrículo derecho comienza a bombear sangre desoxigenada hacia los pulmones a través de las arterias pulmonares izquierda y derecha. Las arterias pulmonares son azules en el diagrama porque transportan sangre desoxigenada. Todavía se les llama arterias porque las arterias llevan la sangre fuera del corazón. ¡Ciencia, otra vez! El ventrículo izquierdo también comienza a bombear sangre recién oxigenada a través de la aorta y hacia el resto del cuerpo. Después de la contracción inicial viene el segmento ST. El segmento ST es bastante silencioso eléctricamente, ya que es el momento en que los ventrículos esperan ser «repolarizados». Finalmente, la onda T se hace presente para «re-ploarizar» activamente o relajar los ventrículos. Esta fase de relajación reinicia los ventrículos para ser llenados nuevamente por las aurículas.</p>
</div>
</div>



<p></p>



<h2 class="wp-block-heading">Conexión de AD8232 con Microcontrolador:</h2>



<h2 class="wp-block-heading">Prueba con Arduino IDE</h2>



<p><strong>Conexión del hardware</strong></p>



<p><strong>En este texto, se conectará  el AD8232 a un microcontrolador Arduino Uno y a un módulo ESP32 con pantalla OLED. ¡Construiremos un monitor cardíaco simple que le permitirá medir la actividad eléctrica del corazón en tiempo real!</strong></p>



<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">
<h3 class="wp-block-heading">Prueba con Arduino Uno</h3>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/03/Arduino316.jpg"><img decoding="async" width="1024" height="713" src="https://huecat.es/wp-content/uploads/2023/03/Arduino316-1024x713.jpg" alt="" class="wp-image-6309" srcset="https://huecat.es/wp-content/uploads/2023/03/Arduino316-1024x713.jpg 1024w, https://huecat.es/wp-content/uploads/2023/03/Arduino316-300x209.jpg 300w, https://huecat.es/wp-content/uploads/2023/03/Arduino316-768x535.jpg 768w, https://huecat.es/wp-content/uploads/2023/03/Arduino316.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Arduino Uno original (usado para este proyecto)</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading">Prueba con ESP32 + OLED</h3>



<p>Para una cómoda representación del pulso</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/03/WIFI_LoRa_32_V2-scaled.jpg"><img decoding="async" width="1024" height="515" src="https://huecat.es/wp-content/uploads/2023/03/WIFI_LoRa_32_V2-1024x515.jpg" alt="" class="wp-image-6310" srcset="https://huecat.es/wp-content/uploads/2023/03/WIFI_LoRa_32_V2-1024x515.jpg 1024w, https://huecat.es/wp-content/uploads/2023/03/WIFI_LoRa_32_V2-300x151.jpg 300w, https://huecat.es/wp-content/uploads/2023/03/WIFI_LoRa_32_V2-768x387.jpg 768w, https://huecat.es/wp-content/uploads/2023/03/WIFI_LoRa_32_V2-1536x773.jpg 1536w, https://huecat.es/wp-content/uploads/2023/03/WIFI_LoRa_32_V2-2048x1031.jpg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">También probaré el ECG con un ESP32 que cuenta con una pantalla integrada.</figcaption></figure>
</div>
</div>



<p></p>



<p></p>



<h2 class="wp-block-heading">Conexión de pines </h2>



<p>El monitor de frecuencia cardíaca AD8232 cuenta con nueve conexiones desde el IC.  Estos pines provienen de los pines en el IC, pero en realidad son agujeros a los que puede soldar cables o pines de cabecera.</p>



<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">
<figure class="wp-block-image size-large is-resized"><a href="https://huecat.es/wp-content/uploads/2023/03/ad8232.png"><img decoding="async" width="1024" height="1024" src="https://huecat.es/wp-content/uploads/2023/03/ad8232-1024x1024.png" alt="" class="wp-image-6317" style="width:355px;height:355px" srcset="https://huecat.es/wp-content/uploads/2023/03/ad8232-1024x1024.png 1024w, https://huecat.es/wp-content/uploads/2023/03/ad8232-300x300.png 300w, https://huecat.es/wp-content/uploads/2023/03/ad8232-150x150.png 150w, https://huecat.es/wp-content/uploads/2023/03/ad8232-768x768.png 768w, https://huecat.es/wp-content/uploads/2023/03/ad8232.png 1381w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>Conectaremos cinco de los nueve pines de la placa Arduino y al ESP32 respectivamente. Los cinco pines que necesita están etiquetados GND, 3.3v, OUTPUT, LO- y LO+.</p>



<figure class="wp-block-table"><table><tbody><tr><td>Board Label</td><td>Función</td><td>Conexión Uno/ESP32</td></tr><tr><td><strong>GND</strong></td><td>Ground</td><td><strong>GND</strong></td></tr><tr><td><strong>3.3v</strong></td><td>3.3v Power Supply</td><td><strong>3.3v</strong></td></tr><tr><td><strong>OUTPUT</strong></td><td>Output Signal</td><td><strong>A0</strong></td></tr><tr></tr><tr><td><strong>LO-</strong></td><td>Leads-off Detect &#8211;</td><td><strong>11</strong></td></tr><tr></tr><tr><td><strong>LO+</strong></td><td>Leads-off Detect +</td><td><strong>10</strong></td></tr><tr></tr><tr><td><strong>SDN</strong></td><td>Shutdown</td><td><strong>No usado</strong></td></tr><tr></tr></tbody></table></figure>
</div>
</div>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/03/ad8232.png"><img decoding="async" width="1024" height="1024" src="https://huecat.es/wp-content/uploads/2023/03/ad8232-1024x1024.png" alt="" class="wp-image-6317" srcset="https://huecat.es/wp-content/uploads/2023/03/ad8232-1024x1024.png 1024w, https://huecat.es/wp-content/uploads/2023/03/ad8232-300x300.png 300w, https://huecat.es/wp-content/uploads/2023/03/ad8232-150x150.png 150w, https://huecat.es/wp-content/uploads/2023/03/ad8232-768x768.png 768w, https://huecat.es/wp-content/uploads/2023/03/ad8232.png 1381w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Conexión del Sensor AD8232 con Arduino Uno (Atmega328P), ESP8266 y ESP32</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/03/ad8232_bb-Sensor-De-Pulso-Cardiaco.png"><img decoding="async" width="1024" height="968" src="https://huecat.es/wp-content/uploads/2023/03/ad8232_bb-Sensor-De-Pulso-Cardiaco-1024x968.png" alt="" class="wp-image-6373" srcset="https://huecat.es/wp-content/uploads/2023/03/ad8232_bb-Sensor-De-Pulso-Cardiaco-1024x968.png 1024w, https://huecat.es/wp-content/uploads/2023/03/ad8232_bb-Sensor-De-Pulso-Cardiaco-300x284.png 300w, https://huecat.es/wp-content/uploads/2023/03/ad8232_bb-Sensor-De-Pulso-Cardiaco-768x726.png 768w, https://huecat.es/wp-content/uploads/2023/03/ad8232_bb-Sensor-De-Pulso-Cardiaco-1536x1452.png 1536w, https://huecat.es/wp-content/uploads/2023/03/ad8232_bb-Sensor-De-Pulso-Cardiaco.png 1593w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p></p>



<figure class="wp-block-table"><table><tbody><tr><td>AD8232</td><td>Atmega328P</td><td>ESP8266</td><td>ESP32</td></tr><tr><td>OUTPUT</td><td>A5</td><td>A0</td><td>23</td></tr><tr><td>LO+</td><td>2</td><td>1</td><td></td></tr><tr><td>LO-</td><td>3</td><td>2</td><td></td></tr><tr><td>3.3V</td><td>3.3</td><td>3.3</td><td>3.3</td></tr><tr><td>GND</td><td>GND</td><td>GND</td><td>GND</td></tr></tbody></table></figure>



<p></p>



<p>Código Para compilar Atmega 328P &#8211; Medición de pulso cardíaco:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: cpp; title: ; notranslate">
// Previous values
int val;
float lowPass1;
float highPass1;
float rawSignal, rawSignal1, rawSignal2, rawSignal3;
int threshold1;
long bpm;
unsigned long t1, t2;
unsigned long milliseconds;

// -------- Functions --------- //
static inline void initTimer(void) {
  /*Write code to initialize Timer 1*/
  TCNT1 = 65223; //  preload timer 65536-16MHz/256/200Hz (sampling frequency of the ECG)
  TCCR1B |= (1 &lt;&lt; CS12); // prescaler value of 256
  TIMSK1 |= (1 &lt;&lt; TOIE1); // enable timer overflow interrupt
}

static inline void initIOPorts(void) {
  /*Write code to initialize the GPIO ports (pins) that you need*/
  DDRB = 0b00100000;
}

static inline void initADC(void) {
  /*Write code to initialize the ADC*/
  ADMUX |= (1 &lt;&lt; REFS0); // reference voltage on ADC as AVcc
  ADCSRA |= (1 &lt;&lt; ADPS2) | (1 &lt;&lt; ADPS1) | (1 &lt;&lt; ADPS0); // ADC clock prescaler of 128
  ADCSRA |= (1 &lt;&lt; ADATE); // Enables ADC auto trigger
  ADCSRB |= (1 &lt;&lt; ADTS2) | (1 &lt;&lt; ADTS1); // ADC triggers when Counter1 overflows
  ADCSRA |= (1 &lt;&lt; ADIE); // ADC interrupts enabled
  ADCSRA |= (1 &lt;&lt; ADEN); // enable ADC
  ADCSRA |= (1 &lt;&lt; ADSC); // start ADC conversion
}

void tiempo(void);

// ------ Interrupt Service Routine ------ //
ISR(TIMER1_OVF_vect) {
  /*This is the interrupt service routine for Timer 1 Overflow*/
  PORTB ^= 0b00100000;
  TCNT1 = 65223;   // preload timer
  rawSignal = analogRead(A0);
  tiempo();
  val = 1;
}

ISR(ADC_vect) {
  /*This is the interrupt service routine for the ADC
     It is executed when the ADC completes a conversion.
  */
  if (ADC &gt; 512) // turn LED on or off
  {
    PORTB = 0b00100000;
    // measure();

  }
  else
    PORTB = 0b00000000;

  rawSignal = ADC; //Store the ADC value in the variable ECG_rawsignal
  val = 1;
}

void tiempo(void) {
  static int counter;
  static int counter2;
  static long segundos;
  counter++;
  //Contador de segundos /////////////////////////////////////////////////////
  if (counter &gt; 200) {
    counter = 0;
    segundos++;
    // Serial.print(&quot;***************************** Segundos de ejecición: &quot;);
    // Serial.print(segundos);
    // Serial.println(&quot; segundos *****************************&quot;);
  }

  /////////////////////////////////// Contador de milliseconds ///////////////
  milliseconds = milliseconds + 5;


}

boolean serialMonitor = 0;

unsigned long lastMillisBpm&#x5B;] = {0, 0, 0, 0, 0}; //A cuántos millis se detectó beat

unsigned long lastTimeBeat&#x5B;] = {0, 0, 0, 0, 0}; //Tiempo entre pulso y pulso

int main(void) {


  Serial.begin(115200); //Sets the data rate bits/s for serial data submission

  pinMode(LED_BUILTIN, OUTPUT);

  noInterrupts(); //Disable interrupts
  initIOPorts(); //Initiate GPIO module
  initTimer(); // Initiate timer module
  initADC(); //Initiate ADC module
  interrupts(); //Enable interrupts

  while (1) {

    Serial.flush(); //Waits for the transmission of outgoing serial data to complete
    if (val == 1) { //Tests if val is equal to 1
      // Filtered signal calculation

      float highPass = -0.5096 * rawSignal - 0.6456 * rawSignal1 + 0.6456 * rawSignal2 + 0.5096 * rawSignal3;
      float lowPass = 0.91 * lowPass1 + 0.045 * highPass + 0.045 * highPass1;

      // Comparison with threshold
      int threshold;
      if (lowPass &lt; 0) lowPass = -lowPass; // Calculates the module
      if (lowPass &gt; 10) threshold = 400;
      else threshold = 0;


      // Print the values on serial plotter/

      if (serialMonitor) {


        Serial.print(rawSignal);
        Serial.print(&quot;,&quot;);
        Serial.print(highPass);
        Serial.print(&quot;,&quot;);
        Serial.print(lowPass);
        Serial.print(&quot;,&quot;);
        Serial.print(threshold);
        Serial.print(&quot;,&quot;);
        Serial.println(bpm);
        //  Serial.print(&quot;,&quot;);
        //  Serial.println(milliseconds);
      }
      //   if ()

      rawSignal1 = rawSignal;
      rawSignal2 = rawSignal1;
      rawSignal3 = rawSignal2;
      highPass1 = highPass;
      lowPass1 = lowPass;

      static int QRS = 0;
      static int j = 0;

      if (threshold == 400) {
        if (!QRS) {

          int k = j - 1;
          if (k &lt; 0) k = 4;

          if ( milliseconds &gt; lastMillisBpm&#x5B;k] + 300 ) {

            //Rutina de detección
            QRS = 1;
            if (!serialMonitor)Serial.print(&quot;QRS complex detected&quot;);
            lastMillisBpm&#x5B;j] = milliseconds;

            //Compara los ultimos 2
            long lastTime = lastMillisBpm&#x5B;k] - lastMillisBpm&#x5B;j] ;
            if (lastTime &gt; 300 &amp;&amp; lastTime &lt; 1200) {
              lastTimeBeat&#x5B;k] = lastTime;
            }

            int nuevosBpm=600000/lastTime;

            j++;


          }
          else
          {
            if (!serialMonitor)Serial.println(&quot;Discard the pulse&quot;);
          }







          if (j &gt; 5) j = 0;
        }
        else {
          //There was a pulse



        }

        digitalWrite(LED_BUILTIN, HIGH);
      }
      else
        QRS = 0;
      digitalWrite(LED_BUILTIN, LOW);


      long testPulse = lastMillisBpm&#x5B;2] - lastMillisBpm&#x5B;1];

      bpm = 60000 / (testPulse);
      if (!serialMonitor) Serial.print(testPulse);
      if (!serialMonitor) Serial.print(&quot;,&quot;);
      if (!serialMonitor) Serial.println(bpm);



      ///////////////////////////////////////////Serial.println(&quot;bpm&quot; + bpm);

      threshold1 = threshold;
      val = 0;
    }
  }
  return 0; /* This line is never reached */
}
</pre></div>


<p></p>



<p></p>



<p>Ahora la detección de pulsaciones:</p>



<figure class="wp-block-image size-large"><a href="https://huecat.es/wp-content/uploads/2023/03/Pulso-cardiaco-ad8232-hue-cat-ingenieria-espana.jpeg"><img decoding="async" width="1024" height="375" src="https://huecat.es/wp-content/uploads/2023/03/Pulso-cardiaco-ad8232-hue-cat-ingenieria-espana-1024x375.jpeg" alt="" class="wp-image-6496" srcset="https://huecat.es/wp-content/uploads/2023/03/Pulso-cardiaco-ad8232-hue-cat-ingenieria-espana-1024x375.jpeg 1024w, https://huecat.es/wp-content/uploads/2023/03/Pulso-cardiaco-ad8232-hue-cat-ingenieria-espana-300x110.jpeg 300w, https://huecat.es/wp-content/uploads/2023/03/Pulso-cardiaco-ad8232-hue-cat-ingenieria-espana-768x281.jpeg 768w, https://huecat.es/wp-content/uploads/2023/03/Pulso-cardiaco-ad8232-hue-cat-ingenieria-espana-590x215.jpeg 590w, https://huecat.es/wp-content/uploads/2023/03/Pulso-cardiaco-ad8232-hue-cat-ingenieria-espana.jpeg 1317w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Con este montaje y el código de ejemplo ya puedes capturar y procesar tu pulso cardíaco en tiempo real. Como siguiente paso, podrías mejorar la visualización integrando una pantalla OLED o enviando los datos a una plataforma web (por ejemplo, usando MQTT o HTTP). Asimismo, explorar ajustes de filtro más avanzados o implementar detección automática de arritmias te permitirá convertir este prototipo en una herramienta aún más potente para proyectos de salud conectada.</p>
<p>The post <a href="https://huecat.es/medicion-de-pulso-cardiaco-con-sensor-ad8232-y-arduino-ide/">Medición de pulso cardíaco con Sensor AD8232 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/medicion-de-pulso-cardiaco-con-sensor-ad8232-y-arduino-ide/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Funciones y métodos integrados en Arduino IDE</title>
		<link>https://huecat.es/funciones-y-metodos-integrados-en-arduino-ide/</link>
					<comments>https://huecat.es/funciones-y-metodos-integrados-en-arduino-ide/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Tue, 06 Jun 2023 20:37:18 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Sistemas Embebidos]]></category>
		<category><![CDATA[analogWrite]]></category>
		<category><![CDATA[Arduino IDE]]></category>
		<category><![CDATA[digitalRead]]></category>
		<category><![CDATA[digitalWrite]]></category>
		<category><![CDATA[Funciones]]></category>
		<category><![CDATA[Serial]]></category>
		<category><![CDATA[Wire]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=6505</guid>

					<description><![CDATA[<p>Cuando se trata de desarrollar proyectos electrónicos, Arduino IDE se ha convertido en una plataforma popular gracias a sus características únicas y su versatilidad. Además de su similitud con la sintaxis de C y C++, Arduino ofrece una serie de funciones y métodos específicos que permiten interactuar de manera eficiente con los componentes electrónicos. En [&#8230;]</p>
<p>The post <a href="https://huecat.es/funciones-y-metodos-integrados-en-arduino-ide/">Funciones y métodos integrados en Arduino IDE</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Cuando se trata de desarrollar proyectos electrónicos, Arduino IDE se ha convertido en una plataforma popular gracias a sus características únicas y su versatilidad. Además de su similitud con la sintaxis de C y C++, Arduino ofrece una serie de funciones y métodos específicos que permiten interactuar de manera eficiente con los componentes electrónicos. En este artículo, destacaremos algunas de las particularidades de Arduino y cómo aprovechar al máximo su potencial en tus proyectos.</p>



<p>Una de las grandes ventajas de Arduino IDE es la amplia variedad de bibliotecas predefinidas disponibles. Estas bibliotecas contienen funciones listas para usar que simplifican la interacción con dispositivos y módulos comunes. Al importar una biblioteca específica, se obtiene acceso instantáneo a métodos que facilitan tareas como leer sensores, controlar motores, comunicarse con pantallas y mucho más. La biblioteca estándar de Arduino es solo el comienzo; existen innumerables bibliotecas de terceros creadas por la comunidad Arduino que ofrecen aún más funcionalidades especializadas.</p>



<p>Además de las bibliotecas, Arduino también ofrece una serie de funciones y métodos integrados que son fundamentales para el desarrollo de proyectos electrónicos. Algunos ejemplos destacados son:</p>



<ol class="wp-block-list">
<li><code>digitalRead()</code> y <code>digitalWrite()</code>: Estas funciones permiten leer y escribir valores digitales en los pines de Arduino. Son esenciales para interactuar con botones, interruptores y otros dispositivos que funcionan con señales digitales.</li>



<li><code>analogRead()</code> y <code>analogWrite()</code>: Arduino también cuenta con pines analógicos, y estas funciones permiten leer y escribir valores analógicos. Son especialmente útiles para trabajar con sensores de luz, temperatura y otros dispositivos que generan señales analógicas.</li>



<li><code>Serial</code>: Arduino tiene soporte para la comunicación serial, lo que permite establecer una conexión con otros dispositivos, como una computadora. La clase <code>Serial</code> ofrece métodos para enviar y recibir datos a través del puerto serie, lo que es esencial para la depuración y la interacción con otros sistemas.</li>



<li><code>Wire</code>: Esta biblioteca permite la comunicación I2C, un protocolo ampliamente utilizado para conectar múltiples dispositivos en un bus de dos hilos. Con los métodos proporcionados por la biblioteca <code>Wire</code>, es posible enviar y recibir datos entre Arduino y otros dispositivos compatibles con I2C.</li>
</ol>



<p>Estas son solo algunas de las particularidades de Arduino que te permitirán aprovechar al máximo su potencial en tus proyectos. Explorar las bibliotecas, funciones y métodos específicos de Arduino te brindará un mayor control sobre tus componentes electrónicos y te permitirá crear proyectos más sofisticados. Además, no olvides que la comunidad Arduino es muy activa, por lo que siempre puedes buscar ejemplos, tutoriales y proyectos similares para inspirarte y aprender nuevas formas de utilizar Arduino en tus creaciones.</p>



<p>En conclusión, al destacar las particularidades de Arduino, como sus funciones y métodos específicos, los lectores podrán comprender mejor cómo aprovechar al máximo el potencial de Arduino en sus proyectos electrónicos. Explorar las bibliotecas predefinidas, aprender sobre las funciones integradas y estar al tanto de la comunidad Arduino te abrir</p>
<p>The post <a href="https://huecat.es/funciones-y-metodos-integrados-en-arduino-ide/">Funciones y métodos integrados en 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/funciones-y-metodos-integrados-en-arduino-ide/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Circuito, Programación, Fabricación de PCB de Máquina Contadora de Tarjetas.</title>
		<link>https://huecat.es/circuito-programacion-fabricacion-de-pcb-de-maquina-contadora-de-tarjetas/</link>
					<comments>https://huecat.es/circuito-programacion-fabricacion-de-pcb-de-maquina-contadora-de-tarjetas/#comments</comments>
		
		<dc:creator><![CDATA[HUECAT]]></dc:creator>
		<pubDate>Wed, 14 Dec 2022 17:58:00 +0000</pubDate>
				<category><![CDATA[ESP32]]></category>
		<category><![CDATA[Ingeniería mecatrónica]]></category>
		<category><![CDATA[Servicios]]></category>
		<category><![CDATA[Arduino IDE]]></category>
		<guid isPermaLink="false">https://huecat.es/?p=7028</guid>

					<description><![CDATA[<p>El proyecto consta de un ESP32 con un sistema contador de hojas y 2 foto-células/sensores para el procedimiento de trabajo. En el procedimiento, cada ciclo fue programado como una «Máquina de Estados Finitos» La lista de Hardware de este proyecto es: -ESP32 -Sensores digitales/fotocélulas -LCD 1602 con módulo I2C -Botonera de 4 salidas simple -Salidas [&#8230;]</p>
<p>The post <a href="https://huecat.es/circuito-programacion-fabricacion-de-pcb-de-maquina-contadora-de-tarjetas/">Circuito, Programación, Fabricación de PCB de Máquina Contadora de Tarjetas.</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>El proyecto consta de un ESP32 con un sistema contador de hojas y 2 foto-células/sensores para el procedimiento de trabajo.</p>



<figure class="wp-block-video"><video height="864" style="aspect-ratio: 480 / 864;" width="480" autoplay controls loop muted src="https://huecat.es/wp-content/uploads/2023/12/Maquina-Hojas-Contadora-Arduino-ESP32.mp4" playsinline></video></figure>



<p>En el procedimiento, cada ciclo fue programado como una «Máquina de Estados Finitos»</p>



<p>La lista de Hardware de este proyecto es:</p>



<figure class="wp-block-image size-thumbnail"><a href="https://huecat.es/wp-content/uploads/2023/12/Maquina-Hojas-Contadora-Arduino-ESP32.jpeg"><img decoding="async" width="150" height="150" src="https://huecat.es/wp-content/uploads/2023/12/Maquina-Hojas-Contadora-Arduino-ESP32-150x150.jpeg" alt="" class="wp-image-7029"/></a></figure>



<p>-ESP32</p>



<p>-Sensores digitales/fotocélulas</p>



<p>-LCD 1602 con módulo I2C</p>



<p>-Botonera de 4 salidas simple</p>



<p>-Salidas con relay</p>



<p></p>
<p>The post <a href="https://huecat.es/circuito-programacion-fabricacion-de-pcb-de-maquina-contadora-de-tarjetas/">Circuito, Programación, Fabricación de PCB de Máquina Contadora de Tarjetas.</a> appeared first on <a href="https://huecat.es">HUE CAT INGENIERÍA ESPAÑA</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://huecat.es/circuito-programacion-fabricacion-de-pcb-de-maquina-contadora-de-tarjetas/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		<enclosure url="https://huecat.es/wp-content/uploads/2023/12/Maquina-Hojas-Contadora-Arduino-ESP32.mp4" length="2112940" type="video/mp4" />

			</item>
	</channel>
</rss>
