sensor 18b20

7

Click here to load reader

Upload: leo-flores

Post on 11-Nov-2014

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sensor 18b20

ESCUELA POLITÉCNICA DEL EJÉRCITO

INGENIERIA ELECTRÓNICA

INSTRUMENTACION Y SENSORES

Nombre: LEONARDO FLORES

Las características del Sensor en CI DS18B20

Descripción

Sensor Digital de temperatura One-wire. Reporta grados C con 9 a 12 bits de precisión -55°C a 125°C. Cada sensor posee un único número de serie de 64-Bit, lo que permite tener un enorme número de sensores en un mismo bus. Este dispositivo es escencial para cualquier proyecto de control de temperatura.

Características:

Interfaz 1-Wire ® que requiere un solo pin del puerto para la comunicación

Cada dispositivo tiene un codigo único de 64-bit almacenado en una ROM

Capacidad de multipuntos simplifica las aplicaciones distribuidas de detección de temperatura

No requiere componentes externos

Puede ser alimentado por la línea de datos. Rango de alimentación es de 3,0 V a 5,5 V

Page 2: Sensor 18b20

Medidas de temperaturas de -55 ° C a +125 ° C (-67 ° F a 257 ° F)

± 0,5 ° C exactitud de -10 ° C a +85 ° C

La resolucion del Termómetro es seleccionable por el usuario de 9 a 12 bits

Convierte la temperatura a 12-bit de la palabra digital en 750 ms (máx.)

Definibles por el usuario no volátil (NV), ajustes de la alarma

Comando de la alarma de búsqueda identifica y trata los dispositivos cuya temperatura se encuentra fuera de los límites programados (una condición de alarma de temperatura)

Las aplicaciones incluyen termostatos, sistemas industriales, productos de consumo, termómetros, o cualquier otro sistema termosensible

Medición de temperatura por medio del sensor DS1820.

La medición de temperatura es una de las tareas más frecuentes realizadas por el

microcontrolador. En este ejemplo, se utiliza un sensor DS1820 para medir. Es capaz de

medir en el rango de 55 °C a 125 °C con exactitud de 0.5 °C. Para transmitir los datos al

microcontrolador se utiliza un tipo especial de la comunicación serial denominado 1-wire.

Debido al hecho de que estos sensores son simples de utilizar y con una amplia gama de

aplicaciones, las funciones almacenadas en la librería One_Wire ponen en marcha y

gobiernan estos sensores.

Esta librería contiene en total tres funciones:

Ow_Reset se utiliza para reiniciar el sensor;

Page 3: Sensor 18b20

Ow_Read se utiliza para recibir los datos del sensor; y Ow_Write se utiliza para enviar los comandos al sensor.

Este ejemplo muestra la ventaja de utilizar librerías con las funciones listas para ser

utilizadas. Concretamente, no tiene que examinar la documentación proporcionada por el

fabricante para utilizar el sensor. Basta con copiar las funciones apropiadas en el programa.

Si le interesa saber cómo se declaran, basta con pulsar sobre alguna de ellas y seleccionar la

opción Help.

Programa

program example_12 ' Nombre de programa

dim LCD_RS as sbit at RB4_bit ' Conexiones del módulo LCDLCD_EN as sbit at RB5_bitLCD_D4 as sbit at RB0_bitLCD_D5 as sbit at RB1_bitLCD_D6 as sbit at RB2_bitLCD_D7 as sbit at RB3_bitLCD_RS_Direction as sbit at TRISB4_bitLCD_EN_Direction as sbit at TRISB5_bitLCD_D4_Direction as sbit at TRISB0_bitLCD_D5_Direction as sbit at TRISB1_bitLCD_D6_Direction as sbit at TRISB2_bitLCD_D7_Direction as sbit at TRISB3_bit ' Final de conexiones del módulo LCD

' Ajustar la constante TEMP_RESOLUTION a la resolusión correspondiente del sensor: ' DS18x20 utilizado: 18S20: 9 (ajustes por defecto pueden ser 9,10,11 o 12); 18B20: 12

const TEMP_RESOLUTION as byte = 9 ' Constante TEMP_RESOLUTION es de tipo byte

dim text as char[9] ' Variable text es de tipo chartemp as word ' Variable temp es de tipo wordsub procedure Display_Temperature( dim temp2write as word ) const RES_SHIFT = TEMP_RESOLUTION - 8 dim temp_whole as byte ' Variable temp_whole rd fr tipo byte temp_fraction as word ' Variable temp_fraction es de tipo word text = "000.0000"

if (temp2write and 0x8000) then ' Comprobar si la temperatura es negativa

Page 4: Sensor 18b20

text[0] = "-" temp2write = not temp2write + 1 end if

temp_whole = word(temp2write >> RES_SHIFT) ' Extraer temp_whole if ( temp_whole div 100 ) then ' Convertir temp_whole en caracteres text[0] = temp_whole div 100 + 48 else text[0] = "0" end if

text[1] = (temp_whole div 10) mod 10 + 48 ' Extraer dígito de decenas text[2] = temp_whole mod 10 + 48 ' Extraer dígito de unidades temp_fraction = word(temp2write << (4-RES_SHIFT)) ' Extraer temp_fraction temp_fraction = temp_fraction and 0x000F ' y convertirlo en temp_fraction = temp_fraction * 625 ' unsigned int text[4] = word(temp_fraction div 1000) + 48 ' Extraer dígito de miles text[5] = word((temp_fraction div 100) mod 10 + 48) ' Extraer dígito de centenas text[6] = word((temp_fraction div 10) mod 10 + 48) ' Extraer dígito de decenas text[7] = word(temp_fraction mod 10) + 48 ' Extraer dígito de unidades Lcd_Out(2, 5, text) ' Visualizar temperatura en el Lcd

end sub

main: ' Inicio de programaANSEL = 0 ' Configurar pines analógicos como digitales de E/S ANSELH = 0

text = "000.0000"Lcd_Init() ' Inicializar el LcdLcd_Cmd(_LCD_CLEAR) ' Borrar el LcdLcd_Cmd(_LCD_CURSOR_OFF) ' Apagar el cursorLcd_Out(1, 1, " Temperature: ")

Lcd_Chr(2,13,178) ' Visualizar el carácter de grado, 'C' para centígrados' Distintos visualizadores LCD tienen diferentes códigos de caracteres para el grado Lcd_Chr(2,14,"C") ' si ve la letra griega Alfa, introduzca 178 en vez de 223

while 1 ' Leer la temperatura en el bucle principal Ow_Reset(PORTE, 2) ' Señal de reinicio de Onewire

Page 5: Sensor 18b20

Ow_Write(PORTE, 2, 0xCC) ' Ejecutar el comando SKIP_ROM Ow_Write(PORTE, 2, 0x44) ' Ejecutar el comando CONVERT_T Delay_us(120)

Ow_Reset(PORTE, 2) Ow_Write(PORTE, 2, 0xCC) ' Ejecutar el comando SKIP_ROM Ow_Write(PORTE, 2, 0xBE) ' Ejecutar el comando READ_SCRATCHPAD

temp = Ow_Read(PORTE, 2) temp = (Ow_Read(PORTE, 2) << 8) + temp

Display_Temperature(temp) ' Formatear y visualizar el resultado en el LCD

Delay_ms(520) ' Retardo de 520 ms wendend. ' Final de programa

BIBLIOGRAFIA

http://www.mikroe.com/chapters/view/87/libro-de-la-programacion-de-los-microcontroladores-pic-en-basic-capitulo-4-ejemplos/

http://www.olimex.cl/product_info.php?products_id=142