Electrónica Analógica · Tema 20

Comparador con histéresis

Decidir «sí o no» sin temblar: el operacional sin realimentación negativa, el ruido que lo hace conmutar de más y la realimentación positiva que le da memoria. Cómo se calculan los dos umbrales, cuánta histéresis hace falta y cómo se conecta el resultado a un microcontrolador.

≈ 70 minutos Cuentas con LM358 de 5 V y con LM393 Incluye 2 simuladores y Python

01 · Punto de partida

Pasar de medir a decidir

Los temas anteriores amplificaban: la salida era una versión escalada de la entrada. Pero muchas veces no hace falta el valor, solo una decisión: ¿hace frío o no?, ¿el tanque está vacío?, ¿se hizo de noche?, ¿la batería bajó de cierto nivel? Un comparador responde esa pregunta con un solo bit analógico: la salida está arriba o abajo, según la entrada esté sobre o bajo un umbral.

Una escena típica. Un sensor de luz enciende una lámpara cuando oscurece. Al atardecer la luz baja despacio, y justo cerca del umbral el ruido de la señal (el parpadeo de la red, una sombra que pasa) la hace subir y bajar unos milivoltios. Con un comparador simple, la lámpara se enciende y apaga decenas de veces en pocos segundos: el relé tabletea y el foco parpadea. Con histéresis hay un umbral para encender y otro, más abajo, para apagar: la lámpara se enciende una sola vez.

Para un programador es un if (x > umbral) con el mismo problema que tiene en software cualquier lectura ruidosa de un ADC: sin una banda muerta, el estado oscila. La histéresis es el equivalente en hardware de guardar el estado anterior y exigir un cambio claro para modificarlo.

  • ¿Cómo se cablea el comparador más simple y qué tensiones entrega?
  • ¿Qué es el repiqueteo y por qué aparece justo en el umbral?
  • ¿Cómo la realimentación positiva crea dos umbrales y cómo se calculan?
  • ¿Cuánta histéresis hace falta, y qué resistores la fijan?
  • ¿Qué hay que cuidar al conectar la salida a un microcontrolador?

02 · Comparador

El comparador sin lazo

Un operacional sin realimentación (Tema 14) tiene una ganancia de unas 105: una diferencia de apenas 50 µV entre las patas ya lo lleva a un extremo. Se comporta como un comparador: si V+ > V−, la salida va al riel alto; si V+ < V−, al riel bajo. La señal en la pata − y la referencia en la pata + dan una salida invertida (Vin alto → salida baja); intercambiando las patas, no invertida.

Vin frente a Vrefsin lazo (ganancia ≈ 105) →riel ALTO o riel BAJO
Salida de un LM358 usado como comparador, sin carga.
AlimentaciónNivel BAJONivel ALTOComentario
5 V simple≈ 0,05 V≈ 3,5 V (VCC − 1,5 V)No llega a 5 V: no es lógica de 5 V
±9 V≈ −7,5 V≈ +7,5 VExcursión de 15 V

Son los mismos rieles del Tema 14. Tres límites que conviene tener presentes desde ya: la salida del LM358 no llega al riel de alimentación; es lenta para esto (el slew rate de 0,3 V/µs hace que recorrer 3 V lleve unos 10 µs); y sus entradas solo admiten tensiones hasta VCC − 1,5 V (3,5 V con 5 V). Para decisiones rápidas existen comparadores dedicados (sección 07).

03 · Repiqueteo

El borde es una zona de guerra

Imaginá una señal que pasa despacio por el umbral de 2,5 V con 100 mV de ruido (±100 mV, 200 mV pico a pico). Cuando la señal limpia está lejos del umbral, el ruido no alcanza para cruzarlo. Pero en la franja de ±100 mV alrededor de 2,5 V, cada pico de ruido cruza la línea, y la salida conmuta. Mientras la señal avanza lentamente por esa franja, el comparador conmuta decenas de veces en lugar de una: el repiqueteo (chatter).

Sin histéresis

Un umbral: 2,50 V

Una rampa lenta de 2,30 a 2,70 V con ±100 mV de ruido produce unas 55 conmutaciones (simulación de la sección 09). Relés que tabletean, LED que parpadean, contadores que suman de más.

Con histéresis

Dos umbrales, banda > ruido

Con una banda de 314 mV (mayor que los 200 mV de ruido pico a pico) la misma rampa produce una conmutación. Para volver a conmutar, la señal tiene que cruzar la banda entera.

El repiqueteo no solo viene del ruido de la señal. También lo provoca el propio circuito: cuando la salida conmuta, la corriente en la alimentación o el acople capacitivo entre la salida y la entrada puede mover un poco la entrada y volver a disparar el comparador. Con una señal lenta, un comparador rápido puede incluso oscilar al cruzar el umbral. La histéresis cura ambas causas.

04 · Disparador de Schmitt

Realimentación positiva: el disparador de Schmitt

El truco es devolver una fracción de la salida a la pata + (realimentación positiva, Tema 15): el umbral deja de ser fijo y pasa a depender del estado de la salida. En el circuito inversor, la señal Vin va a la pata −. La pata + queda conectada a la referencia Vref a través de R1, y a la salida a través de Rf.

Vin → pata −pata + = Vref + β·(Vout − Vref), con β = R1/(R1 + Rf) →Vout → vuelve a la pata +
  1. 1
    El nodo + es un divisor.

    Entre Vref (por R1) y Vout (por Rf): V+ = Vref + (Vout − Vref)·R1/(R1 + Rf).

  2. 2
    Con la salida en ALTO, el umbral sube.

    V+ = Vref + β·(VALTO − Vref): para que la salida baje, Vin tiene que superar ese valor, el umbral superior.

  3. 3
    Con la salida en BAJO, el umbral baja.

    V+ = Vref + β·(VBAJO − Vref): para que la salida vuelva a subir, Vin tiene que caer por debajo de ese valor, el umbral inferior.

Con el LM358 de 5 V (VALTO = 3,5 V, VBAJO = 0,05 V), Vref = 2,5 V y R1 = Rf = 10 kΩ (β = 0,5), los umbrales son 3,00 V (con la salida en ALTO) y 1,275 V (con la salida en BAJO): una banda de 1,725 V. Notá que no está centrada en Vref, porque los niveles de salida no son simétricos respecto de 2,5 V (la salida sube 1,0 V por encima y baja 2,45 V por debajo). Si querés una banda centrada, Vref debe ser el punto medio entre los niveles de salida: (3,5 + 0,05)/2 = 1,78 V.

Subiendo
Con la salida en ALTO, no pasa nada hasta que Vin cruza el umbral superior. Ahí la salida cae a BAJO y el umbral baja al inferior: la salida «se recuerda» y no vuelve por pequeños retrocesos.
Bajando
Con la salida en BAJO, el umbral es el inferior. Recién al cruzarlo hacia abajo, la salida sube y el umbral vuelve al superior.
Zona de memoria
Entre los dos umbrales el estado depende de la historia: no de la entrada actual. Es un bit de memoria: el comparador con histéresis es un flip-flop con entrada analógica.
Realimentación positiva
Acelera el cambio: apenas la salida empieza a moverse, mueve el umbral en el mismo sentido y termina de conmutar de golpe. Por eso los flancos de salida son rápidos aunque la entrada sea lenta.

05 · Variante

La versión no inversora

Si necesitás que una entrada alta dé una salida alta, se intercambian los papeles: Vref va a la pata −, y la señal entra por R1 a la pata +, que además recibe la realimentación Rf desde la salida. La conmutación ocurre cuando el nodo + cruza Vref; de ahí se despeja Vin:

Los dos disparadores con Vref = 2,5 V y salida de 0,05 a 3,5 V (LM358 de 5 V).
EsquemaR1RfUmbral inferiorUmbral superiorHistéresis
Inversor10 kΩ10 kΩ1,275 V3,000 V1,725 V
Inversor10 kΩ100 kΩ2,277 V2,591 V314 mV
Inversor10 kΩ330 kΩ2,428 V2,529 V101 mV
No inversor10 kΩ100 kΩ2,400 V2,745 V345 mV
No inversor10 kΩ330 kΩ2,470 V2,574 V105 mV

