Componentes Electrónicos · Tema 29

Sensores: familias y salidas

Un pulsador informa un bit, y hay que tocarlo. Un sensor informa una magnitud del mundo: temperatura, luz, distancia. Hay cientos de modelos, y para un programador se reducen a dos preguntas: en qué forma entrega el dato, y cuánto de ese dato es información. Este tema es el mapa; el taller está en el siguiente.

≈ 45 minutos Sin materiales: el taller es el Tema 30 Incluye simulador y Python

01 · Punto de partida

Dos sensores, dos temperaturas

Hasta acá, todos los componentes hacían algo que se les ordenaba. Los sensores van al revés: le cuentan al programa cómo está el mundo. Y un programador tiende a creer lo que una función devuelve.

Una escena típica. Armás un controlador para una fermentación que tiene que mantenerse entre 24 y 26 °C. Comprás el sensor de temperatura y humedad más común, lo conectás, instalás la biblioteca y en diez minutos ves en pantalla «25,00 °C». Funciona.

Por las dudas agregás un segundo sensor, de otro modelo, pegado al primero. Marca 23,4 °C. Uno de los dos miente, pensás. Los cambiás por otros dos de los mismos modelos: ahora uno dice 26,00 y el otro 24,1. Además, el primero nunca muestra decimales distintos de cero, aunque el programa imprime dos.

Ninguno mentía, y los cuatro estaban dentro de lo que promete su hoja. El primero tiene una exactitud de ±2 °C y solo informa grados enteros: los «,00» los agregó el formato de impresión. El segundo, ±0,5 °C con décimas. Para un rango de control de 2 °C, el primero no sirve, por más que funcione.

Es un problema que un programador conoce de los números de punto flotante: una variable puede mostrar quince cifras sin que ninguna, después de la tercera, signifique algo. Cuántas cifras se imprimen y cuántas son ciertas son dos cosas distintas. En un sensor tienen nombre: resolución y exactitud. Y las dos están en la hoja.

  • ¿Qué pasa entre la magnitud física y el número que ve el programa?
  • ¿Qué familias de sensores hay?
  • ¿De qué formas puede entregar su dato un sensor, y qué necesita cada una?
  • ¿Qué hay que buscar en su hoja de datos?
  • ¿Qué diferencia hay entre resolución y exactitud?

02 · Identificar

Del mundo al número

Un sensor convierte una magnitud física en una magnitud eléctrica. Entre el fenómeno y el valor que usa el programa hay una cadena, y cada eslabón puede perder información.

magnitud física→elemento sensible→señal eléctrica→conversión a número→cálculo de unidades
Los eslabones, con un sensor de temperatura como ejemplo.
EslabónQué haceQué puede salir mal
Elemento sensibleUn material cuya resistencia o tensión cambia con la temperaturaMide su propia temperatura, no la del ambiente: tarda en igualarse, y se calienta con lo que tenga cerca
Señal eléctricaUna tensión, una resistencia o una corrienteRuido, cables largos, alimentación inestable
Conversión a númeroUn conversor mide la tensión y entrega un enteroEscalones: valores intermedios se redondean
Cálculo de unidadesUna fórmula o una tabla convierte el entero en gradosUna fórmula que no corresponde a ese sensor

Según cuántos eslabones traiga resueltos, un sensor se presenta de tres maneras:

El elemento solo
Una resistencia que cambia con la luz o con la temperatura. Entrega solo el primer eslabón: todo lo demás lo armás vos. Es el caso del taller del próximo tema.
El sensor con salida de tensión
Un integrado que ya entrega una tensión proporcional a la magnitud, calibrada en fábrica. Falta convertirla a número.
El sensor digital
Trae adentro el elemento, el conversor y la calibración, y entrega el valor por una comunicación. El programa recibe grados. Es el más cómodo, y el que más invita a creerle sin leer su hoja.

03 · Identificar

Familias por magnitud

Un mapa de lo que vas a encontrar. Los modelos son los más difundidos entre aficionados; hay muchos equivalentes.

Familias de sensores, con ejemplos habituales.
MagnitudEjemplosPrincipioSalida
TemperaturaTermistor NTCResistencia que baja al calentarseResistiva
LM35, TMP36Unión de silicio calibradaTensión: 10 mV por grado
DS18B20, DHT22Sensor con conversor incorporadoBus digital
LuzFotorresistencia (LDR)Resistencia que baja con la luzResistiva
Fotodiodo, fototransistorCorriente proporcional a la luzCorriente, o tensión con un resistor
Distancia y presenciaUltrasónico (HC-SR04)Tiempo de ida y vuelta de un sonidoPulso: su duración es la distancia
Infrarrojo reflexivoLuz que rebota en un objeto cercanoTensión, o un bit
Movimiento (PIR)Cambio del calor que emite un cuerpoUn bit
Posición y movimientoPotenciómetroDivisor que se mueve con un ejeResistiva
Acelerómetro, giróscopoMasas microscópicas que se desplazanBus digital
Campo magnéticoSensor de efecto HallTensión que aparece con un imán cercaUn bit, o tensión
HumedadDHT11, DHT22Capacitor cuyo valor cambia con la humedadBus digital
PresiónBMP280Membrana que se deformaBus digital
Fuerza y pesoCelda de cargaResistencias que cambian al deformarseTensión muy chica: necesita amplificador
CorrienteResistor de medición, sensor Hall de corrienteCaída de tensión, o campo magnéticoTensión

Varias filas tienen componentes que ya conocés. El potenciómetro del Tema 8 es un sensor de posición. El fototransistor es la mitad de salida del optoacoplador del Tema 26. El interruptor de lengüeta del tema anterior es un sensor magnético de un bit. Un sensor no es una categoría aparte de componentes: es un uso.

04 · Selección

Cinco tipos de salida

La columna que más le importa a un programador es la última. La salida decide el circuito, las patas del microcontrolador que se usan y el código.

Los cinco tipos de salida y lo que cada uno le pide al microcontrolador.
SalidaQué entregaCircuito necesarioQué hace el programa
ResistivaUna resistencia que cambiaUn resistor fijo, formando un divisorConvierte una tensión y aplica una fórmula o una tabla
TensiónUna tensión proporcional a la magnitudNinguno, si el rango coincide con el del conversorConvierte una tensión y multiplica
Un bitAlto o bajo: hay o no hayA veces un resistor al positivoLee una entrada digital
PulsoUn pulso cuya duración, o cuya frecuencia, es el datoNingunoMide un tiempo o cuenta pulsos
Bus digitalEl valor ya numérico, por una comunicaciónResistores al positivo en las líneas, según el busUsa una biblioteca que habla ese protocolo
Las dos primeras son analógicas
Necesitan una entrada que mida tensión: un conversor analógico-digital. No todas las patas de un microcontrolador lo tienen, y algunas placas tienen muy pocas o una sola.
La salida de un bit es un pulsador
Todo lo del tema anterior vale: la entrada tiene que quedar definida. Muchos sensores de este tipo solo pueden llevar la línea al negativo, como el transistor de un optoacoplador, y necesitan un resistor al positivo.
La salida por pulso depende del reloj
Un sensor ultrasónico entrega un pulso de 58 millonésimas de segundo por cada centímetro. El programa mide tiempo, y lo mide con su reloj: el error del Tema 27 pasa directo a la distancia.
El bus digital no es un cable cualquiera
Tiene niveles de tensión, que tienen que coincidir con los de la placa; una dirección, que distingue a cada sensor cuando varios comparten las mismas líneas; y un tiempo de conversión, durante el cual el dato todavía no está.

05 · Características

Leer la hoja de un sensor

La hoja de cualquier sensor responde las mismas seis preguntas. Conviene buscarlas en este orden.

  1. 1
    Rango de medición.

    Entre qué valores mide. Fuera de ese rango, informa cualquier cosa o se daña.

  2. 2
    Exactitud.

    Cuánto puede apartarse lo que informa del valor real. Suele depender de la zona del rango: mirá la que te interesa.

  3. 3
    Resolución.

    El cambio más chico que puede informar.

  4. 4
    Tiempo de respuesta.

    Cuánto tarda en reflejar un cambio, y cada cuánto se lo puede consultar.

  5. 5
    Salida.

    De cuál de los cinco tipos es, con qué niveles y con qué fórmula se convierte.

  6. 6
    Alimentación y consumo.

    Con qué tensión funciona y cuánta corriente toma, medido y en reposo.

Cinco sensores de temperatura comparados. Valores representativos de sus hojas: verificá los de tu pieza.
SensorRangoExactitudResoluciónSalidaLectura cada
DHT110 a 50 °C±2 °C1 °CBus digital propio1 s
DHT22−40 a 80 °C±0,5 °C0,1 °CBus digital propio2 s
DS18B20−55 a 125 °C±0,5 °C0,0625 °CBus digital de un hilo0,75 s
LM352 a 150 °C, en la conexión simple±0,5 a ±1 °CLa del conversorTensión: 10 mV por °CContinua
TMP36−40 a 125 °C±1 a ±2 °CLa del conversorTensión: 500 mV + 10 mV por °CContinua

La tabla resuelve la escena. El sensor de ±2 °C y grados enteros es el DHT11. Para mantener una temperatura dentro de 2 °C hace falta medir con un error varias veces menor: cualquiera de los otros, y preferentemente uno de ±0,5 °C.

06 · Características

Resolución no es exactitud

Resolución
El escalón más chico entre dos valores que el sensor puede informar. Un DS18B20 informa en pasos de 0,0625 °C: puede decir 23,4375 o 23,5, y nada en el medio.
Exactitud
Cuánto puede diferir lo informado del valor verdadero. El mismo DS18B20 tiene ±0,5 °C: cuando dice 23,4375, la temperatura real está entre 22,9 y 23,9.
Repetibilidad
Cuánto varían lecturas sucesivas de lo mismo. Un sensor puede ser poco exacto y muy repetible: se equivoca siempre igual.

Son propiedades independientes. Las cuatro combinaciones existen:

Resolución y exactitud, combinadas.
Exactitud buenaExactitud pobre
Resolución finaUn instrumento de laboratorioMuchos decimales que no significan nada: el caso más engañoso
Resolución gruesaUn termómetro de mercurio bien hecho: pocas marcas, todas ciertasEl DHT11 de la escena

Para qué sirve cada una

La exactitud, para el valor absoluto
«¿Está a más de 25 °C?» necesita exactitud. Con ±2 °C, la respuesta es dudosa entre 23 y 27.
La resolución, para los cambios
«¿Está subiendo?» necesita resolución y repetibilidad. Un sensor de ±0,5 °C y pasos de 0,06 °C detecta una suba de una décima aunque no sepa con certeza el valor absoluto.
El error fijo se puede quitar
Si un sensor repetible marca siempre 0,8 °C de más, comparándolo una vez con un termómetro confiable y restando esa diferencia en el programa queda mucho mejor que su hoja. Eso es calibrar. Lo que no se puede quitar es el ruido ni el error que cambia con la temperatura.

Lo que la hoja no cubre

La exactitud de la hoja es la del sensor midiendo su propia temperatura. En un equipo real hay errores mayores, que no son del sensor:

Errores de montaje habituales al medir temperatura.
SituaciónEfecto
El sensor está junto a un regulador de tensión o a un microcontroladorMide de 2 a 5 °C de más
Está dentro de un gabinete cerradoMide el interior del gabinete, y tarda minutos en seguir al ambiente
Le da el sol o una corriente de aireMide el sol o la corriente de aire
Se lo consulta sin pausaAlgunos se calientan a sí mismos al medir

07 · Selección

El sensor y el conversor

Con los sensores analógicos, la resolución no la pone el sensor: la pone el conversor del microcontrolador. Un conversor divide su rango de tensión, que va de 0 a su tensión de referencia, en una cantidad fija de escalones.

escalón=tensión de referencia÷2 elevado a la cantidad de bits

Un conversor de 10 bits con referencia de 5 V tiene 1024 escalones de 4,9 mV. Con un LM35, que entrega 10 mV por grado, cada escalón equivale a medio grado.

Resolución de temperatura de un LM35 según el conversor.
ConversorReferenciaEscalónEn gradosTemperatura máxima
10 bits5 V4,9 mV0,49 °C150 °C: la del sensor
10 bits3,3 V3,2 mV0,32 °C150 °C
10 bits1,1 V1,07 mV0,11 °C110 °C: la de la referencia
12 bits3,3 V0,81 mV0,08 °C150 °C
Se desaprovecha casi todo el rango
A 25 °C, un LM35 entrega 250 mV. Con una referencia de 5 V, eso es el 5 % del rango: de los 1024 escalones se usan unos 50. Una referencia más baja aprovecha mejor el conversor.
La referencia también tiene exactitud
Si la referencia es la propia alimentación de 5 V y esa alimentación en realidad es de 4,8 V, todas las lecturas salen un 4 % altas. Con un sensor de tensión, el error de la referencia pasa entero a la medición.
El LM35 no mide bajo cero así nomás
Su salida es de 0 V a 0 °C, y para temperaturas negativas tendría que ser negativa. En la conexión simple no baja de unos 2 °C. El TMP36 lo resuelve sumando 500 mV: 0 °C son 500 mV y −40 °C, 100 mV.
La salida no puede superar la referencia
Lo que pase de la referencia se lee como el máximo. Y lo que pase de la alimentación del microcontrolador puede dañarlo.

08 · Identificar

Los módulos y sus dos salidas

Muchos sensores se venden montados en una plaqueta, con un potenciómetro azul, uno o dos LED y cuatro patas. Dos de esas patas confunden a casi todos la primera vez.

Las patas habituales de un módulo de sensor con comparador.
PataQué esSe conecta a
VCCAlimentación3,3 o 5 V, según el módulo
GNDNegativoEl negativo de la placa
AOSalida analógica: la tensión del sensor, sin procesarUna entrada con conversor
DOSalida digital: un bit que dice si la tensión pasó un umbralUna entrada digital
De dónde sale el bit
De un comparador, un integrado que compara la tensión del sensor con otra fijada por el potenciómetro. Si la supera, la salida cambia. Girando el potenciómetro se mueve el umbral.
Qué no hace
La salida digital no mide: solo dice «más que» o «menos que». Un módulo de luz conectado por esa pata distingue día de noche, y no cuánta luz hay.
Cuándo conviene
Cuando el programa solo necesita esa decisión, o cuando no quedan entradas con conversor. El umbral queda ajustado con un destornillador y no se puede cambiar desde el programa.
El LED del módulo
Copia el estado de la salida digital. Permite ajustar el umbral sin placa ni programa: girar hasta que el LED cambie en el punto deseado.

09 · Simulador

Leer una temperatura

Cinco sensores midiendo la misma temperatura. Elegí el sensor y, si es analógico, el conversor. Mové la temperatura real y mirá qué informa el programa.

  • La línea blanca es la temperatura real. La franja es donde puede caer la lectura de cualquier unidad sana de ese modelo.
  • Las marcas verticales son los valores que ese sensor puede informar: su resolución.
  • Los puntos son cinco unidades distintas del mismo modelo. El resaltado es la que estás usando.
SIMULADOR 29

Lo que hay y lo que se informa

Temperatura real y lectura de un sensor, con su resolución y su exactitud Un eje de temperatura ampliado alrededor del valor real, con la franja de exactitud del sensor, las marcas de los valores que puede informar y las lecturas de cinco unidades. Debajo, una barra con la parte del rango del conversor que se está usando.
Lo que entrega el sensor
Lo que informa el programa
Error de esta unidad
Resolución y exactitud

