Componentes: El sensor

El sensor que se empleará es un sensor de Humedad relativa y de temperatura el cual viene especificado, se trata del modelo SHT71 de Sensirion.

Descripción

Se trata de un sensor digital de humedad relativa y temperatura. Internamente consiste en un sensor de temperatura de tipo bandgap y un sensor de humedad relativa de tipo polímero capacitivo. Ambos sensores se conectan a un conversor analógico/digital de 14bits. Una memoria OTP (One Time Programmable) dispone de los coeficientes de calibración de los sensores y son usados internamente tras cada medida para calibrar las señales de los sensores (está completamente calibrado). La salida digital se conecta a un controlador de la comunicación síncrona y a un generador de CRC.

Características principales

  • Resolución seleccionable de las medidas entre dos opciones mediante el registro de estado:
    1. 8bit HR y 12bit Temperatura
    2. 12bit HR y 14bit Temperatura
  • Indicador de tensión baja, detecta tensiones de alimentación inferiores a 2.47V.

  • Calentador activable mediante el registro de estado que aumenta la temperatura del sensor entre 5°C y 15°C. Se puede utilizar para comprobar el correcto funcionamiento del sensor o para prevenir la condensación en entornos de elevada humedad relativa (>95%HR).

  • El sensor calcula un CRC de 8bits en cada medida y puede ser leido o no. Su uso asegura la recepción correcta de los datos.

  • Eléctricas:
    • Amplio rango de alimentación [2.4-5.5]V.
    • Consumo de corriente durante las medidas de 550μA @5V.
    • Consumo de corriente en inactividad de [0.3-1]μA @5V.
    • Consumo promedio de corriente de 28μA @5V realizando una medida de 12bits por segundo.
  • Es totalmente intercambiable entre toda la gama de sensores SHT1x y SHT7x. La diferencia entre modelos de la gama es la precisión (por tanto el coste), como se observa en las gráficas siguientes.

  • Rendimiento (comportamiento):

    • Humedad:
      • Precisión ±3%HR@[20-80]%RH.
      • Resolución 0.5%HR@8bit y 0.03%HR@12bit.
      • Repetitividad ±0.1%HR.
      • Histéresis ±1%HR.
    • Temperatura:
      • Precisión ±0.4 Kelvin.
      • Resolución 0.04°C@12bit y 0.01°C@14bit.
      • Repetitividad ±0.1°C.
      • Rango [-40 - 123.8]°C.

Interface

La interface de comunicación, bidireccional síncrona de dos líneas (dato y reloj), está optimizada para el sensor y no es compatible con interfaces I2C. La línea de reloj es unidireccional y se utiliza para sincronizar la comunicación entre el microcontrolador y el sensor, no tiene frecuencia mínima y la máxima es de 1MHz para tensiones de alimentación inferiores a 4.5V. La línea de datos es bidireccional: cambia tras un flanco de bajada y se valida en los flancos de subida de la línea de reloj. Durante la transmisión, la línea de datos debe permanecer estable mientras el reloj está a nivel alto.

Secuencias de comunicación

Enviar un comando

Antes de enviar un comando, se debe iniciar la transmisión mediante la secuencia mostrada en la figura siguiente.
Inicio de la transmisión (Transmission start)

Tras dicha secuencia, se le manda el comando deseado precedido de una dirección de tres bits (el dispositivo sólo soporta la dirección "000"). El comando está formado por cinco bits, y los comandos posibles son los siguientes:

Lista de comandos.

por lo tanto, la secuencia de envío de un comando será:

Ejemplo de transmisión de un comando, en este caso se está realizando una medida de H.R.

El último flanco de DATA (en negrita) y el último pulso de reloj SCK llamado ack son el reconocimiento (acknowledge) del dato por parte del sensor (confirmación de la recepción); el sensor pondrá a cero la línea de datos DATA tras el octavo ciclo de reloj. El pulso ack (el noveno) le indica al sensor la recepción del reconocimiento.

Realizar medidas

Una vez enviado el correspondiente comando (medida de humedad o medida de temperatura) se debe esperar a que finalice la medida. El tiempo de medida suele ser de 11/55/210ms para una medidas de 8/12/14bits. Una vez finalizada la medida, el sensor pondrá la línea de datos a cero y entrará en modo reposo. La medida se guarda esperando su lectura, la cual se puede realizar cuando se desee (no dispone de tiempo máximo de almacenaje).

En la lectura, el sensor transmite dos bytes de la medida y un byte de CRC con el bit más significativo primero (MSB). El microcontrolador debe reconocer (confirmar su recepción) cada byte poniendo la línea de dato DATA en estado bajo. Si no se desea utilizar el CRC se puede ignorar no reconociendo el segundo byte. Se muestra un ejemplo donde, previamente, se ha ordenado la medida de H.R. de 12bits:

Ejemplo de lectura de una medida. La línea gruesa indica el control de la línea por parte del sensor, la delgada el control por parte del microcontrolador.

En resumen:

Reestablecer la comunicación

Si se pierde la comunicación con el sensor, se puede resetear la comunicación siguiendo la secuencia siguiente (esto reseteará sólo la interface, el registro de estado preservará su contenido):

Secuencia de reestablecimiento de la conexión.

Registro de estado

A través del registro de estado (8bits), se puede acceder a la configuración de algunos parámetros del sensor. Estos parámetros se muestran en la tabla siguiente.

Descripción de los bits del registro de estado.
  • Heater (calentador)

    Si se activa aumenta la temperatura del sensor entre 5°C y 15°C y el consumo a 8mA@5V. Se puede utilizar para comprobar el correcto funcionamiento del sensor o para prevenir la condensación en entornos de elevada humedad relativa (>95%HR).

  • End Of Battery (indicador de batería baja)

    Consiste en un detector de bajo voltaje, cuando la tensión de alimentación es menor que 2.47V, el bit se activa.

  • No reload from OTP (No recargar la OTP)

    Para ahorrar potencia y disminuir el tiempo de las medidas, puede evitarse la recarga de OTP antes de cada medida. Esto ahorra 8.2ms aprox. de cada medida.

  • Measurament resolution (Resolución de la medida)

    Los 14bits (temperatura) y 12bits (humedad) de resolución de la medida pueden reducirse a 12bits (temp.) y 8bits (hum.). Esto reduce el tiempo de medida (duración de la medida) y por tanto disminuye el consumo.

Comunicación

  • Lectura del registro de estado

    Es idéntica a la lectura de la medida. El sensor necesita un reconocimineto (validación) cada byte y devuelve el valor del registro y un byte de CRC que puede ser ignorado si no se reconoce (valida).

  • Escritura del registro de estado

    Para realizar una escritura primero se envía el comando de escritura como se ha mostrado anteriormente y después el valor del registro de estado.

Referencias

Sensirion SHT7x datasheet.

No hay comentarios: