Lectura de la presión atmosférica y la temperatura: Presión atmosférica: Se conoce como presión atmosférica a la presión que ejerce el aire en cualquier punto de la atmósfera. La presión atmosférica varia por la acción de factores como la temperatura, la altitud o la humedad.
El sensor BMP180: El sensor BMP180 es un sensor digital que nos permite la medida de la presión atmosférica y la temperatura. El protocolo de comunicación que utiliza es el conocido I2C (Inter-Integrated Circuit) que se trata de un bus de datos serial desarrollado por Philips en el año 1992. El BMP180 consiste en un sensor piezo-resistivo, un convertidor analógico-digital, una unidad de control con memoria E2PROM y una interfaz i2c serie. La E2PROM almacena 176 bits de datos de calibración que se utilizan para compensar el offset, la dependencia de la temperatura y otros parámetros del sensor. La temperatura tiene una resolución de 16 bits y la presión de entre 16 y 19 bits según el modo de consumo y resolución escogidos. Características del sensor BMP180:
Conexión del sensor BMP180 al microcontrolador: El pin 1 es el bus de datos SDA y va conectado al pin RC4 del micricontrolador, el pin 2 es el reloj de sincronización del bus I2C y va conectado al pin RC3 del microcontrolador. Ambos pines necesitan una resistencia de pull-up para funcionar correctamente. El encapsulado escogido ya las incorporo por lo que facilita el montaje o posterior sustitución del sensor. El pin 3 va conectado a Gnd y el pin 4 es la alimentación del sensor que como máximo es de 3.6V Flowchart para la lectura del sensor BMP180: Los parámetros de calibración hay que leerlos al inicio antes de la lectura de los datos de temperatura y presión. Estos parámetros se utilizarán después para compensar el las medidas tomadas por el sensor de UT (Uncompensated Temperature) y UP (Uncompensated Pressure) y solo es necesario leerlos una vez al inicio del sistema ya que estos no cambian, son únicos para cada sensor. La espera después de la lectura de la presión depende del modo de resolución que hayamos escogido en el sensor. La siguiente tabla muestra un resumen del tiempo de conversión según el modo escogido y el consumo que tiene este. Implementación:
El sistema se inicia por defecto en modo ‘Idle’, para ponerlo en funcionamiento tenemos que pulsar el botón ‘RB0’, en este momento se pasa al estado ‘Setup’ donde se configuran los módulos I2C y USART. Una vez configurado el sistema se lee una única vez los parámetros de calibración del sensor. En el estado ‘Read BMP180’ se leen la temperatura y la presión no compensadas y se calcula la real junto con los parámetros de calibración, justo después se envía la información y se vuelve a repetir el proceso de obtención de datos. Para volver al modo ‘Idle’ se tiene que pulsar de nuevo el botón ‘RB0’, en ese momento se pasa al estado ‘Stop’ donde se detienen los módulos y se vuelve al modo inicial ‘Idle’.
Protocolo de comuicación I2C: El protocolo I2C (Inter-Integratet Circuit) es un bus de datos serial desarrollado por Philips en el año 1992. Se utilizaba principalmente para la interconexión entre diferentes partes de un circuito como CPU y dispositivos periféricos (Sensores, memorias, pantallas LCD,..). I2C está diseñado como un bus maestro-esclavo. La comunicación se realiza a través de dos hilos , el hilo de datos (SDA) y el hilo del reloj de sincronización (SCL). La transferencia de datos siempre la inicia el maestro y es este el que genera la señal de reloj utilizada para la sincronización y el esclavo responde a las peticiones de este. Cada dispositivo dispone de una única dirección de 7 bits que lo distingue en el bus de comunicación de los otros dispositivos. El protocolo también permite tener más de un maestro en el mismo bus de comunicación (Multimaster-Mode). El modo multimaestro permite comunicarse a dos maestros entre ellos asignando el rol de esclavo a uno de ellos. Cuando está en curso una comunicación solo puede existir un maestro, los demás dispositivos actuarán como esclavos hasta el fin de la comunicación. Características del bus I2C:
Conexión física de dispositivos al bus:
Protocolo de acceso al medio:
El protocolo I2C tiene condiciones especiales de señal de bus. Para iniciar una comunicación el Master envía una señal de Start(S) y para pararla una señal de Stop(P). Cada byte de información requiere una respuesta de confirmación por parte del receptor. Cuando nadie accede al bus tanto SCL como SDA están a nivel alto Condiciones de Start y Stop: La condición de Start(S) la inicia el Master llevando la linea SDA a cero mientras SCL permanece en nivel alto. Mientras que para la condición de Stop(P) la linea SDA pasa a nivel alto mientras que la línea SCL permanece en alto. Transferencia de datos: Tras la condición de inicio el Master envía la dirección del esclavo (7 bits) junto con el comando de lectura/escritura (R=1/W=0). El esclavo responde con un ACK (acknowledge) si ha recibido la información. Justo después se inicia la transmisión de datos. La transmisión finaliza cuando el Master envía la condición de Stop. Existen diferentes formatos de transmisión: |
Diseño de una estación metereológica autónoma sin hilos y de bajo consumo > Proyectos > Sensores >