Una diferencia práctica entre los dos: en el inversor la señal ve la pata − (impedancia de entrada altísima), mientras que en el no inversor la señal alimenta a R1 y a Rf hacia la salida: carga a la fuente con R1 (Tema 10). Además, en el no inversor el umbral depende de los niveles de salida (que en un LM358 cambian con la carga y la temperatura), y en el inversor también, pero atenuados por β.

06 · Diseño

Diseñar la histéresis

Elegir los resistores es un problema de tres pasos: cuánta histéresis, qué relación de resistores y qué valores concretos.

  1. 1
    Medí el ruido pico a pico de la entrada.

    Con el osciloscopio (Tema 8) o con el ADC (Tema 6). Una señal con ±100 mV de ruido tiene 200 mV pico a pico.

  2. 2
    Elegí una histéresis mayor que ese valor, con margen.

    Una buena regla es 1,5 a 2 veces el ruido pico a pico, pero no más: la banda come sensibilidad (con 1,7 V de banda no detectás cambios de 0,5 V). Para 200 mV de ruido, entre 300 y 400 mV.

  3. 3
    Calculá β (o R1/Rf) y elegí resistores de la serie.

    Inversor: β = histéresis / (VALTO − VBAJO) y Rf = R1·(1/β − 1). Con R1 = 10 kΩ para 300 mV: β = 0,087 → Rf ≈ 105 kΩ → 100 kΩ (E12, da 314 mV).

Algunas decisiones prácticas:

  • R1 y Rf grandes: mantienen baja la corriente que la salida entrega al divisor (con 10 kΩ y 100 kΩ circulan unas decenas de microamperios). Pero R1 en paralelo con Rf no debería superar unos 100 kΩ, para que la corriente de polarización de 45 nA del LM358 no corra los umbrales (45 nA × 100 kΩ = 4,5 mV).
  • Vref firme: la referencia alimenta un resistor de R1; si es un divisor de impedancia alta, hay que tenerlo en cuenta (se suma a R1) o poner un seguidor (el segundo operacional del LM358, Tema 18).
  • La tolerancia: con resistores de 1 %, β varía como 2 %: los umbrales se corren unos pocos milivoltios en una banda de 314 mV, y la histéresis (que es una diferencia) queda dentro del 2 % de su valor. No es el parámetro crítico.

07 · En el mundo real

Comparadores reales e interfaz con el micro

El LM358 sirve para aprender y para decisiones lentas. Para hacerlo bien existen los comparadores dedicados, como el LM393 (dos comparadores en un DIP-8 con la misma distribución de patas que el LM358). Se diferencian en tres cosas:

Operacional (LM358)

Salida «de rail a rail impuesto»

Salida push-pull de 0,05 a VCC − 1,5 V. Lento (≈ 10 µs para recorrer 3 V). Se recupera mal de la saturación profunda. Pensado para realimentación negativa.

Comparador dedicado (LM393)

Colector abierto

La salida es un transistor que baja a masa; necesita un resistor de pull-up (por ejemplo, 10 kΩ) a la tensión lógica que quieras. Respuesta típica de ≈ 1 µs. Pensado para saturar.

Con el LM393, el resistor de pull-up ofrece una ventaja: la salida sube hasta la tensión a la que lo conectes (3,3 V o 5 V), de modo que se adapta directamente al microcontrolador. Cuidado con la realimentación positiva: la salida de colector abierto sube a través del pull-up, así que ese resistor entra en el divisor de histéresis (el nivel ALTO queda en la tensión del pull-up, y el divisor de Rf conviene que sea mucho mayor que el pull-up para no deformarlo).

Conectar la salida a un microcontrolador

  • Micro de 5 V (por ejemplo, ATmega): el nivel ALTO de 3,5 V del LM358 suele superar el umbral de entrada alto (≈ 0,6·VCC = 3,0 V), pero con poco margen. Un pull-up o un comparador con colector abierto es más seguro.
  • Micro de 3,3 V: 3,5 V excede la alimentación del micro y puede dañarlo por las protecciones de entrada. Hay que limitar: un divisor o, mejor, un LM393 con pull-up a 3,3 V.
  • Interrupciones: un comparador con histéresis da flancos limpios, aptos para disparar una interrupción sin necesidad de debounce por software.

