← Índice del curso

Sensores y Actuadores · Tema 24

Sensores magnéticos

Un imán permite detectar una puerta, contar vueltas o medir una distancia sin contacto y a través de plástico, madera o aluminio. Según el sensor, la respuesta es un contacto que se cierra, un bit con histéresis, una tensión proporcional al campo o las tres componentes del campo terrestre para armar una brújula. Cada nivel de información exige su propio cuidado.

01 · Punto de partida

Detectar sin tocar

Un campo magnético atraviesa casi todo lo que no sea hierro: plástico, vidrio, madera, aluminio, agua. Por eso un sensor magnético puede quedar sellado dentro de una carcasa, sumergido o detrás de una pared, y detectar un imán del otro lado. No tiene contactos expuestos ni se desgasta por rozamiento. A cambio, solo ve imanes (o hierro que distorsione un campo) y su respuesta depende de la geometría: la distancia, la orientación del imán y el material cercano.

El tema recorre cuatro dispositivos, de menor a mayor información: el interruptor reed (un contacto que cierra un imán), los sensores de efecto Hall digitales (un bit con histéresis), los Hall lineales (una tensión proporcional al campo) y los magnetómetros de tres ejes (el vector completo del campo, incluido el de la Tierra). Con el último se construye una brújula, y con ella aparece una calibración que ya conocemos del giroscopio y del acelerómetro: quitar el sesgo del sensor.

02 · Magnitudes

El campo magnético

La densidad de flujo magnético B se mide en tesla (T) en el SI; las hojas de datos usan casi siempre sus submúltiplos, el militesla (mT) y el microtesla (µT), o la unidad CGS gauss (G). La conversión es 1 mT = 10 G, es decir, 1 G = 100 µT. Los órdenes de magnitud explican qué sensor sirve para qué:

Campos magnéticos típicos.
FuenteCampoEn gauss
Campo de la Tierra (en la superficie)25 a 65 µT0,25 a 0,65 G
Imán de heladera, cerca de la superficie5 a 10 mT50 a 100 G
Imán de neodimio pequeño, en su superficie200 a 400 mT2000 a 4000 G
Cable con 10 A, a 1 cm≈ 0,2 mT≈ 2 G
Altavoz, motor pequeño, a pocos centímetros0,1 a varios mT1 a decenas de G

La diferencia entre el campo de un imán cercano (decenas de militesla) y el de la Tierra (decenas de microtesla) es de mil veces. Un Hall lineal de uso general sirve para el primero e ignora el segundo; un magnetómetro está pensado para el segundo y se satura con un imán. Elegir mal el sensor es el error típico.

El campo de un imán pequeño cae rápidamente con la distancia. En primera aproximación, el de un dipolo magnético disminuye con el cubo de la distancia: B ≈ K / d³. Si a 10 mm un imán da 200 G, a 20 mm da 25 G (un octavo) y a 30 mm, 7,4 G. Eso hace la medición de distancia muy sensible cerca del imán y muy poco sensible lejos, y limita el alcance práctico de un Hall con un imán chico a pocas decenas de milímetros.

03 · El contacto sellado

El interruptor reed

Un reed (lengüeta) es un par de láminas ferromagnéticas, selladas en una cápsula de vidrio con gas inerte. Un campo magnético las magnetiza, se atraen y el contacto se cierra; al retirar el imán, vuelven a separarse. Es un contacto mecánico común, accionado sin tocarlo, y se lo trata como los pulsadores del tema 6. Sus características:

  • No necesita alimentación y consume cero: ideal para alarmas de puertas y ventanas que duran años con una batería.
  • Sensibilidad en ampere-vuelta (AT): el campo que lo cierra (pull-in) es mayor que el que lo abre (drop-out), de modo que tiene histéresis natural.
  • Rebotes breves (decenas a cientos de microsegundos), más cortos que los de un pulsador común, pero presentes: conviene un antirrebote por software de unos pocos milisegundos.
  • Vida larga con corrientes bajas (millones a miles de millones de operaciones), que se acorta mucho con cargas inductivas o corrientes altas. Para una entrada digital de 0,5 mA no hay problema.
  • Frágil: la cápsula de vidrio no tolera golpes ni flexión de los terminales al soldar.
  • Sensible al hierro cercano, que desvía el campo del imán y cambia la distancia de accionamiento.
