DÍA 074 DE 365

Fase 2: Fundamentos de Hardware y Electrónica

📖 Teoría a Estudiar

Sensores RTD (PT100) y el Puente de Wheatstone

Un PT100 es un filamento de Platino (PT) puro. Su resistencia eléctrica cambia lineal y predeciblemente con el calor. El "100" significa que a exactamente $0^\circ C$, su resistencia es de $100 \Omega$. Si la temperatura sube a $50^\circ C$, la resistencia sube a $\sim 119.4 \Omega$.

El Reto Analógico

El problema es que medir un cambio de $19.4 \Omega$ directamente con un microcontrolador es imposible. Para convertir este minúsculo cambio de resistencia en un voltaje medible (sin inyectar tanta corriente que el platino se caliente por sí solo y arruine la lectura), utilizamos un Puente de Wheatstone acoplado a un Amplificador de Instrumentación.

PUENTE DE WHEATSTONE PARA SENSOR PT100 V_REF (ej. +3.0V Precisión) R1 4.7 kΩ Va R3 100 Ω R2 4.7 kΩ Vb PT100 ~100 a 140 Ω GND (Analógico) - + INA826 (Ganancia Ej. x50) V_OUT Hacia ADC STM32 Voltaje Diferencial: V_diff = Vb - Va

El Equilibrio del Puente

El Puente se basa en comparar dos divisores de tensión paralelos. La rama izquierda (R1 y R3) produce un voltaje fijo exacto (Va). La rama derecha (R2 y el PT100) produce un voltaje variable (Vb). Cuando el gas está a $0^\circ C$, el PT100 vale exactamente $100 \Omega$. En ese punto, como R3 también es $100 \Omega$, el puente está balanceado: $Va = Vb$, y el voltaje diferencial es $0V$.

A medida que el gas se calienta, el PT100 aumenta su resistencia y Vb cambia. El chip Amplificador de Instrumentación (INA) "resta" Vb - Va y multiplica esa minúscula diferencia por una ganancia fija, entregando al STM32 una escala de voltaje analógico de alta pureza.

El Auto-calentamiento (Self-Heating): Usamos resistencias R1 y R2 de valor muy alto ($4.7 k\Omega$) para limitar severamente la corriente que cruza el puente (menos de 1 miliamperio). Si inyectas mucha corriente, el propio flujo eléctrico calentará el platino del PT100, arruinando la lectura métrica.

⚙️ Ejercicios Prácticos

Ejercicio 1: Programa una función que tome el valor ADC entregado por el Amplificador de Instrumentación y lo convierta a Grados Celsius, utilizando una interpolación lineal rápida de Punto Fijo para el rango de temperatura comercial del gas (ej. -10°C a +50°C).


#include <stdint.h>
#include <stdbool.h>

// --- 1. CALIBRACIÓN DEL PUENTE BARE-METAL ---
// Basado en el diseño del hardware (Puente + INA), documentamos los límites:
// A 0°C, el ADC leerá 0 (porque V_diff = 0V).
// A 50°C, el ADC leerá, por ejemplo, 3000 (diseño a medida del INA).
// (Los valores reales se calibran en campo usando un bloque de hielo y agua hirviendo)

#define ADC_VALOR_CERO_GRADOS 0
#define ADC_VALOR_CINCUENTA_GRADOS 3000

// Rango dinámico (Span)
#define SPAN_ADC_PT100 (ADC_VALOR_CINCUENTA_GRADOS - ADC_VALOR_CERO_GRADOS)
#define RANGO_TEMP_C 50

extern uint32_t leer_adc_hardware(uint8_t canal); // (Del Día 38 / 71)