Y una observación de programador: hacer lo mismo por software (leer el ADC y comparar con dos umbrales) es perfectamente válido, y es lo que conviene si el micro ya está despierto leyendo. El comparador analógico con histéresis se justifica cuando hace falta una respuesta rápida, cuando no hay micro o está dormido (el comparador despierta al micro con un flanco), o cuando se quiere ahorrar el ADC.

08 · Simuladores

Dos experimentos: el repiqueteo y el lazo de histéresis

El primero hace pasar una rampa lenta con ruido por un comparador, con y sin histéresis, y cuenta las conmutaciones. El segundo dibuja la curva de transferencia del disparador de Schmitt (inversor o no inversor) y te deja recorrerla con la entrada para ver cómo el estado depende de la historia.

SIMULADOR 20

Cazar el repiqueteo

umbral = V_ref + β·(V_out − V_ref)

Entrada ruidosa, umbrales y salida del comparador en el tiempo Una rampa lenta con ruido cruza la zona de los umbrales. Se dibujan los umbrales, la entrada y la salida; los puntos rojos marcan cada conmutación. ENTRADA (TURQUESA) · UMBRALES (AMARILLO) · SALIDA (NARANJA) · CONMUTACIONES (ROJO)
Umbral inferior / superior2,500 / 2,500 V
Histéresis0 mV
Ruido pico a pico200 mV
Conmutaciones0
Margen (histéresis − ruido p-p)−200 mV
EstadoRepiquetea

Recorrido guiado (8 minutos)

  1. 1
    Pestaña ①, «Sin histéresis».

    La entrada es una rampa de 2,30 a 2,70 V con ±100 mV de ruido. El umbral es único (2,50 V) y la salida conmuta decenas de veces (los puntos rojos se amontonan en la franja de ±100 mV). Es el repiqueteo.

  2. 2
    Pasá a «Poca (101 mV)».

    Rf = 330 kΩ: la banda es de 101 mV, menor que los 200 mV de ruido pico a pico. Hay menos conmutaciones, pero siguen. El margen es negativo: una histéresis menor que el ruido no alcanza.

  3. 3
    Pasá a «Justa (314 mV)».

    Rf = 100 kΩ: la banda supera el ruido pico a pico y el comparador conmuta una sola vez. El margen es positivo (+114 mV).

  4. 4
    Pasá a «Mucha (1,7 V)».

    Rf = 10 kΩ: cero conmutaciones. La rampa de 2,3 a 2,7 V nunca llega al umbral superior de 3,0 V, así que la salida no cambia jamás. Tanta histéresis hizo sordo al comparador.

  5. 5
    Pasá a «Mucho ruido».

    Ruido de ±300 mV (600 mV pico a pico) con la banda de 314 mV: vuelve el repiqueteo. La histéresis debe crecer con el ruido, o hay que filtrar la entrada (Tema 23).

  6. 6
    Pestaña ②, «Inversor 10k / 10k».

    Los umbrales son 1,275 y 3,000 V. Con Vin = 1,00 V la salida está en ALTO. Subí Vin a 2,5 V: sigue en ALTO, aunque ya pasaste por Vref. Recién al cruzar 3,000 V cae a BAJO.

  7. 7
    Bajá Vin desde 4 V.

    La salida sigue en BAJO al pasar 3,0 y 2,5 V. Solo vuelve a ALTO cuando Vin cae por debajo de 1,275 V. Entre 1,275 y 3,000 V el estado depende de por dónde llegaste: la memoria.

  8. 8
    Cambiá a «No inversor 10k / 100k».

    El lazo se invierte: con Vin bajo la salida está en BAJO, y sube al superar 2,745 V; vuelve a bajar al caer de 2,400 V. La histéresis es de 345 mV. Es el mismo lazo, recorrido en sentido contrario.

Preguntas para pensar

  1. En el simulador ①, con ruido de ±50 mV, ¿qué histéresis mínima alcanza?
  2. ¿Por qué los umbrales del inversor de 10k/10k no están centrados en 2,5 V?
  3. ¿Cuándo preferís el esquema no inversor sobre el inversor?
