Inicio

lunes, 4 de junio de 2018

Laboratorio N° 6




TERMOSTATO CON PANTALLA LCD

FASE 2: 
Lectura de Entradas Analógicas y Sensor de Temperatura




1. COMPETENCIA ESPECIFICA DE LA SESIÓN
  • Lecturas analógicas de un canal del PIC
  • Configuración de un Sensor de Temperatura
  • Lectura analógica en una pantalla LCD


    2. MARCO TEÓRICO


    ¿QUE ES UN SENSOR LM35?

    El LM35 es un sensor de temperatura digital.

     Este es un integrado con su propio circuito de control, que proporciona una salida de voltaje proporcional  la temperatura,  diferenciándose así  de otros dispositivos como los termistores en los que la medición de temperatura se obtiene de la medición de su resistencia eléctrica
    Los sensores LM35 son relativamente habituales en el mundo de los aficionados a la electrónica por su bajo precio, y su sencillez de uso.
    Ademas, la salida del LM35 es lineal con la temperatura, incrementando el valor a razón de 10mV por cada grado centígrado. El rango de medición es de -55ºC (-550mV) a 150ºC (1500 mV). Su precisión a temperatura ambiente es de 0,5ºC.

    ESQUEMA ELÉCTRICO

    • El pin central proporciona la medición en una referencia de tensión, a razón de 10mV/ºC.
    • Los pines externos son para alimentación 
    En la siguiente imagen podemos observar el patillaje del LM35 

    Funcionamiento del  sensor DS18B20


    Este es un sensor  que mide temperatura del líquidos  y gases.

    Lo más importante de esta parte es la disposición de los pines.
    Debemos tomar en cuenta que encontramos una disposición diferente para cada encapsulado; Sabiendo que el mas adecuado  para  prototipar con Arduino es el TO-92 por su fácil conexión en la una protoboard.





      Existen tres encapsulados: 
    • TO-92,
    •  SO 
    •  μSOP. 

    Características

    • Almacena la temperatura obtenida y dispone de dos alarmas que se disparan si la temperatura es mayor o menor que un umbral de temperatura máxima o temperatura minima 
    • No solo mide la temperatura, tambien incorpora una memoria de 64-bit(equivalente a 8 bytes) así almacenando el identificador o dirección única de cada sensor.
    • El primer byte identifica el tipo de componente. Por ejemplo para los DS18B20 es el número 28 en hexadecimal.
    • Esta dirección única es necesaria dentro del bus 1-Wire para identificar cada uno de los sensores de temperatura DS18B20 conectados al bus de comunicación.
    • Se consiguen dos cosas, debido a que se utiliza este tipo de comunicaciones 
    1.- Por un lado robustez en la transmisión de los datos ya que trabaja con datos digitales, mucho menos sensibles a los efectos adversos del ruido que las señales analógicas. 
    2.- Por otro lado permite conectar muchos sensores de temperatura con un único pin digital.
    Internamente tiene otro tipo de memoria que sirve para diferentes cosas. Utiliza el sistema de verificación de redundancia cíclica CRC para la detección de errores en los datos. El código CRC se almacena en la memoria.



    Con estas características, el DS18B20 se convierte en un sensor bastante potente con unas capacidades superiores a otros en el mismo rango de precios.


    3. EVIDENCIAS DENTRO DEL LABORATORIO:


    3.1. Simular y probar en el entrenador el programa del LCD de acuerdo al siguiente circuito y código 
     Asegúrese que el PIN RW esté conectado a GND (jumper sin conectar) y que el LCD esté conectado al PUERTO D mediante 
    interruptores rojos debajo del mismo:
     Aqui, para compilar de manera correcta el programa se realizaron los cambios siguientes (partes resaltadas):



    3.2. Realizar los siguientes cambios sugeridos y muestrar sus resultados

    a. Donde dice “#device adc=8” cambie por “#device adc=10”; convierta la variable “lectura”
    en entero de 16 bits y la línea printf cambie “%4u” por “%4lu”. 






    Cambio mostrado en la pantalla LCD, ¿por qué?.





    b. Convertir el valor leído en valor de voltaje de 0 a 5 voltios. Para esto cambie la variable “lectura” a variable tipo float y configure su forma de mostrarse en el LCD. Luego, en la función While(true), añada la instrucción “lectura = lectura / 204.6”. Cambie las instrucciones para que en la pantalla del LCD aparezca algo así “Tension: 3.456 v”.





    c. Finalmente agrague una condición IF para que si el valor de voltaje supera 4.5 voltios,

    mostrar el mensaje “WARNING” en la primera línea del LCD.




    4. OBSERVACIONES
    •   La formula  LECTURA = lectura /204.6, nos sirve para convertir la lectura decimal a voltaje
    •  El convertidor analógico digital (adc) puede trabajar a una resolución de 8 bits, con la cual puede contarse de 0 hasta 255 y con una resolución de 10 bits, de 0 a 1023.
    •  El PIN WR del lcd lo asignamos al PIN A0, los parámetros de la línea setup _adc_ports  cambiaron por AN0_AN1_AN3 y el canal de lectura  a número 3, han sido los parametros que cambiamos para poder corregir complicaciones del programa
    •  La señal analógica de entrada la obtuvimos a partir de un potenciómetro colocado en configuración divisor de tensión de 0 a 5 voltio
    •  Al cambiar la resolución a 10 bits la variable de lectura cambiara de tipo int simple a  int 16 debido a que tendrá mayor tamaño , también el tipo de dato  de salida cambiara a  %4lu entero largo sin signo.
    •  El número 4 en 4%lu nos permite crear  cuatro espacios  en blanco para 4 bits a la  izquierda

    5. CONCLUSIONES

    • Comprendimos que la variable que debemos usar tiene que ser según sea nuestra necesidad
    • Comprbamos la utilidad de las entradas analógicas del PIC 16F877A, las cuales  convertimos a digitales  para poder leerlas  en una pantalla LCD.
    • Simulamos un sensor de temperatura con un potenciómetro conectado a una fuente de 5 voltios


    No hay comentarios:

    Publicar un comentario