Recorrido guiado (8 minutos)

  1. 1
    Mirá el estado inicial.

    Un DHT11 a 25 °C. La franja ocupa 4 grados y las marcas están cada grado entero. Los cinco puntos caen en unos pocos valores enteros, repartidos en tres grados.

  2. 2
    Presioná «Probar otra unidad» varias veces.

    Con la misma temperatura real, cada unidad informa otro valor. Son los sensores de la escena.

  3. 3
    Mové la temperatura real muy despacio, entre 24 y 26 °C.

    La lectura no cambia durante un grado entero y después salta. Un cambio de medio grado puede no verse nunca.

  4. 4
    Elegí el DS18B20.

    La franja se achica a un grado, y las marcas se juntan tanto que casi no se distinguen. Mové la temperatura una décima: la lectura la sigue. Pero mirá los puntos: las unidades siguen sin coincidir.

  5. 5
    Elegí el LM35, con 10 bits y referencia de 5 V.

    Las marcas vuelven a separarse: medio grado cada una. Ahora la resolución no la pone el sensor sino el conversor. La barra de abajo muestra cuánto del rango se usa.

  6. 6
    Cambiá la referencia a 1,1 V, y después el conversor a 12 bits.

    Los escalones se achican a una décima y luego a unas centésimas. La franja de exactitud no cambia: un conversor mejor no vuelve más exacto al sensor.

  7. 7
    Con el LM35, bajá la temperatura a −5 °C.

    La salida no puede ser negativa: informa cerca de cero. Cambiá al TMP36, que suma medio volt: mide sin problema.

  8. 8
    Con el TMP36 y referencia de 1,1 V, subí a 70 °C.

    La salida pasa de 1,1 V y el conversor se queda sin rango: informa su máximo. Con el DHT11, bajá de 0 °C: está fuera de su rango de medición.

Preguntas para pensar

  1. En el paso 4, el DS18B20 informa centésimas. ¿Cuántas cifras mostrarías al usuario?
  2. En el paso 6, ¿qué se gana y qué no se gana con un conversor de más bits?
  3. Para detectar que una temperatura subió dos décimas, ¿sirve el DS18B20, aunque su exactitud sea de ±0,5 °C?
Ver respuestas sugeridas
  1. Una décima, o ninguna. La exactitud es de ±0,5 °C: el valor real puede estar medio grado arriba o abajo de lo informado, así que la segunda cifra decimal no aporta nada sobre la temperatura. Las cifras adicionales sirven para ver tendencias, no para afirmar un valor.
  2. Se gana resolución: escalones más finos, cambios más chicos detectables. No se gana exactitud: el sensor se sigue equivocando lo mismo, y el conversor mide ese valor equivocado con más detalle. Tiene sentido mejorar el conversor hasta que su escalón sea unas veces menor que la exactitud del sensor; más allá, son cifras vacías.
  3. Sí. Un cambio se mide comparando dos lecturas de la misma unidad, y el error fijo de esa unidad está en las dos: al restar, desaparece. Lo que importa para un cambio es la resolución, de 0,06 °C, y que las lecturas se repitan. Para saber si pasó de 25,0 °C, en cambio, no alcanza.

10 · Verificar

Qué se verifica con el multímetro

El multímetro lee tres de los cinco tipos de salida. Para los otros dos hace falta el microcontrolador.

Qué se puede comprobar sin programa.
SalidaCon el multímetroQué esperar
ResistivaResistencia, con el sensor sueltoQue cambie al taparlo, iluminarlo o calentarlo con los dedos
TensiónTensión continua en la salida, con el sensor alimentadoLM35 a 25 °C: 0,25 V. Sube al tocarlo
Un bitTensión en la salidaDos valores, cerca de 0 V y cerca de la alimentación, según la condición
PulsoNo: es demasiado breveA lo sumo, que la alimentación llegue
Bus digitalNoLa alimentación, y que las líneas estén en nivel alto en reposo

Con un LM35 y un multímetro tenés un termómetro sin programar nada: la lectura en milivolts dividida por diez son grados. Es una buena referencia para comparar otros sensores. En el próximo tema hacés el trabajo completo con los dos sensores resistivos más comunes: medir, tabular y armar el divisor.

11 · Los sensores en código

Convertir, redondear y elegir

Python en tu navegador. Los bloques son editables: cambiá los valores y presioná «Ejecutar Python».