Ver respuestas sugeridas
  1. El ruido pico a pico es 100 mV: con Rf = 330 kΩ (101 mV) apenas iguala el ruido; con 100 kΩ (314 mV) hay margen cómodo. Con 1 MΩ (34 mV) no alcanza.
  2. Porque la salida no es simétrica respecto de Vref: sube 1,0 V por encima de 2,5 V (hasta 3,5 V) y baja 2,45 V por debajo (hasta 0,05 V). El umbral superior se desplaza β × 1,0 V y el inferior β × 2,45 V, en sentido contrario.
  3. Cuando necesitás que la salida siga el sentido de la entrada (entrada alta → salida alta) y la fuente puede entregar la corriente de R1 + Rf. El inversor es preferible cuando la fuente es débil (la entrada es la pata − de impedancia alta) y la inversión no importa o se corrige después.

09 · En código

Decidir en Python

Cuatro herramientas: los umbrales de los dos esquemas, la máquina de estados del Schmitt con el conteo de conmutaciones, el cálculo de Rf para una histéresis dada y la misma histéresis hecha por software sobre un ADC.

Python en tu navegador. Los bloques son editables: cambiá los valores y presioná «Ejecutar Python». La primera vez tarda unos segundos en cargar. Ejecutalos en orden.

Paso 1: los umbrales

ALTO, BAJO = 3.5, 0.05          # LM358 con 5 V simples y sin carga


def umbrales_inversor(r1, rf, vref=2.5, alto=ALTO, bajo=BAJO):
    # entrada a la pata -, Vref -> R1 -> pata +, salida -> Rf -> pata +
    beta = r1 / (r1 + rf)
    return vref + beta * (bajo - vref), vref + beta * (alto - vref)     # (baja, sube)


def umbrales_no_inversor(r1, rf, vref=2.5, alto=ALTO, bajo=BAJO):
    # Vin -> R1 -> pata +, salida -> Rf -> pata +, Vref en la pata -
    k = r1 / rf
    return vref * (1 + k) - alto * k, vref * (1 + k) - bajo * k          # (baja, sube)


for nombre, f in (("inversor", umbrales_inversor), ("no inversor", umbrales_no_inversor)):
    for r1, rf in ((10e3, 10e3), (10e3, 330e3), (10e3, 100e3)):
        lo, hi = f(r1, rf)
        print(f"{nombre:12s} R1={r1/1e3:g}k Rf={rf/1e3:g}k: umbrales {lo:.3f} / {hi:.3f} V, histéresis {(hi-lo)*1000:.0f} mV, centro {(hi+lo)/2:.3f} V")

Es la tabla de la sección 05. Con 10k/10k el inversor da 1,275 / 3,000 V (banda de 1,725 V, centrada en 2,14 V y no en 2,5 V). El no inversor con 10k/10k da 1,5 / 4,95 V: un umbral superior casi igual a la alimentación, poco práctico.

Paso 2: la máquina de estados y el conteo de conmutaciones

import random


def comparar(vin, estado, lo, hi, invierte=True):
    if invierte:   # Vin alto -> salida BAJA
        if vin > hi: return BAJO
        if vin < lo: return ALTO
    else:
        if vin > hi: return ALTO
        if vin < lo: return BAJO
    return estado                                  # entre los umbrales: se queda como estaba


def flancos(sec, lo, hi, invierte=True):
    e, n = ALTO if invierte else BAJO, 0
    for v in sec:
        nuevo = comparar(v, e, lo, hi, invierte)
        n += nuevo != e
        e = nuevo
    return n


random.seed(7)
deriva = [2.30 + 0.4 * i / 399 for i in range(400)]
ruido = [random.uniform(-0.1, 0.1) for _ in deriva]
sec = [a + b for a, b in zip(deriva, ruido)]
print("rampa lenta 2,30 -> 2,70 V con ruido de ±100 mV:")
print("  un solo umbral en 2,50 V:", flancos(sec, 2.5, 2.5))
for rf in (1e6, 330e3, 100e3, 10e3):
    lo, hi = umbrales_inversor(10e3, rf)
    print(f"  Rf={rf/1e3:g}k: histéresis {(hi-lo)*1000:.0f} mV -> flancos {flancos(sec, lo, hi)}")

