El sensor DS18B20 es un sensor digital que permite la medición de la temperatura con una resolución configurable de 9 a 12 bits que corresponden a incrementos de 0.5ºC, 0.25ºC, 0.125ºC, y 0.0625ºC. Siendo la de 12 bits la utilizada por defecto. Utiliza el protocolo de transmisión 1-Wire de Dallas semiconductor que utiliza un único cable de datos para la comunicación entre dispositivos. El protocolo permite la utilización del mismo bus por varios sensores ya que cada dispositivo viene con una dirección única de 64 bits. El sensor también puede operar en modo alimentación parásita eliminando así la necesidad de conectarlo a una fuente de alimentación externa, el sensor utiliza la energía que recolecta del bus de datos cuando este no se utiliza almacenándola en un condensador. Características del sensor DS18B20:
En el encapsulado encontramos la ROM de 64 que contiene la dirección única del sensor, la memoria scratchpad que contiene el registro de 2 bytes que almacena la salida digital del sensor de temperatura, además proporciona acceso al byte donde se almacena los registros de alarma de temperatura alta y baja (TH y TL) y el byte de registro de configuración donde se almacena la configuración de resolución del sensor. Los registros de configuración y de alarma TH y TL no son volátiles, de esta manera conservan los datos una vez apagado el sensor. Conexión del sensor al microcontrolador: La conexión se realizará con alimentación externa. El pin de datos necesita una resistencia de pull-up de 4,7K para mantener el nivel del bus en alto cuando este no se utiliza. El pin de datos irá conectado al pin RF2 del microcontrolador y estará configurado como entrada o como salida según se envíen o se reciban datos. Flowchart para la lectura del sensor DS18B20: Implementación:
El estado inicial es el estado ‘Idle’, si pulsamos el botón RB0 pasamos al modo ‘Setup’, seguidamente se pasa a la lectura del sensor en el estado ‘Read DS18B20’. Una vez leído el sensor en el estado ‘Send data’ se muestran los datos de temperatura por el LCD y se envían los datos al PC. Si pulsamos el botón RB0 se detiene la lectura y el envío de datos y se vuelve al modo ‘Idle’.
Protocolo 1-Wire: El protocolo 1-Wire es un protocolo diseñado por Dallas Semiconductor. Una red 1-wire está basada en un maestro y uno o varios dispositivos esclavos que utilizan la misma linea para comunicarse además de una tierra común para todos. Es necesaria una resistencia de pull-up en la linea de datos para mantener la linea en alto. Características del bus 1-Wire:
Operaciones del bus 1-Wire: Hay cuatro operaciones básicas que se pueden realizar en el bus que son Reset, Escribir '0', Escribir '1' y Leer bit. Para escribir un byte de datos combinaremos las operaciones de escribir '0' o '1'. En la siguiente figura se muestra el diagrama de tiempo del protocolo 1-Wire. Es similar a utilizar PWM (Pulse-Width Modulation) ya que para transmitir un '0' utiliza un pulso ancho y para transmitir un'1' un pulso estrecho durante el time slot. La comunicación la inicia el maestro con la operación Reset para sincronizar el bus, en ese momento queda a la espera de que los esclavos lleven el bus a nivel alto indicando así que están disponibles para iniciar la comunicación con el maestro. Para escribir un dato el maestro lleva el bus a nivel bajo durante 6 us y después dependiendo de si se quiere transmitir un '0' dejará el bus a nivel bajo hasta los 60 us o si quiere transmitir un '1' lo llevará a nivel alto hasta los 60 us. Para leer un dato el master lleva a nivel bajo durante 6 us el bus en ese momento queda a la espera de que es esclavo envié el bit a transmitir. Para transmitir un '1' el esclavo lleva el bus a nivel alto y para transmitir un '0' lo deja en nivel bajo. El master leerá el bus pasados 15 us y esperará hasta los 60 us para llevar de nuevo el bus a nivel alto y realizar de nuevo la operación de lectura hasta que se termine la transmisión de un byte. Librerías de Microchip para el protocolo 1-Wire: Microchip nos proporciona la librería necesaria para la comunicación con los dispositivos compatibles con 1-wire. Las funciones disponibles son la las siguientes:
|
Diseño de una estación metereológica autónoma sin hilos y de bajo consumo > Proyectos > Sensores >