// --- 2. DECODIFICADOR TÉRMICO DE PUNTO FIJO ---
// Devuelve la temperatura en décimas de grado (ej. 254 = 25.4 °C)
int32_t decodificar_temperatura_pt100(uint32_t adc_raw) {
    
    // Si la lectura es menor al cero (ej. temperaturas bajo cero),
    // la matemática requiere números con signo (int32_t).
    int32_t adc_relativo = (int32_t)adc_raw - ADC_VALOR_CERO_GRADOS;
    
    // Matemática de Punto Fijo: Multiplicamos por 10 para obtener décimas de grado
    // Formula: Temp = (ADC * Rango_Max * 10) / Span_ADC
    int32_t temperatura_decimas = (adc_relativo * RANGO_TEMP_C * 10) / SPAN_ADC_PT100;
    
    return temperatura_decimas;
}


// --- 3. INTEGRACIÓN CON LA METROLOGÍA (DÍA 49) ---
int main(void) {
    
    // Variables globales de facturación
    int32_t temp_gas_actual_c = 200; // 20.0 °C por defecto
    
    while(1) {
        
        // 1. Leemos el hardware (Filtro RC Día 71 conectado al OpAmp)
        uint32_t lectura_pt100 = leer_adc_hardware(2); 
        
        // 2. Extraemos la termodinámica del gas en tiempo real
        temp_gas_actual_c = decodificar_temperatura_pt100(lectura_pt100);
        
        // 3. Alimentamos al Algoritmo de Compensación Térmica (Día 49)
        // El gas LP se expande ~0.3% por cada grado Celsius.
        // Si despachas a 30°C, le estás dando menos moléculas reales al cliente
        // si no aplicas la matemática compensatoria.
        
        // actualizar_volumen_compensado(volumen_crudo, temp_gas_actual_c);
    }
    
    return 0;
}
        

🚀 Avance del Proyecto Tesis: Despachador de Gas LP

Objetivo del día: Telemetría Termodinámica con Grado de Transferencia en Custodia.

En la industria de hidrocarburos, el volumen cambia drásticamente con la temperatura (dilatación térmica). Las leyes gubernamentales (OIML, NTEP) exigen que las gaseras cobren por volumen compensado a $20^\circ C$ (o $15^\circ C$ dependiendo el país). Un error de $1^\circ C$ en la lectura significa miles de dólares en pérdidas para la planta o un robo al consumidor.

Con este Puente de Wheatstone y el Sensor PT100, has diseñado el hardware más estable y preciso conocido por la ingeniería humana para medir calor. Mientras que los termistores baratos cambian su curva de manera impredecible con el tiempo, el platino de tu PT100 mantendrá la misma resistencia química exacta durante 20 años. Tu algoritmo en C tomará esa precisión analógica y ajustará financieramente cada litro despachado, haciendo de tu máquina un instrumento legal inobjetable.

📝 Resumen del Día

❓ Cuestionario de Autoevaluación

1. Observa el diagrama SVG. ¿Por qué usamos una resistencia R3 de exactamente $100 \Omega$ en la rama izquierda en lugar de cualquier otro valor?
Respuesta: Para fijar el "Punto Cero". Queremos que nuestro puente esté perfectamente balanceado ($V_{diff} = 0V$) cuando el gas está a $0^\circ C$. Como a esa temperatura el PT100 vale exactamente $100 \Omega$, poner $100 \Omega$ en R3 logra que ambas ramas tengan proporciones idénticas (4.7k : 100). Si pusiéramos $120 \Omega$, el puente estaría "chueco" y el voltaje diferencial a $0^\circ C$ no sería cero, complicando inmensamente la matemática del microcontrolador.

2. ¿Qué ventaja tiene este puente en comparación con usar un simple Divisor de Tensión (Día 61) con el PT100?
Respuesta: El ruido y la estabilidad. Un divisor simple saca un voltaje absoluto que depende directamente de la fuente V_REF. Si la fuente varía 1 milivoltio por calor o ruido, tu lectura térmica se arruina por completo. El puente de Wheatstone es radiométrico; si la fuente V_REF varía, el voltaje sube en ambas ramas por igual (Va y Vb suben a la par). Cuando el Amplificador de Instrumentación las resta ($V_b - V_a$), el error de la fuente se cancela y se vuelve mágicamente cero. ¡Es inmunidad por diseño matemático!