const uint8_t PIN_REED = 2;
const uint16_t T_REBOTE = 5;                    // ms: los rebotes de un reed son más cortos que los de un pulsador

bool puertaCerrada = false;                     // imán cerca del reed = puerta cerrada
bool candidata = false;
uint32_t tCambio = 0;

void setup() { pinMode(PIN_REED, INPUT_PULLUP); }     // el reed va del pin a masa

void loop() {
    bool lectura = (digitalRead(PIN_REED) == LOW);    // contacto cerrado = imán presente
    uint32_t ahora = millis();
    if (lectura != candidata) { candidata = lectura; tCambio = ahora; }
    if (candidata != puertaCerrada && ahora - tCambio >= T_REBOTE) puertaCerrada = candidata;
}

Para una puerta, se puede aprovechar el comportamiento ante fallas del tema 6: un reed normalmente cerrado (con el imán cerca cuando la puerta está cerrada) y un cable cortado se parecen a «puerta abierta», que es el estado que dispara la alarma. Es un detector que falla de forma segura.

04 · Un bit con histéresis

Sensores Hall digitales

El efecto Hall es el siguiente: cuando una corriente circula por una placa semiconductora y se aplica un campo magnético perpendicular, aparece entre los bordes una pequeña tensión transversal, la tensión de Hall, proporcional al campo y a la corriente: VH ∝ I × B. La tensión de Hall es de microvolts a milivolts, por eso los sensores comerciales integran en el mismo chip la placa, un amplificador y la lógica de salida.

Un sensor Hall digital (como el A3144 o la familia de interruptores Hall) compara la tensión amplificada con dos umbrales y entrega un bit. Hay tres variantes según la polaridad que lo activa:

Tipos de sensores Hall digitales.
TipoSe activa con…Se desactiva…Uso
UnipolarUn polo (por ejemplo el sur) frente a la cara marcada, con un campo mayor que BOPAl bajar el campo de BRP (menor que BOP)Detección de presencia de un imán, final de carrera, tacómetro
Bipolar (con retención, latch)Un poloSolo cuando aparece el polo opuesto; en medio, mantiene el estadoConmutación de motores sin escobillas, encoders con anillo magnético alternado
OmnipolarCualquier poloAl retirar el imánDetección sin importar la orientación del imán

Los puntos de operación (BOP) y liberación (BRP) son del orden de varias decenas de gauss (pocos militesla); la diferencia entre ambos es la histéresis, que evita el parpadeo cuando el imán está en el borde de la zona de detección (la misma idea de los temas 7 y 13). Muchos tienen salida en colector abierto (hace falta un pull-up, tema 7) y se alimentan con 4,5 a 24 V.

Su uso estrella es contar vueltas: un imán pegado a una rueda o un disco pasa frente al sensor una vez por vuelta y genera un pulso que se cuenta con una interrupción (tema 22 del curso de Microcontroladores). Con 4 imanes y 1500 RPM, la frecuencia de pulsos es 1500/60 × 4 = 100 Hz (un pulso cada 10 ms): la misma fórmula de RPM del tema 7, con imanes en lugar de ranuras, y sin el problema de la suciedad o la luz ambiente. Es la técnica de los velocímetros de bicicleta y de muchos sensores de rueda de automóviles.

05 · Una tensión proporcional

Sensores Hall lineales

