01 · Punto de partida
Un nuevo bloque: presión, sonido, magnetismo y posición
Con el taller del inclinómetro cerró el bloque de distancia y movimiento. Empieza ahora el de las magnitudes que completan el panorama de los sensores: presión y fuerza (este tema), sonido, campos magnéticos y posición angular. Es el bloque donde se ve con más claridad cómo se resuelve un mismo problema general: una magnitud mecánica o física produce un cambio eléctrico muy pequeño, y el trabajo del diseñador es amplificarlo, medirlo y calibrarlo.
La fuerza y la presión están íntimamente relacionadas (la presión es fuerza por unidad de superficie), pero los sensores se distinguen por cuánto cuesta cada medición y qué exactitud entregan. Hay tres familias que recorremos de la más simple a la más precisa:
- El FSR (force sensitive resistor): barato, delgado, impreciso. Detecta cuánto se aprieta.
- Las galgas y celdas de carga con un conversor de 24 bits (HX711): una balanza real, con calibración.
- Los sensores de presión, analógicos o digitales como el BMP280: presión del aire o de un fluido, y altitud.
02 · Magnitudes
Presión, fuerza y sus unidades
La presión es fuerza dividida por superficie: P = F / A. Su unidad en el Sistema Internacional es el pascal (Pa, un newton por metro cuadrado), pequeñísima: la presión atmosférica es de unos 101 325 Pa. Por eso se usan múltiplos y unidades heredadas, y es frecuente tropezar con las equivalencias:
| Unidad | Equivale a | La atmósfera normal en esa unidad | Uso habitual |
|---|---|---|---|
| pascal (Pa) | 1 N/m² | 101 325 Pa | Unidad SI; hojas de datos |
| hectopascal (hPa) o milibar (mbar) | 100 Pa | 1013,25 hPa | Meteorología y barómetros digitales |
| bar | 100 000 Pa | 1,01325 bar | Industria, neumática |
| psi (libra por pulgada cuadrada) | 6894,76 Pa | 14,696 psi | Neumáticos, EE. UU. |
| mmHg (milímetro de mercurio) | 133,322 Pa | 760 mmHg | Presión arterial, vacío |
| atmósfera (atm) | 101 325 Pa | 1 atm | Química |
También importa la referencia de la presión:
- Absoluta: medida respecto del vacío. Un barómetro mide presión absoluta (≈ 1013 hPa a nivel del mar).
- Manométrica (gauge): medida respecto de la presión atmosférica del lugar. Un manómetro de neumático marca 0 con la rueda desinflada.
- Diferencial: la diferencia entre dos puntos, con dos puertos. Se usa para caudal, filtros tapados y velocidad del aire.
Una aplicación habitual es el nivel de un líquido: la presión hidrostática en el fondo de un tanque es P = ρ × g × h. Para agua (ρ ≈ 1000 kg/m³), cada metro de altura equivale a 9,81 kPa. Un sensor manométrico de 0 a 20 kPa cubre un tanque de 2 m, y se calcula la altura dividiendo la presión por ρ·g.
La fuerza se mide en newtons (N); en la balanza se usan gramos y kilogramos, que son unidades de masa (1 kgf = 9,80665 N). Una celda de carga mide en realidad una fuerza, y el programa la presenta como masa bajo la hipótesis de gravedad constante.
03 · El más simple
El sensor de fuerza resistivo (FSR)
Un FSR es una película de polímero con partículas conductoras entre dos electrodos. Cuando se presiona, más partículas hacen contacto y la resistencia baja: de varios megaohms sin carga a pocos kilohms con una fuerza de unos newtons. Es delgado (menos de 0,5 mm), barato y robusto, y se lo encuentra en juguetes, pedales, teclados, instrumentos musicales y alfombras de presencia.
Su comportamiento es casi una ley inversa: la conductancia (1/R) crece de forma aproximadamente proporcional a la fuerza. Con un modelo ilustrativo R ≈ 30 kΩ / F (F en newtons), a 1 N valdría 30 kΩ, a 10 N 3 kΩ y a 0,1 N 300 kΩ. Se lo lee con el divisor de tensión de siempre (tema 4):
| Fuerza | Resistencia | Tensión | Cuentas |
|---|---|---|---|
| 0,1 N | 300 kΩ | 0,16 V | 33 |
| 0,5 N | 60 kΩ | 0,71 V | 146 |
| 1 N | 30 kΩ | 1,25 V | 256 |
| 2 N | 15 kΩ | 2,00 V | 409 |
| 5 N | 6 kΩ | 3,13 V | 639 |
| 10 N | 3 kΩ | 3,85 V | 787 |
| 20 N | 1,5 kΩ | 4,35 V | 890 |
La respuesta del divisor es una curva que se aplana con la fuerza (es la conductancia la que crece linealmente, no la tensión). Para obtener una salida lineal con la fuerza se usa un amplificador inversor con el FSR como resistencia de entrada: Vout = −Vref × Rf / RFSR, y como 1/RFSR es proporcional a F, Vout también. En un microcontrolador es más simple linealizar por software, invirtiendo el divisor: R = Rf × (1023 − cuentas) / cuentas y F ≈ k / R.
Pero lo que importa es qué no es un FSR: no es un instrumento de medida. Su exactitud absoluta es mala (±15 a ±25 % de un ejemplar a otro), tiene histéresis y deriva con la carga sostenida, depende de la temperatura y de cómo se distribuye la fuerza sobre su superficie (un apoyo puntual da otro valor que uno extendido). Sirve para detectar presencia («hay alguien en la silla»), comparar niveles («más fuerte que antes») y como control (teclas sensibles a la presión); no para pesar. Si se necesita una balanza, se usa una celda de carga.
const float R_FIJA = 10000.0;
const float K = 30000.0; // R ≈ K / F (modelo ilustrativo; medir el del ejemplar)
float fuerzaNewtons() {
int c = analogRead(A0);
if (c <= 5) return 0.0; // sin carga: la resistencia es de megaohms
float r = R_FIJA * (1023.0 - c) / c;
return K / r;
}
Para usarlo con fines de comparación se calibra el ejemplar con pesas conocidas (tema 5) y se guarda una tabla cuentas → fuerza.
04 · Medir con precisión
Galgas y celdas de carga
Una galga extensiométrica (strain gauge) es un hilo metálico muy fino y plegado en zigzag sobre una película plástica. Si se la pega a una pieza que se deforma, el hilo se estira o se comprime y su resistencia cambia levemente, como vimos en el tema 4: ΔR / R = GF × ε, con un factor de galga GF cercano a 2 y la deformación ε. Una deformación de 1000 µε (0,1 %) cambia la resistencia de 350 Ω en solo 0,7 Ω.
Una celda de carga es una pieza de metal diseñada para deformarse de forma controlada bajo una fuerza, con cuatro galgas pegadas y conectadas en un puente de Wheatstone completo. El puente tiene tres ventajas: la salida es cero sin carga (si está equilibrado), las deformaciones de cuatro galgas se suman (más señal) y los cambios de temperatura que afectan a todas por igual se cancelan. Las celdas se caracterizan por:
- Capacidad nominal: la carga máxima para la que están calibradas (1 kg, 5 kg, 50 kg, 1 t…). Se pueden sobrecargar poco (150 % es el límite habitual); más allá se deforman para siempre.
- Salida nominal (rated output): la tensión de salida a plena carga por cada volt de excitación; típicamente 1 a 3 mV/V. Con 5 V de excitación y 2 mV/V, la salida a plena carga es de 10 mV: señal diminuta.
- Equilibrio de cero: la salida sin carga no es exactamente cero (hasta ±10 % de la salida nominal).
- Cuatro hilos: dos de excitación (E+ y E−) y dos de señal (S+ y S−). Los colores varían entre fabricantes: hay que consultar la hoja.
La señal es del orden de milivolts, mucho menor que lo que puede resolver bien el ADC de un microcontrolador (4,9 mV por cuenta con 5 V): un amplificador de instrumentación con ganancia de 100 o más y un conversor de alta resolución son imprescindibles. Eso es lo que integra el HX711.
05 · El conversor
El conversor HX711
El HX711 es un amplificador de ganancia programable con un conversor delta-sigma de 24 bits, hecho específicamente para celdas de carga. Su interfaz no es I2C ni SPI: son dos pines, DOUT (datos) y PD_SCK (reloj), con un protocolo propio. Sus datos principales:
- Canal A: entrada diferencial con ganancia de 128 o 64 (rango de entrada de ±20 mV con ganancia 128 y alimentación de 5 V, ±40 mV con 64). Canal B: ganancia 32.
- Velocidad: 10 o 80 muestras por segundo, según el pin RATE (casi todos los módulos baratos traen 10 SPS).
- Resolución: 24 bits con signo (±8 388 607 cuentas). Con ganancia 128, cada cuenta equivale a unos 2,3 nV. No todos los bits son útiles: el ruido deja entre 16 y 20 bits efectivos.
- Excitación: alimenta también la celda con la propia tensión de alimentación, lo que lo vuelve ratiométrico (la lectura no depende de Vcc, como en el tema 3).
La lectura consiste en esperar a que DOUT baje (dato listo), generar 24 pulsos de reloj para sacar los bits (el primero es el más significativo) y emitir de 1 a 3 pulsos extra que eligen el canal y la ganancia de la próxima conversión (1 pulso: canal A, 128; 2: canal B, 32; 3: canal A, 64). El resultado es un entero de 24 bits en complemento a dos, que hay que extender a 32 bits con signo:
const uint8_t DOUT = 3, SCK_PIN = 2;
bool hx711Listo() { return digitalRead(DOUT) == LOW; } // el dato está listo cuando DOUT baja
long hx711Leer() { // solo llamar si hx711Listo()
uint32_t v = 0;
noInterrupts(); // el reloj en alto más de 60 µs apaga el chip
for (uint8_t i = 0; i < 24; i++) {
digitalWrite(SCK_PIN, HIGH);
v = (v << 1) | digitalRead(DOUT);
digitalWrite(SCK_PIN, LOW);
}
digitalWrite(SCK_PIN, HIGH); digitalWrite(SCK_PIN, LOW); // 25.º pulso: canal A, ganancia 128
interrupts();
if (v & 0x800000UL) v |= 0xFF000000UL; // extensión de signo de 24 a 32 bits
return (long)v;
}
La estructura respeta el estilo del curso: no hay una espera bloqueante, solo la pregunta hx711Listo() en cada vuelta del bucle (a 10 SPS el dato llega cada 100 ms). Las interrupciones se desactivan durante los 25 pulsos, que duran unas decenas de microsegundos, porque si el reloj se queda en alto más de 60 µs el chip entra en reposo y hay que reiniciarlo.
Tara y calibración
El número que entrega el HX711 es un conteo crudo que incluye el desequilibrio de cero de la celda, el peso del plato y cualquier carga previa. Para convertirlo en gramos se necesitan dos datos, que se miden una vez:
- Tara (zero u offset): con la balanza vacía, se promedian lecturas y se guarda
brutocero. Se repite cuando se coloca un recipiente. - Calibración (span): con una pesa conocida, lo más cercana posible a la capacidad, se mide y se calcula el factor en cuentas por gramo.
long cero = 0;
float factor = 1.0; // cuentas por gramo
long promedio(uint8_t n) { // promedia n lecturas (bloquea n/10 s a 10 SPS: solo para calibrar)
int64_t suma = 0;
for (uint8_t i = 0; i < n; ) {
if (hx711Listo()) { suma += hx711Leer(); i++; }
}
return suma / n;
}
void tarar() { cero = promedio(20); }
void calibrar(float gramosConocidos) { factor = (float)(promedio(20) - cero) / gramosConocidos; }
float masaGramos(long bruto) { return (bruto - cero) / factor; }
Dos cuidados con la calibración: guardar cero y factor en la EEPROM (tema 5) para que sobrevivan al apagado, y usar una pesa de verdad (una de calibración o un objeto pesado en una balanza confiable), no una estimación. La exactitud final de la balanza depende de la linealidad de la celda (±0,02 % a ±0,05 % de la capacidad), de la temperatura y de la fluencia (creep): bajo carga sostenida el valor deriva lentamente.
El ruido se trata con promedios (tema 5): promediar 10 lecturas lo reduce √10 veces. Para una balanza de uso humano, se agrega un detector de estabilidad (la masa no varía más de un umbral durante un segundo) para mostrar el resultado recién cuando se asentó.
06 · Presión de fluidos y del aire
Sensores de presión y barómetros
Sensores de presión analógicos
Los sensores de presión industriales y de automoción son, por dentro, una membrana de silicio con un puente de piezorresistencias, acondicionado y amplificado en el mismo chip. Entregan una tensión ratiométrica respecto de la alimentación, con una convención muy extendida: de 0,5 V a 4,5 V sobre un rango de 5 V para el rango completo de presión. Esa salida tiene una virtud para la seguridad: cualquier lectura por debajo de 0,5 V o por encima de 4,5 V es una falla (cable cortado, cortocircuito, sensor roto), no una presión. Un sensor que va de 0 a 5 V no puede distinguir una presión nula de un cable cortado. La conversión es lineal: P = Pmáx × (V − 0,5) / 4, con V en volts (para una alimentación de 5 V).
Barómetros digitales: el BMP280
Para el aire se usan barómetros digitales, como el BMP280 de Bosch: un sensor de presión absoluta y temperatura con interfaz I2C o SPI. Sus datos principales:
- Rango: de 300 a 1100 hPa; temperatura de −40 a 85 °C.
- Exactitud absoluta de ≈ ±1 hPa y exactitud relativa (de una lectura a otra, en las mismas condiciones) de ≈ ±0,12 hPa, equivalente a ±1 m de altura.
- Resolución: hasta 0,0016 hPa con sobremuestreo máximo.
- Interfaz: I2C con dirección 0x76 o 0x77 (pin SDO); identificador 0x58 en el registro 0xD0.
- Coeficientes de calibración grabados en el chip. La conversión del dato crudo a pascales exige una compensación con un polinomio de varios coeficientes: en la práctica se usa la biblioteca del fabricante o de Adafruit.
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp; // I2C
void setup() {
if (!bmp.begin(0x76)) { /* no responde: dirección o cableado */ }
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,
Adafruit_BMP280::SAMPLING_X2, // temperatura
Adafruit_BMP280::SAMPLING_X16, // presión: más sobremuestreo, menos ruido
Adafruit_BMP280::FILTER_X16, // filtro interno
Adafruit_BMP280::STANDBY_MS_500);
}
float presionHpa() { return bmp.readPressure() / 100.0; } // la biblioteca entrega pascales
float altitudM(float p, float p0) { // p0: presión al nivel del mar de hoy
return 44330.0 * (1.0 - pow(p / p0, 0.1903));
}
De la presión a la altura
La presión del aire baja con la altura de forma casi exponencial: cerca del nivel del mar, unos 0,12 hPa por metro. La fórmula barométrica internacional da la altura a partir de la presión P y de la presión al nivel del mar P0 (1013,25 hPa en la atmósfera estándar):
| Altitud | Presión |
|---|---|
| 0 m | 1013,3 hPa |
| 100 m | 1001,3 hPa |
| 500 m | 954,6 hPa |
| 1000 m | 898,8 hPa |
Pero la presión al nivel del mar no es constante: cambia con el clima, unos pocos hPa de un día a otro. Un cambio de 3 hPa, el que trae una tormenta, produce un error aparente de 25 metros en la altitud calculada con un P0 fijo. Por eso un altímetro barométrico mide bien las diferencias de altura en pocos minutos (subir un piso son 3 m, unos 0,36 hPa) y mal la altura absoluta, salvo que se lo ajuste con la presión local del día, como hacen los pilotos. En un dron o un podómetro se calibra P0 en el despegue y se mide la altura relativa.
07 · Elegir
Comparación y elección
| Sensor | Mide | Exactitud típica | Electrónica | Uso ideal |
|---|---|---|---|---|
| FSR | Fuerza (relativa) | ±15 a ±25 % entre unidades | Un divisor y el ADC | Detectar presión o presencia; teclas sensibles |
| Celda de carga + HX711 | Fuerza o masa | 0,02 a 0,1 % de la capacidad, calibrada | HX711 de 24 bits, tara y span | Balanzas, dosificadores, empuje |
| Sensor de presión analógico (0,5–4,5 V) | Presión de fluidos | ±1 a ±2 % del rango | El ADC; detecta fallas fuera de rango | Hidráulica, neumática, nivel de tanques |
| BMP280 | Presión del aire y temperatura | ±1 hPa absoluta; ±0,12 hPa relativa | I2C o SPI con biblioteca | Altímetros, estaciones meteorológicas |
Criterios de elección: FSR cuando basta saber «si se aprieta» y la exactitud no importa; celda de carga con HX711 cuando hay que pesar; sensor de presión analógico para fluidos, con rango adecuado; BMP280 para el aire y la altitud. En todos los casos, el rango debe cubrir lo esperado con margen y resistir las sobrecargas: un sensor de presión o una celda sobrecargada puede dañarse sin avisar.
08 · Analogía con programación
Unidades, FSR, tara y span, ruido y altitud
Probemos las piezas de lógica del tema. Las unidades de presión; un FSR leído con un divisor, con un ejemplar un 25 % más conductor que el modelo nominal; la tara y el span de una celda de 10 kg con el HX711 (con el desequilibrio de cero incluido) y el efecto de promediar diez lecturas con ruido; y la fórmula barométrica.
Python en tu navegador. Los bloques son editables: cambiá los valores y presioná «Ejecutar Python». La primera vez tarda unos segundos en cargar.
import math
# ---- Unidades de presión: 1 atmósfera normal ----
for nombre, pascales in (("Pa", 1), ("hPa", 100), ("bar", 1e5), ("psi", 6894.757), ("mmHg", 133.322), ("atm", 101325)):
print(f"1 atm = {101325 / pascales:10.4f} {nombre}")
# ---- FSR (modelo ilustrativo R = K / F) con divisor de 10 kΩ ----
R_FIJA = 10_000
def cuentas_fsr(fuerza, k):
r = k / fuerza
return round(1023 * R_FIJA / (R_FIJA + r))
def fuerza_estimada(c, k=30_000): # el programa supone el ejemplar nominal
return k / (R_FIJA * (1023 - c) / c)
print()
print("fuerza real nominal -> estimada ejemplar +25 % -> estimada (error)")
for fuerza in (0.5, 1, 5, 10):
c1 = cuentas_fsr(fuerza, 30_000)
c2 = cuentas_fsr(fuerza, 24_000)
f2 = fuerza_estimada(c2)
print(f"{fuerza:8.1f} N {c1:4d} -> {fuerza_estimada(c1):5.2f} N {c2:4d} -> {f2:5.2f} N ({f2 / fuerza - 1:+.0%})")
# ---- Celda de carga de 10 kg (2 mV/V) con HX711, ganancia 128 y 5 V ----
LSB = (0.5 * 5 / 128) / 8_388_608 # volts por cuenta (≈ 2,33 nV)
CUENTAS_POR_G = (2e-3 * 5 / 10_000) / LSB # 10 mV a 10 000 g
CERO_CELDA = 215_000 # desequilibrio de cero de la celda, en cuentas
def bruto(masa_g):
return round(CERO_CELDA + masa_g * CUENTAS_POR_G)
cero = bruto(0) # tara con la balanza vacía
factor = (bruto(2000) - cero) / 2000 # span con una pesa de 2 kg
print()
print(f"{CUENTAS_POR_G:.1f} cuentas por gramo; bruto en vacío {cero}; con 2 kg {bruto(2000)}; factor {factor:.4f}")
print(f"5 kg leídos como {(bruto(5000) - cero) / factor:.2f} g")
# ---- Ruido: una lectura frente al promedio de 10 (ruido de 150 cuentas) ----
def azar(semilla):
estado = semilla
while True:
estado = (1103515245 * estado + 12345) % 2**31
yield estado / 2**31
def normal(g):
return sum(next(g) for _ in range(12)) - 6
def desviacion(x):
m = sum(x) / len(x)
return math.sqrt(sum((v - m) ** 2 for v in x) / (len(x) - 1))
g = azar(44)
lecturas = [(round(bruto(5000) + 150 * normal(g)) - cero) / factor for _ in range(1000)]
grupos = [sum(lecturas[i * 10:(i + 1) * 10]) / 10 for i in range(100)]
print(f"ruido de una lectura: {desviacion(lecturas):.3f} g; del promedio de 10: {desviacion(grupos):.3f} g")
# ---- Altitud barométrica ----
def altitud(p, p0=1013.25):
return 44330 * (1 - (p / p0) ** (1 / 5.255))
print()
for p in (1013.25, 1001.3, 954.6, 898.8):
print(f"{p:7.2f} hPa -> {altitud(p):7.1f} m")
print(f"Una caída de 3 hPa por una tormenta, con P0 fija: {altitud(1010.25):.1f} m aparentes")
Resultado: 1 atm son 1013,25 hPa, 14,696 psi y 760 mmHg. En el FSR, el ejemplar un 25 % más conductor se lee con un error de +25 % en todo el rango (por ejemplo 5 N se estiman como 6,24 N): el programa no puede saberlo sin calibrar. En la celda, 10 kg a 2 mV/V y 5 V dan unas 429,5 cuentas por gramo; con tara y span de 2 kg, 5 kg se leen como 5000,00 g. El ruido de 150 cuentas equivale a 0,34 g en una lectura y a 0,11 g en el promedio de 10 (√10 veces menos). En la altitud, 954,6 hPa son ≈ 500 m, y una caída de 3 hPa produce 25 m aparentes con la presión de referencia fija.
El modelo del FSR, el desequilibrio de cero y el ruido son valores didácticos; una celda real añade linealidad imperfecta, fluencia y deriva térmica.
09 · Exploración interactiva
Un FSR con su divisor y una balanza con HX711
El primer instrumento lee un FSR (modelo ilustrativo) con un divisor: elegí la fuerza, la resistencia fija y el ejemplar, y mirá cuánto se equivoca el programa. El segundo es una balanza con una celda de 10 kg y un HX711: la celda tiene un desequilibrio de cero, hay ruido, y tenés que tarar y calibrar como en la vida real para que el display muestre gramos. La carga se puede subir hasta 20 kg para ver la sobrecarga.
Instrumento 1: FSR con divisor de tensión
Instrumento 2: balanza con celda de 10 kg y HX711
Recorrido guiado
- Con el FSR nominal, 10 kΩ y 1 N: 30 kΩ, 1,25 V, 256 cuentas y 1,00 N estimado. Subí a 10 N: 787 cuentas. Mirá «cuentas por cada 10 % de variación de fuerza»: a fuerzas altas la curva se aplana y se distingue peor.
- Cambiá a «25 % más conductor»: el error es de +25 % a cualquier fuerza. Con «25 % menos conductor», −25 %. Un FSR sin calibrar da cantidades relativas, no absolutas.
- Con 100 kΩ de resistencia fija, 0,1 N se distinguen mejor (1,25 V en lugar de 0,16 V); con 3,3 kΩ, las fuerzas altas se distinguen mejor (a 20 N, una variación del 10 % mueve unas 22 cuentas en lugar de 10). Cada resistencia fija desplaza la zona útil.
- En la balanza, sin tarar, con el plato vacío: el HX711 entrega unas 215 000 cuentas, el desequilibrio de cero de la celda. Sin tara no sabe cuánto es «cero».
- Con el plato vacío, presioná «Tarar»; ahora pasá a 2 kg y presioná «Calibrar con la pesa actual». Subí la carga a 5 kg: la balanza muestra 5000 g con pocas décimas de ruido.
- Activá y desactivá «Promediar 10 lecturas»: el ruido de unos 0,3 g baja a unos 0,1 g. Probá con ganancia 64: la señal en cuentas se reduce a la mitad (y el ruido en cuentas también), a cambio de admitir el doble de rango de entrada. Al cambiar la ganancia hay que volver a calibrar.
- Subí la carga a 15 kg y luego a 20 kg: se supera el 150 % de la capacidad nominal, la celda puede dañarse y, con 20 kg, el conversor se satura. El estado lo indica.
Desafío: la balanza de cocina
Una balanza de cocina de 5 kg debe distinguir 1 g. Con una celda de 10 kg y 2 mV/V, ¿alcanza la resolución teórica del HX711 (0,0023 g por cuenta)? Sobra por un factor de 400, pero el ruido manda: con unos 0,3 g por lectura, ni siquiera el promedio de 10 lecturas (0,1 g) garantiza 1 g de resolución con comodidad cuando se suman la deriva térmica y la fluencia. La resolución del conversor no es la resolución de la balanza: la dan el ruido, la linealidad y la estabilidad. En esos productos, además, se usa una celda de menor capacidad (un 10 kg para pesar 5 kg es holgado) y se muestra el resultado solo cuando la lectura se estabilizó.
10 · Método de trabajo
Cómo elegir y calibrar un sensor de fuerza o presión
- Definí qué necesitás: detectar un apretón, pesar, medir la presión de un fluido o la del aire. Eso decide la familia.
- Calculá el rango con la fuerza o presión máxima esperada, más un margen, y comprobá la sobrecarga máxima del sensor.
- Elegí la electrónica: un divisor para un FSR; amplificador de 24 bits para una celda; el ADC directo (0,5–4,5 V) para un sensor de presión analógico; la biblioteca para un barómetro digital.
- Pensá la mecánica: cómo se aplica la fuerza (centrada, perpendicular), cómo se monta la celda (solo debe cargarse en el eje previsto) y cómo se transmite la presión (sin burbujas ni obstrucciones).
- Calibrá con referencias reales: tara con el sensor descargado; span con una pesa o presión de referencia cercana al máximo.
- Guardá la calibración en memoria no volátil y verificala periódicamente.
- Filtrá y esperá la estabilidad antes de mostrar o decidir.
- Prevé las fallas: valores fuera del rango válido, saturación, deriva por temperatura y fluencia. Con sensores 0,5–4,5 V, el rango muerto sirve para detectar cables cortados.
Si la balanza «se mueve sola», sospechá de la temperatura, de corrientes de aire, de la fuente de alimentación y de un montaje mecánico flojo; si la lectura no es proporcional, de que la fuerza no se aplica en el eje de la celda.
11 · Comprensión
Confusiones frecuentes
«Un FSR sirve para pesar»
No: su exactitud absoluta es de ±15 a ±25 %, con histéresis y deriva. Sirve para detectar y comparar, no para medir.
«El HX711 de 24 bits tiene resolución de 24 bits»
El ruido deja entre 16 y 20 bits efectivos, y la celda, la temperatura y la fluencia limitan todavía más.
«Con tarar alcanza para que la balanza lea gramos»
La tara fija el cero; falta el factor de conversión, que se obtiene con una pesa conocida (span).
«La presión atmosférica es 1013 hPa en todas partes»
Es la presión estándar al nivel del mar. Baja con la altura (≈ 0,12 hPa por metro) y varía unos hPa con el clima.
«Un altímetro barométrico mide la altura absoluta con exactitud»
Mide bien diferencias en pocos minutos. La absoluta depende de la presión de referencia del día: 3 hPa de error son unos 25 m.
«Un sensor de 0 a 5 V es igual que uno de 0,5 a 4,5 V»
El segundo reserva los extremos para detectar fallas. Con el primero no se distingue una presión nula de un cable cortado.
12 · Práctica guiada
Predecí antes de comprobar
1. Cambiar de unidad
Un barómetro marca 98 400 Pa. Expresalo en hPa, en mmHg y en psi.
Ver solución
98 400 / 100 = 984 hPa. En mmHg: 98 400 / 133,322 ≈ 738 mmHg. En psi: 98 400 / 6894,76 ≈ 14,27 psi.
2. Altitud
Con P0 = 1013,25 hPa, un barómetro mide 954,6 hPa. ¿A qué altitud está? Si ese día una tormenta bajó P0 real a 1010 hPa, ¿qué error comete?
Ver solución
h = 44 330 × [1 − (954,6/1013,25)0,1903] ≈ 500 m. Con el P0 real de 1010 hPa la altitud verdadera sería ≈ 473 m: la fórmula con 1013,25 hPa la sobrestima en ≈ 27 m. En general, 1 hPa de error en P0 son unos 8 m.
3. Señal de una celda
Una celda de 10 kg y 2 mV/V se excita con 5 V. ¿Qué tensión entrega con 3 kg? ¿Cuántas cuentas da el HX711 con ganancia 128 (2,33 nV por cuenta)?
Ver solución
A plena carga: 2 mV/V × 5 V = 10 mV. Con 3 kg (30 %): 3 mV. Cuentas ≈ 3 mV / 2,33 nV ≈ 1,29 millones, más el desequilibrio de cero.
4. Tara y span
La lectura cruda es 120 000 con el plato vacío y 1 000 000 con 2 kg. ¿Cuántas cuentas por gramo? ¿Qué masa corresponde a 560 000?
Ver solución
Factor = (1 000 000 − 120 000) / 2000 = 440 cuentas/g. Masa = (560 000 − 120 000) / 440 = 1000 g.
5. Nivel de un tanque
Un sensor manométrico de 0 a 20 kPa mide el fondo de un tanque de agua. Entrega 9,8 kPa. ¿Qué altura tiene el agua?
Ver solución
h = P / (ρ g) = 9800 / (1000 × 9,81) ≈ 1,0 m. El rango de 20 kPa cubre hasta unos 2 m.
6. Elegir el sensor
Elegí FSR, celda de carga con HX711 o BMP280 para: (a) detectar si alguien está sentado en una silla; (b) un dosificador que debe pesar 250 g con ±1 g; (c) estimar cuántos pisos subió una persona.
Ver solución
(a) FSR: basta con detectar presencia. (b) Celda de carga con HX711, calibrada y con promedio. (c) BMP280: la diferencia de presión entre pisos (≈ 0,36 hPa por piso de 3 m) es medible con su exactitud relativa de ±0,12 hPa, con filtrado para no confundir con el clima.
13 · Síntesis
Ideas para recordar
- La presión es fuerza por superficie; 1 atm = 101 325 Pa = 1013,25 hPa = 14,696 psi = 760 mmHg. Puede ser absoluta, manométrica o diferencial.
- El FSR baja su resistencia al apretarlo (conductancia ≈ proporcional a la fuerza), pero su exactitud absoluta es de ±15 a ±25 %: sirve para detectar y comparar, no para pesar.
- Una celda de carga (puente de cuatro galgas) entrega unos 2 mV/V, es decir 10 mV a plena carga con 5 V: señal que exige amplificación y un conversor de alta resolución.
- El HX711 es un conversor de 24 bits (ganancia 128 o 64, 10 o 80 SPS) con interfaz de dos pines; los bits útiles son entre 16 y 20 por el ruido.
- La balanza necesita tara (cero) y span (factor con una pesa conocida): masa = (bruto − cero)/factor; se guardan en EEPROM.
- Promediar N lecturas reduce el ruido √N veces; la fluencia y la deriva térmica limitan la exactitud final.
- Los sensores de presión de 0,5 a 4,5 V reservan los extremos para detectar fallas; los barómetros digitales como el BMP280 miden ±1 hPa absoluta y ±0,12 hPa relativa.
- La altitud barométrica es h = 44330·[1 − (P/P₀)^(1/5,255)]; la presión baja ≈ 0,12 hPa/m y 1 hPa de error en P₀ son ≈ 8 m.
- Se calibra con referencias reales y se verifica la sobrecarga máxima del sensor.
¿Listo para el tema 23?
Antes de avanzar, convertí 1013 hPa a mmHg, calculá la masa que corresponde a una lectura de 560 000 con cero 120 000 y factor 440 cuentas/g, y explicá por qué un sensor de presión de 0,5 a 4,5 V es más seguro que uno de 0 a 5 V. Si podés justificar las tres respuestas, tenés la base para medir fuerza y presión.
En el próximo tema estudiamos los sensores de sonido: micrófonos MEMS y electret, la envolvente, el nivel sonoro y la detección por umbral.