De la cuenta del conversor a los grados

def leer(volts, bits, referencia):
    """Lo que entrega un conversor ideal: un entero."""
    maximo = 2 ** bits - 1
    return max(0, min(maximo, int(volts / referencia * 2 ** bits)))


def lm35(cuenta, bits, referencia):
    return cuenta * referencia / 2 ** bits / 0.010


def tmp36(cuenta, bits, referencia):
    return (cuenta * referencia / 2 ** bits - 0.5) / 0.010


print("LM35: escalón del conversor, en grados")
for bits, referencia in ((10, 5), (10, 3.3), (10, 1.1), (12, 3.3)):
    escalon = referencia / 2 ** bits / 0.010
    print(f"  {bits} bits, {referencia} V: {escalon:.2f} °C por escalón, "
          f"máximo {min(150, referencia / 0.010):.0f} °C")

print("Temperatura real -> lo que informa un LM35 con 10 bits y 5 V")
for real in (24.6, 24.8, 25.0, 25.2, 25.4, 25.6):
    cuenta = leer(real * 0.010, 10, 5)
    print(f"  {real} °C -> {real * 10:.0f} mV -> cuenta {cuenta} -> {lm35(cuenta, 10, 5):.2f} °C")

print("A -5 °C:")
print(f"  LM35:  cuenta {leer(-0.05, 10, 5)} -> {lm35(leer(-0.05, 10, 5), 10, 5):.1f} °C")
print(f"  TMP36: cuenta {leer(0.45, 10, 5)} -> {tmp36(leer(0.45, 10, 5), 10, 5):.1f} °C")

Repetí la lista de temperaturas con leer(real * 0.010, 10, 1.1) y lm35(cuenta, 10, 1.1): mirá cómo cambia el escalón.

Cuántas cifras mostrar

from math import floor, log10

SENSORES = {     # rango (°C), exactitud (± °C), resolución (°C)
    "DHT11":   ((0, 50), 2.0, 1.0),
    "DHT22":   ((-40, 80), 0.5, 0.1),
    "DS18B20": ((-55, 125), 0.5, 0.0625),
    "LM35 + 10 bits / 5 V":   ((2, 150), 0.75, 0.49),
    "LM35 + 12 bits / 3,3 V": ((2, 150), 0.75, 0.08),
}


def decimales_utiles(exactitud):
    """Una cifra del orden de la exactitud: más que eso no es información."""
    return max(0, -floor(log10(exactitud)))


print(f"{'sensor':24} {'informa':>10} {'cierto':>10}   conviene mostrar")
for nombre, (rango, exactitud, resolucion) in SENSORES.items():
    utiles = decimales_utiles(exactitud)
    crudo = 23.4375 if resolucion < 0.1 else round(23.4375 / resolucion) * resolucion
    print(f"{nombre:24} {crudo:>10.4f} {'±' + str(exactitud):>10}   {crudo:.{utiles}f} °C")

La columna «informa» es lo que devolvería la biblioteca; la última, lo que tiene sentido mostrar.

Elegir por requisitos

SENSORES = {     # rango, exactitud, resolución, salida
    "DHT11":   ((0, 50), 2.0, 1.0, "bus"),
    "DHT22":   ((-40, 80), 0.5, 0.1, "bus"),
    "DS18B20": ((-55, 125), 0.5, 0.0625, "bus"),
    "LM35":    ((2, 150), 0.75, None, "tensión"),
    "TMP36":   ((-40, 125), 1.5, None, "tensión"),
}


def elegir(t_min, t_max, error_max, cambio_min, salidas=("bus", "tensión"), escalon_conversor=0.1):
    print(f"De {t_min} a {t_max} °C, error hasta ±{error_max} °C, detectar cambios de {cambio_min} °C")
    for nombre, (rango, exactitud, resolucion, salida) in SENSORES.items():
        resolucion = resolucion or escalon_conversor
        motivos = []
        if t_min < rango[0] or t_max > rango[1]:
            motivos.append("rango")
        if exactitud > error_max:
            motivos.append(f"exactitud ±{exactitud}")
        if resolucion > cambio_min:
            motivos.append(f"resolución {resolucion}")
        if salida not in salidas:
            motivos.append(f"salida de {salida}")
        print(f"   {nombre:8} {'SIRVE' if not motivos else 'no: ' + ', '.join(motivos)}")