Un solo umbral: 55 conmutaciones. Con 34 mV de banda: 39; con 101 mV: 11; con 314 mV (mayor que los 200 mV de ruido pico a pico): una; con 1,7 V: ninguna (la rampa de 0,4 V nunca alcanza el umbral superior de 3,0 V). El código es el mismo comparar() de siempre: una máquina de dos estados con memoria.

Paso 3: elegir Rf para una histéresis dada

E12 = [10, 12, 15, 18, 22, 27, 33, 39, 47, 56, 68, 82]


def elegir_rf(histeresis, r1=10e3, alto=ALTO, bajo=BAJO):
    beta = histeresis / (alto - bajo)
    ideal = r1 * (1 / beta - 1)
    candidatos = [v * 10 ** d for d in range(0, 6) for v in E12]
    rf = min(candidatos, key=lambda v: abs(v - ideal))
    lo, hi = umbrales_inversor(r1, rf)
    print(f"Histéresis pedida {histeresis * 1000:4.0f} mV: Rf ideal {ideal / 1e3:6.1f}k -> {rf / 1e3:6.0f}k, umbrales {lo:.3f} / {hi:.3f} V, histéresis real {(hi - lo) * 1000:.0f} mV")
    return rf


for h in (0.1, 0.2, 0.3, 0.5):
    elegir_rf(h)

Para 200 mV la fórmula pide 162 kΩ y la E12 entrega 150 kΩ (216 mV) o 180 kΩ (182 mV). Si el ruido es de 150 mV pico a pico, el de 216 mV deja un margen de 1,4×.

Paso 4: la misma histéresis en software

LSB = 5.0 / 1024                      # ADC de 10 bits y 5 V (Tema 6): 4,88 mV por paso


def a_cuentas(volt):
    return round(volt / LSB)


lo, hi = umbrales_inversor(10e3, 330e3)
print(f"Umbrales {lo:.3f} / {hi:.3f} V -> cuentas {a_cuentas(lo)} / {a_cuentas(hi)} (banda de {a_cuentas(hi) - a_cuentas(lo)} cuentas)")

# el mismo código de comparación, pero sobre enteros del ADC
muestras = [int(v / LSB) for v in sec]
encendido, cambios = False, 0
for m in muestras:
    if not encendido and m > a_cuentas(hi):
        encendido, cambios = True, cambios + 1
    elif encendido and m < a_cuentas(lo):
        encendido, cambios = False, cambios + 1
print("Cambios de estado en software con la banda de 101 mV:", cambios)

Los umbrales caen en las cuentas 497 y 518: una banda de solo 21 pasos del ADC. Con el mismo ruido que antes, el resultado es el mismo que con el Schmitt analógico (11 cambios con esa banda): la lógica es idéntica y hay que dimensionarla igual, midiendo el ruido.

10 · Analogía de programador

Debounce, banda muerta y un bit de memoria

El mismo oficio, en dos mundos.
En softwareEn el comparador
if (x > umbral)El comparador sin lazo
Un contador que suma de más por lecturas ruidosasEl repiqueteo: decenas de flancos donde había uno
Un debounce de pulsador por tiempo (ignorar 20 ms)La histéresis: ignora ruido por amplitud en lugar de por tiempo
Un termostato que enciende a 19 °C y apaga a 21 °CLos dos umbrales del Schmitt; el relé no tabletea
Una variable de estado que sobrevive entre llamadasLa salida que «recuerda» y mueve el umbral
Un flip-flop o latch de 1 bitEl disparador de Schmitt: bit de memoria con entrada analógica
Una máquina de estados con transiciones guardadas (if estado == ALTO and x > hi)El umbral que depende del estado de la salida
Un parámetro de «sensibilidad» que no debe ser ni muy bajo ni muy altoEl ancho de la histéresis: mayor que el ruido, menor que el cambio que querés detectar

La octava fila resume el diseño: demasiada poca banda deja pasar el ruido; demasiada banda pierde señal. Y la quinta explica por qué esto es otra cosa que «hacerlo más lento»: la histéresis no demora el cambio, lo vuelve condicional a una variación suficiente.

11 · Comprensión

Confusiones frecuentes

«La salida del comparador es lógica de 5 V»

Con un LM358 de 5 V sube a unos 3,5 V y baja a 0,05 V. Para un micro de 5 V es marginal; para uno de 3,3 V es peligrosa. Con un comparador de colector abierto y un pull-up a la tensión lógica, el nivel es el que vos elegís.

«La histéresis es un retardo»

No: el comparador conmuta tan rápido como siempre cuando la entrada cruza el umbral. Lo que cambia es cuál umbral debe cruzar, según el estado actual. Y los flancos de salida son más rápidos, no más lentos, por la realimentación positiva.

«Mientras más histéresis, mejor»

Una banda excesiva vuelve sordo al circuito: con 1,7 V de banda no detectás un cambio de 0,5 V. Hay que medir el ruido y elegir una banda de 1,5 a 2 veces el ruido pico a pico.

«Los umbrales están centrados en Vref»

Solo si la salida es simétrica respecto de Vref. Con un LM358 de 5 V (0,05 / 3,5 V) y Vref = 2,5 V, la banda de 10k/10k se centra en 2,14 V. Se calcula siempre con los niveles de salida reales.

«Un operacional común sirve igual que un comparador»

Funciona, pero es lento (≈ 10 µs por 3 V), se demora en salir de la saturación y tiene una salida que no es un nivel lógico limpio. Para decidir rápido o con niveles definidos, un LM393 (con su pull-up) es la herramienta correcta.

«Con un comparador analógico ya no necesito debounce en el software»

Con histéresis suficiente, las conmutaciones de ruido desaparecen. Pero un pulsador mecánico rebota con picos de milisegundos y de amplitud completa: ahí la histéresis no ayuda y se necesita un filtro RC o el debounce temporal.

12 · Práctica guiada

Ejercicios de decisión

Ejercicio 1: umbrales a mano

Un Schmitt inversor tiene Vref = 2,5 V, R1 = 10 kΩ, Rf = 47 kΩ, y una salida de 0,05 / 3,5 V. Calculá los dos umbrales, la histéresis y el centro de la banda.

Ver solución razonada

β = 10/(10 + 47) = 0,1754. Umbral superior: 2,5 + 0,1754 × (3,5 − 2,5) = 2,675 V. Inferior: 2,5 + 0,1754 × (0,05 − 2,5) = 2,5 − 0,430 = 2,070 V. Histéresis: 0,1754 × 3,45 = 605 mV. Centro: (2,675 + 2,070)/2 = 2,37 V, por debajo de Vref por la asimetría de la salida.

Ejercicio 2: dimensionar para un ruido medido

Una señal tiene 120 mV de ruido pico a pico. Con R1 = 10 kΩ y los niveles de salida de 0,05 / 3,5 V, ¿qué Rf de la serie E12 elegís para tener 1,5 a 2 veces el ruido como histéresis? Verificá con el resultado.

Ver solución razonada

Objetivo: 180 a 240 mV. Para 200 mV: β = 0,2/3,45 = 0,058; Rf = 10k × (1/0,058 − 1) ≈ 162 kΩ. En la E12: 150 kΩ (β = 0,0625, histéresis 216 mV, umbrales 2,347 / 2,562 V, relación 1,8× el ruido) o 180 kΩ (182 mV, 1,5×). Cualquiera de las dos sirve; 150 kΩ da más margen.

Ejercicio 3: conectar a un micro de 3,3 V

Un comparador LM358 alimentado con 5 V entrega 3,5 V en ALTO. Querés leerlo con un microcontrolador de 3,3 V. ¿Qué problema hay y cómo lo resolvés?

Ver solución razonada

3,5 V supera la alimentación del micro (3,3 V + 0,3 V es el máximo absoluto típico de una entrada): puede activar los diodos de protección y dañarlo con el tiempo. Soluciones: (a) un divisor 10k/22k reduce 3,5 V a 2,4 V (aún por encima del umbral alto de ≈ 2,0 V del micro), (b) usar un LM393 con pull-up de 10 kΩ a 3,3 V, que sube al nivel exacto, o (c) un seguidor/transistor. La (b) es la más limpia. No alimentes el LM358 con 3,3 V: su salida llegaría solo a 1,8 V (VCC − 1,5 V).

Ejercicio 4: el esquema no inversor

Un Schmitt no inversor tiene Vref = 2,5 V, R1 = 10 kΩ y Rf = 1 MΩ. Calculá los umbrales y la histéresis. ¿Sirve para una señal con 100 mV de ruido?

Ver solución razonada

k = R1/Rf = 0,01. Umbral inferior (salida en ALTO, la entrada debe bajar de): 2,5 × 1,01 − 3,5 × 0,01 = 2,525 − 0,035 = 2,490 V. Superior (salida en BAJO): 2,525 − 0,05 × 0,01 = 2,5245 V. Histéresis: 0,01 × 3,45 = 34,5 mV. Con 100 mV de ruido no sirve: la banda es menor que el ruido pico a pico (200 mV). Hay que bajar Rf a unos 100 kΩ (345 mV).

Ejercicio 5: diagnosticar fallas

En un Schmitt inversor de R1 = 10 kΩ y Rf = 100 kΩ con Vref = 2,5 V: (a) Rf se abre; (b) R1 se abre; (c) por un error de cableado, Rf va a la pata − en lugar de la pata +.

Ver solución razonada

(a) Sin Rf desaparece la realimentación: es un comparador simple con un solo umbral de 2,5 V, y vuelve el repiqueteo. (b) Sin R1, la pata + queda unida solo a la salida: V+ = Vout. El circuito se traba (como un latch): solo conmuta si Vin supera 3,5 V o baja de 0,05 V, es decir, prácticamente nunca. (c) Con Rf a la pata − la realimentación es negativa: se vuelve un amplificador con la pata + fija en 2,5 V y la salida deja de ser digital, con una ganancia que depende del lazo; ya no hay comparador.

13 · Síntesis

Ideas para recordar

  • Comparador = operacional sin realimentación negativa: la salida va a un riel (LM358 de 5 V: 0,05 / 3,5 V; no es lógica de 5 V).
  • Con ruido y una señal lenta, un solo umbral produce repiqueteo: decenas de conmutaciones donde hay una sola transición real.
  • El Schmitt inversor: umbral = Vref + β·(Vsalida − Vref), β = R1/(R1 + Rf); histéresis = β·(VALTO − VBAJO).
  • El no inversor: umbral = Vref·(1 + R1/Rf) − Vsalida·R1/Rf; histéresis = (R1/Rf)·(VALTO − VBAJO).
  • La banda debe ser de 1,5 a 2 veces el ruido pico a pico, y no más: demasiada vuelve sordo al circuito. Medí el ruido antes de elegir Rf.
  • Los umbrales dependen de los niveles reales de salida y no suelen estar centrados en Vref.
  • Para decidir rápido o con niveles lógicos definidos: LM393 con pull-up a la tensión lógica. Cuidado con los 3,5 V del LM358 sobre un micro de 3,3 V.
  • La histéresis es el equivalente en hardware del estado guardado en software: una máquina de dos estados con memoria.

¿Listo para el Tema 21?

Podés avanzar si sos capaz de responder esto sin mirar:

  • Explicar por qué un comparador sin histéresis repiquetea con ruido.
  • Calcular los dos umbrales de un Schmitt inversor a partir de R1, Rf, Vref y los niveles de salida.
  • Elegir Rf para una histéresis mayor que el ruido medido.
  • Explicar por qué los umbrales no están centrados en Vref.
  • Decir cuándo conviene un LM393 y cómo se conecta a un micro de 3,3 V.
  • Predecir qué pasa si se abre Rf o R1.

Con esto se cierra el bloque del operacional (Temas 14 a 20). Pero todo lo que vimos supuso un operacional ideal: ahora toca ver dónde deja de serlo. En el próximo tema, los límites reales del operacional.