Un Hall lineal (como el SS49E o el 49E) entrega una tensión analógica proporcional al campo, centrada en la mitad de la alimentación cuando no hay campo. El SS49E, un modelo muy usado, tiene una sensibilidad típica de 1,4 mV por gauss con 5 V, una salida en reposo de 2,5 V y una excursión útil de unos 0,9 V a 4,1 V (aproximadamente ±1000 G antes de saturar). Es ratiométrico: sensibilidad y punto de reposo son proporcionales a la alimentación (tema 3), de modo que conviene usar la misma alimentación como referencia del ADC.

La polaridad queda reflejada en el signo: un polo sur frente a la cara marcada sube la salida por encima de 2,5 V; un polo norte la baja. La conversión es la de un sensor lineal (tema 10):

B [G] = (V − 2,5 V) / 0,0014 V/G
const float VREF = 5.0;
const float V_REPOSO = 2.5;                       // salida sin campo: Vcc/2
const float SENS = 0.0014;                        // V por gauss (SS49E)

float campoGauss() {
    float v = analogRead(A0) * VREF / 1023.0;
    return (v - V_REPOSO) / SENS;                 // positivo o negativo según el polo
}

La resolución en campo es la del ADC: un escalón de 4,89 mV equivale a 4,89 / 1,4 ≈ 3,5 G. Por eso un Hall lineal sin amplificación no ve el campo de la Tierra (0,5 G equivale a 0,7 mV: menos de una quinta parte de un escalón) y ve bien un imán cercano. Con el ruido y el desplazamiento del punto de reposo (que varía con la temperatura y entre unidades), conviene medir el reposo sin imán al arrancar y restarlo, exactamente como la tara de la balanza del tema 22.

Medir la distancia a un imán

Como el campo de un imán cae con el cubo de la distancia, un Hall lineal fijo y un imán que se acerca o se aleja permiten estimar distancias: d = (K / B)1/3, con K obtenido en una calibración (se mide el campo a una distancia conocida: K = B × d³). La sensibilidad es excelente cerca y mala lejos: a 20 mm, un escalón de 3,5 G sobre 25 G es un 14 % del campo, es decir, un error de distancia de aproximadamente un 5 % (la raíz cúbica atenúa el error). A 30 mm, con 7,4 G, un escalón equivale al 47 % del campo y la medición se vuelve gruesa; a 40 mm, con 3 G, el sensor ya no la distingue del ruido. Y cerca del imán el sensor se satura: a 5 mm, el campo de este ejemplo sería 1600 G y la salida se queda en su tope. El rango útil es, entonces, entre unas pocas veces el valor de saturación y unas pocas veces el ruido.

La medición depende además de la orientación y la posición lateral del imán: girarlo o desplazarlo cambia el campo sin que la distancia cambie. Un Hall lineal sirve para detectar la posición relativa en una geometría mecánica fija (un pedal, un joystick, un caudalímetro de paleta), no para medir una distancia arbitraria.

Una aplicación muy extendida del mismo principio es la medición de corriente: sensores como el ACS712 colocan el conductor bajo un sensor Hall y entregan una tensión proporcional a la corriente (185 mV/A en la versión de 5 A, sobre 2,5 V de reposo), con aislamiento galvánico. Es la vía rápida para medir la corriente de un motor sin una resistencia en serie.

06 · El vector completo

Magnetómetros y brújula

Un magnetómetro de tres ejes entrega las componentes (Bx, By, Bz) del campo en las tres direcciones, con una sensibilidad suficiente para el campo terrestre (décimas de gauss, con resolución de miligauss). Los módulos comunes son digitales por I2C: el HMC5883L (descatalogado pero omnipresente), su sucesor y clon QMC5883L (dirección 0x0D; los módulos GY-271 suelen traer este último), el LIS3MDL o el MMC5603. Sus rangos son de unos ±4 a ±16 gauss (±400 a ±1600 µT), así que un imán cercano los satura.

La aplicación clásica es la brújula electrónica: con el módulo horizontal, el campo terrestre apunta al norte magnético, y el rumbo (heading) es el ángulo de ese vector respecto del eje X del sensor:

rumbo = atan2(By, Bx)  (convención del modelo; los signos dependen del montaje)

El resultado se expresa de 0° a 360° y apunta al norte magnético; para el norte geográfico se suma la declinación del lugar (el ángulo entre ambos, que va de unos pocos grados a decenas según la ubicación y cambia lentamente con los años). Pero entre la fórmula y una brújula que funcione hay tres problemas de implementación, y los tres se resuelven en el programa:

  • Hard-iron (hierro duro). Imanes permanentes, altavoces y la corriente de los cables que viajan con el sensor suman un campo constante al de la Tierra. En el diagrama de By contra Bx girando el módulo, los puntos dibujan una circunferencia centrada en la distorsión, no en el origen. Se corrige restando el desplazamiento (offset) de cada eje, que se estima como el punto medio entre el máximo y el mínimo medidos durante un giro completo.
  • Soft-iron (hierro blando). Piezas de hierro o níquel cercanas deforman el campo y convierten la circunferencia en una elipse. Se corrige a primera aproximación con un factor de escala por eje, calculado con la amplitud de cada eje respecto del promedio.
  • Inclinación. El campo terrestre no es horizontal sino que se hunde en el suelo con una inclinación (en latitudes medias, de 30° a 60° hacia abajo). Si el módulo se inclina, la componente vertical se proyecta sobre los ejes horizontales y el rumbo se equivoca. Con una inclinación de 10° y una inclinación del campo de 40°, el error llega a unos 9°. La compensación de inclinación usa un acelerómetro (tema 20) para conocer el cabeceo y el alabeo y proyectar el campo en el plano horizontal antes de calcular el rumbo.
float minX =  1e9, maxX = -1e9, minY =  1e9, maxY = -1e9;
float offX = 0, offY = 0, escX = 1, escY = 1;

void acumularExtremos(float bx, float by) {            // se llama mientras se gira el módulo en horizontal
    minX = min(minX, bx); maxX = max(maxX, bx);
    minY = min(minY, by); maxY = max(maxY, by);
}

void calcularCalibracion() {
    offX = (maxX + minX) / 2;                          // hard-iron: centro de la circunferencia
    offY = (maxY + minY) / 2;
    float dx = (maxX - minX) / 2, dy = (maxY - minY) / 2;
    float promedio = (dx + dy) / 2;
    escX = promedio / dx;                              // soft-iron aproximado: iguala las amplitudes
    escY = promedio / dy;
}

float rumboGrados(float bx, float by, float declinacion) {
    float x = (bx - offX) * escX;
    float y = (by - offY) * escY;
    float r = atan2(y, x) * RAD_TO_DEG;
    if (r < 0) r += 360.0;
    r += declinacion;
    if (r >= 360.0) r -= 360.0;
    return r;
}

La calibración es indispensable y debe hacerse en el lugar de uso, con el módulo montado definitivamente en su carcasa y con todos los demás componentes encendidos (motores, altavoces, pantallas). Cualquier cambio posterior (otro cable, un imán nuevo en el chasis) obliga a repetirla. Y las perturbaciones variables (el arranque de un motor) no se corrigen con un offset fijo: el sensor debe alejarse de ellas o medirse con ellas apagadas.

07 · Elegir

Comparación y elección

Sensores magnéticos del tema.
SensorSalidaCampo que veAlimentaciónUso ideal
Interruptor reedContactoPocos mT (imán cercano)No necesitaPuertas y ventanas; baja corriente; lo más barato
Hall digitalBit con histéresis, colector abiertoDecenas de gauss4,5 a 24 VContar vueltas, finales de carrera, motores sin escobillas
Hall lineal (SS49E)Tensión analógica ratiométrica±1000 G, 3,5 G por escalón≈ 5 VPosición relativa de un imán, corriente (ACS712)
Magnetómetro de 3 ejesI2C, digital±4 a ±16 G, miligauss de resolución3,3 VBrújula; detección de masas de hierro

Una pauta práctica: un reed cuando el imán es grande, la corriente es mínima y el costo importa; un Hall digital cuando hay que contar o detectar a cierta velocidad o con vibraciones; un Hall lineal cuando se quiere una medida proporcional de un imán cercano; un magnetómetro solo para el campo débil de la Tierra, lejos de imanes. Y en las vueltas o el ángulo de un eje, un sensor de ángulo magnético con el conversor integrado (como el AS5600) combina un Hall con electrónica: lo vemos con los encoders en el tema 25.

08 · Analogía con programación

La caída de 1/d³, el Hall lineal y la calibración de la brújula

Probemos la lógica del tema con tres simulaciones. Primero, un Hall lineal tipo SS49E frente a un imán que da 200 G a 10 mm: ¿qué campo, tensión y cuentas se obtienen a distintas distancias y qué distancia estima el programa, con sus límites por saturación y por escalón del ADC? Segundo, una brújula con un offset hard-iron de (+12, −8) µT: error de rumbo sin calibrar y calibrando con el punto medio de los extremos. Tercero, el error por inclinación.

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

# ---- Hall lineal (SS49E: 1,4 mV/G, reposo 2,5 V, excursión 0,9–4,1 V) frente a un imán ----
K = 2e5               # B = K / d³ (G, d en mm): 200 G a 10 mm
SENS = 0.0014         # V por gauss

print("d (mm)  B real (G)    V      cuentas  B estimado (G)  d estimada (mm)")
for d in (5, 10, 20, 30, 40):
    B = K / d ** 3
    V = min(4.1, max(0.9, 2.5 + SENS * B))                 # la salida satura en sus topes
    cuentas = round(V / 5 * 1023)
    B_est = (cuentas * 5 / 1023 - 2.5) / SENS
    d_est = (K / B_est) ** (1 / 3) if B_est > 0 else float("nan")
    print(f"{d:5d}  {B:9.1f}  {V:6.3f}  {cuentas:7d}  {B_est:13.1f}  {d_est:14.1f}")
print(f"Un escalón del ADC equivale a {5 / 1023 / SENS:.2f} G")

# ---- Brújula: offset hard-iron de (+12, -8) µT con un campo horizontal de 25 µT ----
H, OX, OY = 25.0, 12.0, -8.0


def sensor(rumbo, ox=OX, oy=OY):
    r = math.radians(rumbo)
    return H * math.cos(r) + ox, H * math.sin(r) + oy


def rumbo_de(bx, by):
    return math.degrees(math.atan2(by, bx)) % 360


def error(calculado, real):
    return (calculado - real + 540) % 360 - 180            # diferencia en (-180, 180]


puntos = [(h, *sensor(h)) for h in range(0, 360, 10)]       # un giro completo en pasos de 10°
sin_calibrar = max(abs(error(rumbo_de(bx, by), h)) for h, bx, by in puntos)

cx = (max(p[1] for p in puntos) + min(p[1] for p in puntos)) / 2       # punto medio de los extremos
cy = (max(p[2] for p in puntos) + min(p[2] for p in puntos)) / 2
calibrado = max(abs(error(rumbo_de(bx - cx, by - cy), h)) for h, bx, by in puntos)
print()
print(f"Offset estimado: ({cx:.1f}, {cy:.1f}) µT")
print(f"Error máximo de rumbo sin calibrar: {sin_calibrar:.1f}°; calibrado: {calibrado:.2f}°")

# ---- Error por inclinación (campo terrestre con inclinación de 40°, módulo inclinado 10°) ----
Z = H * math.tan(math.radians(40))
inclinacion = math.radians(10)
peor = 0.0
for h in range(360):
    r = math.radians(h)
    bx = H * math.cos(r) * math.cos(inclinacion) - Z * math.sin(inclinacion)
    by = H * math.sin(r)
    peor = max(peor, abs(error(rumbo_de(bx, by), h)))
print(f"Componente vertical del campo: {Z:.1f} µT; error máximo con 10° de inclinación: {peor:.1f}°")