elegir(20, 30, 0.5, 0.2)                  # la fermentación de la escena
elegir(-15, 40, 1, 0.5)                   # una estación en el exterior
elegir(10, 40, 3, 1)                      # saber si hace calor
elegir(20, 30, 0.5, 0.2, salidas=("tensión",))

El último caso es una placa a la que solo le queda una entrada con conversor. ¿Qué cambiarías para que algún sensor sirva?

12 · Comprensión

Confusiones frecuentes

«Si muestra dos decimales, mide centésimas»

Los decimales los pone el formato de impresión, o la resolución del sensor. Cuánto de eso es cierto lo dice la exactitud.

«Un sensor digital es más exacto que uno analógico»

Es más cómodo. El DHT11 es digital y tiene ±2 °C; un LM35 analógico, ±0,5 a ±1 °C.

«Con un conversor de más bits mido mejor»

Se obtienen escalones más finos del mismo valor, con el mismo error del sensor. Mejora la resolución, no la exactitud.

«Si dos sensores no coinciden, uno está fallado»

Dos sensores de ±0,5 °C pueden diferir en un grado y estar los dos sanos.

«El sensor mide la temperatura del ambiente»

Mide la suya. Junto a un regulador, dentro de un gabinete o al sol, no es la del ambiente.

«La salida DO de un módulo es la versión digital de la medición»

Es un solo bit: si la señal pasó un umbral fijado con el potenciómetro. No lleva el valor.

«Todos los sensores se conectan a cualquier pata»

Los resistivos y los de tensión necesitan una entrada con conversor. Los de bus, las patas de ese bus. Los de 5 V, cuidado con una placa de 3,3 V.

13 · Práctica guiada

Ejercicios

Ejercicio 1: clasificar por salida

Para cada sensor, decí de qué tipo es su salida y qué necesita del microcontrolador: una fotorresistencia; un LM35; un sensor de movimiento; un sensor ultrasónico; un BMP280.

Ver solución razonada

Fotorresistencia: resistiva; un resistor para formar el divisor y una entrada con conversor. LM35: tensión; una entrada con conversor. Movimiento: un bit; una entrada digital. Ultrasónico: pulso; una salida para dispararlo y una entrada para medir la duración del eco. BMP280: bus digital; las dos patas del bus y una biblioteca.

Ejercicio 2: resolución del conjunto

Un TMP36 conectado a un conversor de 12 bits con referencia de 3,3 V. ¿Cuál es el escalón en grados? ¿Cuál es la temperatura máxima que se puede leer? ¿Qué cuenta entrega a 20 °C?

Ver solución razonada

Escalón: 3,3 ÷ 4096 = 0,806 mV, que a 10 mV por grado son 0,08 °C. El TMP36 llega a 125 °C, donde entrega 1,75 V: dentro de los 3,3 V, así que el límite es el del sensor. A 20 °C entrega 500 + 200 = 700 mV: 0,7 ÷ 3,3 × 4096 = 868.

Ejercicio 3: la escena

Con la tabla de la sección 5, explicá las cuatro lecturas de la escena: 25,00 y 23,4 con la primera pareja, 26,00 y 24,1 con la segunda. ¿Entre qué valores estaba la temperatura real?

Ver solución razonada

Los valores con «,00» son del sensor de grados enteros y ±2 °C; los otros, del de décimas y ±0,5 °C. Primera pareja: el de ±0,5 dice 23,4, así que la real estaba entre 22,9 y 23,9; el de ±2 decía 25, que admite de 23 a 27: compatibles. Segunda pareja: 24,1 da entre 23,6 y 24,6; 26 admite de 24 a 28: compatibles. Los cuatro sensores estaban sanos, y la temperatura real rondaba los 23,5 a 24 °C: por debajo del rango que había que mantener, cosa que el primer sensor no permitía ver.

Ejercicio 4: elegir

Elegí un sensor de la tabla para cada caso, y justificá: avisar si una heladera pasa de 8 °C; mostrar en una pantalla si el ambiente está «frío, agradable o caluroso»; registrar la temperatura exterior de una zona con heladas.

Ver solución razonada

Heladera: el umbral es absoluto y cerca de 0 °C. Un DS18B20 o un DHT22, de ±0,5 °C. El DHT11 no: con ±2 °C no distingue 6 de 10. Pantalla de confort: las categorías tienen varios grados de ancho; alcanza un DHT11, que además da la humedad. Exterior con heladas: hay que medir bajo cero. Quedan afuera el DHT11 y el LM35 en conexión simple; sirven el DS18B20, que además se consigue en versión sellada, el DHT22 o el TMP36.

Ejercicio 5: en el simulador

Con el LM35 a 25 °C, anotá la resolución con las seis combinaciones de conversor y referencia. ¿Con cuáles la resolución es peor que la exactitud del sensor? ¿En cuál se desaprovecha más el rango?

Ver solución razonada

Con 10 bits: 0,49 °C con 5 V; 0,32 con 3,3 V; 0,11 con 1,1 V. Con 12 bits: 0,12; 0,08; 0,03. Ninguna supera los ±0,75 °C de exactitud del sensor, pero con 10 bits y 5 V el escalón es de dos tercios de esa exactitud: el conversor agrega un error comparable al del sensor. El rango se desaprovecha más con 5 V: a 25 °C se usa el 5 %. Con 1,1 V, el 23 %.

Ejercicio 6: leé una hoja

Buscá la hoja de datos de un sensor que tengas, o de uno que te interese. Respondé las seis preguntas de la sección 5 y anotá las condiciones que acompañan a la exactitud.

Qué mirar en el resultado

Lo más revelador suele ser la exactitud: casi nunca es un solo número. Fijate en qué parte del rango vale el mejor valor, y cuánto empeora en los extremos. Buscá también el tiempo mínimo entre lecturas y el consumo en reposo, que son los dos datos que más sorprenden al llevar un prototipo a un equipo a pila. Si la hoja no menciona la exactitud, eso también es un dato.

14 · Síntesis

Ideas para recordar

  • Un sensor convierte una magnitud física en una eléctrica. Entre el fenómeno y el número hay una cadena, y cada eslabón puede perder información.
  • Cinco salidas: resistiva, tensión, un bit, pulso y bus digital. La salida decide el circuito y el programa.
  • Las resistivas y las de tensión necesitan una entrada con conversor.
  • En la hoja: rango, exactitud, resolución, tiempo de respuesta, salida, alimentación.
  • Resolución es el escalón más chico que informa. Exactitud es cuánto se aparta de la verdad. Son independientes.
  • La exactitud sirve para valores absolutos; la resolución, para detectar cambios.
  • Con un sensor analógico, la resolución la pone el conversor: referencia dividida por 2 elevado a los bits.
  • Mostrar solo las cifras que la exactitud respalda.
  • La salida digital de un módulo es un umbral, no una medición.

¿Listo para el Tema 30?

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

  • Nombrar los cinco tipos de salida.
  • Decir cuáles necesitan una entrada con conversor.
  • Explicar la diferencia entre resolución y exactitud con un ejemplo.
  • Calcular el escalón de un conversor de 10 bits con referencia de 3,3 V.
  • Decir por qué dos sensores sanos pueden marcar temperaturas distintas.
  • Explicar qué entrega la pata DO de un módulo.
  • Decir qué tipos de salida se pueden comprobar con un multímetro.

Este tema fue el mapa. De las cinco salidas, la resistiva es la única que entrega el elemento desnudo y deja todo lo demás en tus manos: elegir el resistor del divisor, medir la curva, convertir a unidades. Es también la que mejor se entiende con un multímetro. En el próximo tema, el taller de sensores: fotorresistencia y termistor, con su divisor, medidos y tabulados.