domingo, 1 de abril 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 SESION

  • 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. A diferencia 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, el LM35 es un integrado con su propio circuito de control, que proporciona una salida de voltaje proporcional a la temperatura.
    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.
    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.

    ESQUEMA ELÉCTRICO



    El patillaje del LM35 se muestra en la siguiente imagen. Los pines extremos son para alimentación, mientras que el pin central proporciona la medición en una referencia de tensión, a razón de 10mV/ºC.






    ¿Cómo funciona el sensor  sensor DS18B20?


    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. Para cada encapsulado encontramos una disposición diferente. Existen tres encapsulados: TO-92, SO y μSOP. El más adecuado para prototipar con Arduino es el TO-92 por su fácil conexión en la una protoboard.




    Además de medir la temperatura, el DS18B20 incorpora una memoria de 64-bit(equivalente a 8 bytes) para almacenar 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.
    Gracias a que utiliza este tipo de comunicaciones, se consiguen dos cosas. 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. 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.
    También 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 mínima.


    Con todo 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. Simule y pruebe en el entrenador el programa del LCD de acuerdo al circuito y código siguiente. 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:







    NOTA: En esta parte, para que compilara bien el programa se realizaron los cambios siguientes (partes resaltadas):






    3.2. Realice los cambios sugeridos a continuación y muestre 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”. 






    ¿Cuál es el cambio mostrado en la pantalla LCD? ¿por qué?.





    b. Convierta 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.





    3.3 Video mostrando las tareas realizadas en laboratorio Y SIMULACION del programa solicitado.







    4. OBSERVACIONES

    •  Observamos que 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.
    •  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 voltios.
    • Para corregir los errores de compilación del programa tuvimos que cambiar los siguientes parámetros 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.
    •  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.
    •  Para convertir la lectura decimal a voltaje utilizamos la formula  LECTURA = lectura /204.6.

    5. CONCLUSIONES


    • Se comprobó la utilidad de las entradas analógicas del PIC 16F877A, las cuales  convertimos a digitales  para poder leerlas  en una pantalla LCD.
    • Pudimos simular un sensor de temperatura con un potenciómetro conectado a una fuente de 5 voltios
    • Se comprendió que tipo de variables debemos utilizar  según sea nuestra necesidad.



    6. FOTO GRUPAL






    INTENGRANTES:


    - GABRIELA BENITO MENDOZA

    -PERCY VALDIVIA APAZA 

    1 comentario: