01 · Punto de partida
Del ohm al kilo y al grado
Todo el curso desemboca acá: el NTC del Tema 13 y la celda de carga viven en puentes de mV. La cadena es siempre la misma —sensor → puente → INA → filtro → ADC → calibración— y cada eslabón se diseña con los temas anteriores.
- ¿Qué ganancia pide cada sensor?
- ¿Dónde va el filtro y con qué fc?
- ¿Cómo se calibra sin laboratorio?
- ¿Por qué la linealidad se verifica, no se supone?
02 · Cadena de señal
Cinco eslabones, un presupuesto
| Eslabón | Decide | Tema |
|---|---|---|
| Puente | mV de diferencia, modo común | 13 |
| INA | G para llevar a voltios sin saturar | 25 |
| Filtro | fc contra ruido y alias | 23–24 |
| ADC + código | Resolución, tara, calibración | 8 (curso) |
03 · Balanza
Celda + HX711
Celda de 1 mV/V con excitación 5 V: fondo escala 5 mV. El HX711 aplica G = 128 (640 mV) y digitaliza a 24 bits: 1 LSB ≈ 0,3 µV al ADC, ≈ 2,3 nV al puente (Tema 25). Calibración casera: tara en vacío + peso conocido (botella de 1 L ≈ 1 kg) para la pendiente.
Balanza (dc lenta)
G alta, filtro fuerte
128× + pasa-bajos de Hz: el peso no se apura. Deriva térmica se tara fuera.
Temperatura (rango amplio)
G moderada, curva no lineal
G = 2 cubre 0–50 °C sin saturar; la curva exponencial se corrige por software.
04 · Temperatura
NTC de 0 a 50 °C
NTC 10k (B = 3950) en puente 5 V con fijas 10k, INA G = 2: la tabla manda (ver taller). Extremos: 0 °C → +2,71 V; 50 °C → −2,36 V: cabe en ±7,5 V con margen. Con G = 10 saturaría (+13,5 V a 0 °C): la ganancia la fija el peor extremo, no el centro.
| T (°C) | Rx | Vout |
|---|---|---|
| 0 | 33,6k | +2,71 V |
| 10 | 20,2k | +1,69 V |
| 20 | 12,5k | +0,56 V |
| 25 | 10,0k | 0,00 V |
| 30 | 8,0k | −0,54 V |
| 40 | 5,3k | −1,54 V |
| 50 | 3,6k | −2,36 V |
05 · Cadena en código
Del grado al volt
Modelo NTC → puente → INA más prueba de calibración lineal de 2 puntos (spoiler: falla en el medio).
Python en tu navegador. Calibrá con extremos y medí el error a 25 °C.
import math
def rx_ntc(t_c, r0=10000.0, b=3950.0):
t_k = t_c + 273.15
return r0 * math.exp(b * (1 / t_k - 1 / 298.15))
def cadena_ntc(t_c, g=2.0, vs=5.0, rfija=10000.0, riel=7.5):
rx = rx_ntc(t_c)
va = vs * rx / (rfija + rx)
vout = min(max(g * (va - vs / 2), -riel), riel)
print(f"{t_c:>3.0f}C Rx={rx/1000:5.1f}k -> Vout={vout:+.2f}V")
return vout
for t in (0, 10, 20, 25, 30, 40, 50):
cadena_ntc(t)
La tabla del tema sale de acá. ¿Qué da con G = 10 a 0 °C? ¿Y a 50 °C?
Calibración lineal (y su error)
v0 = cadena_ntc(0)
v50 = cadena_ntc(50)
v25 = cadena_ntc(25)
t_est = 0 + (v25 - v0) * (50 - 0) / (v50 - v0)
print(f"calibrado 0/50C: a 25C estima {t_est:.1f}C (error {t_est-25:+.1f}C)")
06 · Analogía programador
Pipeline ETL
- 1Extraer = puente.
Convierte lo físico en señal eléctrica chica: como leer el sensor crudo.
- 2Transformar = INA + filtro.
Escala y limpia: como normalizar y quitar outliers antes de guardar.
- 3Cargar = ADC + calibración.
Digitaliza con referencia conocida: sin calibrar es un número, no una medida.
07 · Taller
Laboratorio: cadena NTC
Puente 5 V + INA, rieles ±7,5 V. Mové temperatura y G: el laboratorio muestra Rx, diferencia y Vout.
Termómetro analógico
25 °C · Vout 0,00 V
25 °C: puente en equilibrio, Vout 0,00 V.
Preguntas para explorar
- Llevá a 0 °C con ×2 y con ×10. ¿Vout en cada caso? ¿Qué decide G?
- ¿Vout es lineal con T? Compará pasos 0→10 y 40→50.
- Calibración 0/50 °C: ¿error a 25 °C? (Ver código.) ¿Cómo lo corregís?
Ver respuestas sugeridas
- +2,71 V y techo (+13,5 → +7,5 V): el extremo frío manda. G la fija el peor caso, no el centro.
- No: 0→10 cae 1,02 V; 40→50 cae 0,82 V. Curva exponencial: pasos desiguales.
- Estima ≈ 26,7 °C (error +1,7 °C): se corrige con tabla (lookup) o fórmula Beta en el micro.
08 · Comprensión
Confusiones frecuentes
«INA + ADC = listo»
Faltan anti-alias, referencia estable, desacople y calibración: la cadena tiene cinco eslabones, no dos.
«Más G = más precisión»
G amplifica ruido y deriva también: la precisión la dan CMRR, filtrado y calibración, no los voltios.
«La G endereza la curva»
G escala, no linealiza: el NTC sigue exponencial. Linealizar es software (Beta, lookup, polinomio).
«Calibrar una vez y para siempre»
Deriva con tiempo y temperatura: tara periódica + verificación a medio rango, como la balanza del baño.
09 · Práctica guiada
Ejercicios de cadena
Ejercicio 1: rango sin techo
Cadena del tema (G = 2). ¿G máxima que admite el extremo frío sin saturar? Verificá con cadena_ntc(0, g=...).
Ver solución razonada
G ≈ 5,5 (7,5/1,354): E12 práctica G = 5 (49,4k/12k ≈ 5,1). G = 10 satura en frío.
Ejercicio 2: filtro de la cadena
Temperatura muestreada a 10 Hz. ¿fc del anti-alias? ¿R/C E12?
Ver solución
fc ≈ 1 Hz (década bajo Nyquist 5 Hz): R = 160k/150k + C = 1 µF (fc ≈ 1,06 Hz). Lento a propósito.
Ejercicio 3: balanza casera
HX711 + celda 1 mV/V. Medí tara, pesá 1 kg conocido, calculá escala (cuentas/kg). ¿Repetibilidad en 10 medidas?
Ver solución
Escala = (cuentas_1kg − tara)/1 kg. Repetibilidad típica ±1–2 g con buena mecánica; deriva térmica se re-tara.
10 · Síntesis
Ideas para recordar
- Cadena: puente → INA → filtro → ADC → calibración.
- G la fija el peor extremo; fc una década bajo el muestreo.
- NTC exponencial: lookup o Beta, nunca lineal de 2 puntos.
- Balanza: tara + peso conocido; re-tarar con el clima.
- Verificar a medio rango: la calibración se audita.
Cadena completa andando. Pero hay un enemigo invisible: en el próximo tema, ruido.