Resultado: a 10 mm el Hall mide 200 G, 2,78 V y 569 cuentas, y el programa estima 200,7 G y 10,0 mm; a 20 mm, 25 G y 19,7 mm; a 30 mm, el campo es de solo 7,4 G, un escalón del ADC (3,49 G) pesa un 47 % y la distancia estimada es 28,4 mm; a 40 mm, 3,1 G se estiman como 1,7 G y 48,6 mm: ya no se mide. A 5 mm el campo (1600 G) satura la salida en 4,1 V, el programa lee 1143 G y estima 5,6 mm. La brújula con un offset de (+12, −8) µT tiene un error máximo de 35,2° sin calibrar y de 0,00° al restar el punto medio de los extremos (12,0; −8,0). Una inclinación de 10° con un campo inclinado 40° (componente vertical de 21 µT) produce hasta 8,6° de error sin compensación.

Es un modelo ideal: sin ruido, con un imán perfectamente dipolar y una distorsión solo hard-iron. El hierro blando real convierte la circunferencia en una elipse y requiere el escalado por eje.

09 · Exploración interactiva

Un Hall frente a un imán y una brújula calibrable

El primer instrumento lleva un imán frente a un Hall lineal y a un Hall digital unipolar: elegí la distancia, la polaridad y la fuerza del imán, y mirá el campo, la tensión, la distancia estimada, la saturación y la histéresis del bit digital. Los umbrales del digital (35 G para activarse y 25 G para liberarse) son ilustrativos. El segundo es una brújula con un magnetómetro: agregá distorsión hard-iron y soft-iron, inclinación del módulo, calibrá «girando» el módulo y comprobá cuánto se equivoca el rumbo.

Instrumento 1: imán, Hall lineal y Hall digital

Campo real—
Tensión · cuentas—
Campo que estima el programa—
Distancia estimada (con K del imán mediano)—
Hall digital unipolar
liberado

Instrumento 2: brújula con magnetómetro (campo horizontal de 25 µT)

Lectura (Bx · By)—
Calibración guardadaninguna
Rumbo que calcula el programa—
Error en este rumbo—
Error máximo en una vuelta—

Recorrido guiado

  1. Con el imán mediano a 20 mm, polo sur: 25 G, 2,535 V, el Hall lineal estima 26 G (un escalón de 3,5 G) y el digital sigue liberado (25 G está por debajo de su umbral de 35 G).
  2. Acercá el imán a 15 mm (59 G): el Hall digital se activa. Alejalo a 17 mm (41 G): sigue activo. Seguí hasta 19 mm (29 G): sigue activo porque la liberación es a 25 G. Es la histéresis.
  3. Cambiá a polo norte: el campo es negativo, la tensión baja de 2,5 V y el Hall digital unipolar no responde (solo se activa con el polo sur). Un Hall omnipolar sí lo haría.
  4. Acercá el imán hasta 6 o 5 mm: el campo supera los 1000 G y la salida satura en su tope; el campo estimado queda por debajo del real y la distancia, equivocada.
  5. Alejalo a 40 y a 60 mm: el campo cae a 3 G y a 1 G, por debajo de un escalón; la estimación ya no tiene sentido. Activá el ruido para verlo claramente. Un Hall lineal mide bien en un rango de distancias acotado.
  6. Con el imán fuerte, la zona útil se desplaza hacia afuera (satura recién a menos de unos 8 mm) y alcanza más lejos.
  7. En la brújula, con los valores iniciales y sin calibrar, probá rumbos de 0°, 90°, 180° y 270°: el error ronda 20° a 35° por el hard-iron. Presioná «Calibrar»: el error baja a casi cero.
  8. Con la calibración hecha, activá soft-iron (escala de Y distinta de 1) y recalibrá: la corrección de escala lo compensa. Ahora subí la inclinación a 10°: el error reaparece (hasta ~9°) y ningún offset lo corrige; hace falta compensar con un acelerómetro.
Desafío: la brújula del robot

Un robot con motores a 10 cm del magnetómetro. Calibrado con los motores apagados, el rumbo es exacto; al arrancar los motores aparece un campo adicional de unos 8 µT que depende de la corriente. ¿Qué podés hacer? Con el instrumento 2 simulás el efecto agregando 8 µT de hard-iron: el error llega a ≈ 18°. Opciones: alejar el sensor (el campo del motor cae rápido con la distancia), calibrar con los motores encendidos (solo sirve si el campo es constante), leer el magnetómetro solo cuando los motores están parados, o corregir por software en función de la corriente medida. Un offset estático no corrige una perturbación que cambia.

10 · Método de trabajo

Cómo elegir y calibrar un sensor magnético

  1. Definí qué querés saber: presencia, conteo, posición proporcional o rumbo. Eso decide el sensor.
  2. Calculá el campo en tu geometría (imán, distancia, material intermedio) y compará con los umbrales o el rango del sensor.
  3. Mirá la polaridad y la orientación del imán y de la cara sensible. Probá ambas.
  4. Para un Hall digital, usá la histéresis a tu favor y el pull-up si es colector abierto; para un reed, antirrebote de pocos milisegundos.
  5. Para un Hall lineal, medí el reposo sin imán y restalo, calibrá K con una distancia conocida y limitá el rango de uso entre la saturación y el ruido.
  6. Para un magnetómetro, montalo lejos de motores, altavoces y hierro, calibrá en el lugar de uso con todo encendido y compensá la inclinación con un acelerómetro.
  7. Considerá la declinación si el rumbo debe ser geográfico.
  8. Verificá con referencias: una brújula de mano, direcciones conocidas o una tabla de distancias medidas.

Si un Hall «se activa solo», buscá imanes o hierro magnetizado cerca; si la brújula «gira» mal, la calibración, la inclinación y los cables con corriente; si la lectura no es proporcional a la distancia, recordá que el campo cae con el cubo de la distancia y que el imán no esté descentrado.

11 · Comprensión

Confusiones frecuentes

«Un Hall lineal sirve para medir el campo de la Tierra»

No: con 1,4 mV por gauss, los 0,5 G terrestres son 0,7 mV, menos que un escalón del ADC. Para eso hay magnetómetros de alta sensibilidad.

«El campo de un imán es inversamente proporcional a la distancia»

Cae mucho más rápido: aproximadamente con el cubo en un imán pequeño. Duplicar la distancia divide el campo por ocho.

«El Hall digital con histéresis es un defecto»

Es una ventaja: evita el parpadeo cuando el imán se mueve lentamente por el borde de la zona de detección.

«La brújula solo necesita atan2(By, Bx)»

Con perturbaciones hard-iron y soft-iron cercanas, el error de rumbo llega a decenas de grados. Hace falta calibrar y, con inclinación, compensar.

«Con una calibración hecha en el escritorio basta»

Debe hacerse con el módulo montado y todo encendido; cualquier cambio en el entorno magnético invalida los offsets.

«Un imán cualquiera activa cualquier sensor Hall»

Un unipolar solo responde a un polo, y un bipolar con retención necesita el polo opuesto para liberarse. Se prueba con ambos polos.

12 · Práctica guiada

Predecí antes de comprobar

1. Unidades

El campo terrestre en un lugar es de 50 µT. Expresalo en gauss y en miligauss, y calculá qué tensión daría en un Hall de 1,4 mV/G.

Ver solución

50 µT = 0,5 G = 500 mG. En el Hall: 0,5 G × 1,4 mV/G = 0,7 mV, unas siete décimas de milivolt: menos de la quinta parte de un escalón de 4,89 mV. No se ve.

2. Caída con la distancia

Un imán da 200 G a 10 mm. ¿Qué campo hay a 20 mm? ¿Qué tensión entrega un SS49E?

Ver solución

B ∝ 1/d³: duplicar la distancia divide por 8, por lo que a 20 mm el campo es 200 / 8 = 25 G. La tensión es 2,5 V + 25 G × 1,4 mV/G = 2,535 V.

3. De la tensión al campo

Un Hall lineal entrega 2,9 V. ¿Qué campo hay y de qué polo? ¿Cuántos gauss vale un escalón del ADC?

Ver solución

B = (2,9 − 2,5) / 0,0014 = +285,7 G (polo sur). Un escalón de 4,89 mV equivale a 4,89 / 1,4 ≈ 3,5 G.

4. Tacómetro magnético

Una rueda lleva 4 imanes y gira a 1500 RPM, con un Hall digital que cuenta pulsos. ¿Qué frecuencia tienen los pulsos y cuánto dura cada período?

Ver solución

1500 RPM = 25 vueltas/s; con 4 imanes: 25 × 4 = 100 Hz, un pulso cada 10 ms. A 600 RPM serían 40 Hz.

5. Rumbo y calibración

Un magnetómetro lee (Bx, By) = (30, −20) µT y tiene un offset de (10, −5) µT. ¿Qué rumbo da sin corregir y corregido (convención atan2(By, Bx))?

Ver solución

Sin corregir: atan2(−20, 30) = −33,7° → 326,3°. Corregido: (30 − 10, −20 + 5) = (20, −15) → atan2(−15, 20) = −36,9° → 323,1°. El offset introducía un error de 3,2° en este rumbo.

6. Elegir el sensor

Elegí reed, Hall digital, Hall lineal o magnetómetro para: (a) saber si una puerta está cerrada, con una batería que dure años; (b) contar las vueltas de un eje con polvo y vibraciones; (c) medir de forma proporcional la posición de un pedal con un imán; (d) una brújula para un dron.

Ver solución

(a) Reed: sin consumo. (b) Hall digital: sin desgaste, inmune al polvo. (c) Hall lineal: tensión proporcional al campo. (d) Magnetómetro de 3 ejes, calibrado y lejos de motores, con compensación de inclinación usando el acelerómetro.

13 · Síntesis

Ideas para recordar

  • 1 mT = 10 G; el campo terrestre es de 25 a 65 µT (0,25 a 0,65 G) y un imán de neodimio da cientos de mT: una diferencia de mil veces que decide el sensor.
  • El campo de un imán pequeño cae aproximadamente con 1/d³: duplicar la distancia lo divide por ocho.
  • El reed es un contacto accionado por un imán, sin alimentación, con histéresis natural, rebotes breves y vida larga con corrientes bajas.
  • Un Hall digital da un bit con histéresis (BOP > BRP); puede ser unipolar, bipolar con retención u omnipolar, y suele ser de colector abierto.
  • Un Hall lineal (SS49E: 1,4 mV/G, reposo 2,5 V) es ratiométrico; un escalón de 4,89 mV son 3,5 G, así que no ve el campo terrestre.
  • La distancia a un imán se estima con d = (K/B)^(1/3), con buena sensibilidad cerca, mala lejos y saturación demasiado cerca.
  • Un magnetómetro de 3 ejes entrega el vector del campo; el rumbo es atan2(By, Bx), más la declinación para el norte geográfico.
  • El hard-iron suma un offset constante (se corrige con el punto medio entre extremos), el soft-iron deforma la circunferencia en elipse (escala por eje) y la inclinación exige compensar con un acelerómetro.
  • La calibración se hace en el lugar de uso, con todo encendido, y no corrige perturbaciones variables.

¿Listo para el tema 25?

Antes de avanzar, calculá el campo a 30 mm de un imán que da 200 G a 10 mm, explicá por qué un Hall lineal de 1,4 mV/G no sirve de brújula y describí cómo se estima el offset hard-iron de un magnetómetro. Si podés justificar las tres respuestas, ya sabés usar sensores magnéticos.

En el próximo tema estudiamos los encoders incrementales y absolutos: la cuadratura, la resolución, el sentido de giro y los encoders magnéticos.