lunes, 26 de marzo de 2018

LABORATORIO NRO. 6






INTEGRANTES

José Berenguel Vera P.
 Gianlui Suca Motta
Sebastian Pilares Sosa  

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


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

II. PROCEDIMIENTO

1. Descripción y funcionamiento de las entradas analógicas

Descripción

Esta característica es muy importante a la hora de trabajar con sensores, debido a que estos entregan valores de tensión para reflejar la variable física que está midiendo.
El CAD conversor analógico digital PIC (no todos los PIC lo tienen, para nuestro laboratorio se utilizará el PIC16F877A), permite medir señales analógicas en forma digital, para ello el PIC cuenta con pines por donde le llegará la señal analógica, estos pines deben configurarse como entradas analógicas, el conversor analógico digital PIC cuenta con un circuito que carga un condensador interno al PIC con la tensión analógica que le está llegando a la entrada analógica, luego la tensión almacenada en el condensador lo convierte en un número binario de 10 bits que representará la tensión almacenada en el condensador, este número binario se guarda en sus registros ADRESH y ADRESL de 8 bits cada uno pero estos actúan como un solo registro de 16 bits, en el registro ADRESH se guardan los bits más significativos y en el registro ADRESL se guardan los bits menos significativos, el número que representa la tensión almacenada en el condensador y guardado en forma binaria dentro de estos registros será de 10 bits para el PIC16F877A, la cantidad de bits de este número depende del conversor analógico digital PIC del microcontrolador PIC utilizado.

Funcionamiento

En estas entradas se pueden sensar valores de 0 a 5 V y se pueden representar (según el PIC) con diferentes resoluciones, como por ejemplo 256 valores, 1024 (revisar datasheet).
Así si trabajamos con una resolución de 256 tendremos para 0V una salida de 0 y para los 5V veremos el número 255, lo mismo con otras resoluciones y valores intermedios.

Para configurar las entradas analógicas debemos utilizar el CSS compiler y seleccionar que entradas ocuparemos para nuestros propósitos, por ejemplo pueden configurarse A0, A1 y A3 con el siguiente comando.

 setup_adc_ports(AN0_AN1_AN3);

2. Realice la simulación de los siguientes proyectos guiados

Transcriba el siguiente código para simular y probar el funcionamiento de nuestro CAD de nuestro PIC 16F877A.


Se transcribió el código proporcionado pero se modificó el pin analógico que utilizara la pantalla LCD y el canal de adc a ser usado, obteniendo el siguiente código final para el ejercicio.


Al compilar el código con el CCS Compiler con las pequeñas modificaciones hechas,  obtenemos lo siguiente:



El funcionamiento del código se puede apreciar en el siguiente video:






Realizar los siguientes cambios en el código anterior para que:

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é?

El código ejecutado con los cambios solicitados en este ejercicio seria el siguiente:



El cambio mostrado será que al mover el potenciómetro al máximo este nos dará un valor de 1023 ya que cuenta hasta 10 bits, lo que es 2^10=1024. Se pude apreciar mejor el funcionamiento y su explicación en el siguiente video.




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”.

El código ejecutado con los cambios solicitados en este ejercicio seria el siguiente:
 


La línea agregada de la variable “lectura”, nos permite la conversión en voltaje de 0 a 5 voltios. Aparte que para mostrar los decimales se hace uso del tipo de variable “float”.
Nota: Si se desea tener la cantidad de enteros y decimales mostrados se utilizara “%2.5” en la línea 34 lo cual nos indicaría 2 cifras enteras y 5 cifras decimales. Si no se especifica, el programa lo hará automáticamente, como en nuestro programa.
Se pude apreciar el funcionamiento y su explicación en el siguiente video.




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.

El código ejecutado con lo solicitado en este ejercicio seria el siguiente:

Se agregó la condición encerrada en un cuadrado, la cual nos permite mostrar el mensaje “WARNING” cuando se supera los 4.5 voltios. Se pude apreciar el funcionamiento y su explicación en el siguiente video.



3. Investigar el funcionamiento del sensor LM35 y el sensor DS18B20

LM35


Es un sensor de temperatura con una precisión calibrada de 1ºC y un rango que abarca desde -55º a +150ºC.
El sensor se presenta en diferentes encapsulados pero el más común es el to-92 de igual forma que un típico transistor con 3 patas, dos de ellas para alimentarlo y la tercera nos entrega un valor de tensión proporcional a la temperatura medida por el dispositivo.
Con el LM35 sobre la mesa las patillas hacia nosotros y las letras del encapsulado hacia arriba tenemos que de izquierda a derecha los pines son: VCC – Vout – GND.
La salida es lineal y equivale a 10mV/ºC por lo tanto:

+1500mV = 150ºC
+250mV = 25ºC
-550mV = -55ºC

Funcionamiento: Para hacernos un termómetro lo único que necesitamos es un voltímetro bien calibrado y en la escala correcta para que nos muestre el voltaje equivalente a temperatura.
El LM35 funciona en el rango de alimentación comprendido entre 4 y 30 voltios.
Podemos conectarlo a un conversor Analógico/Digital y tratar la medida digitalmente, almacenarla o procesarla con un micro Controlador o similar.

El siguiente es un esquema de conexionado del LM35 con un arduino UNO.



DS18B20

El sensor de temperatura DS18B20 es un dispositivo que se comunica de forma digital. Cuenta con tres terminales: Vcc, GND y el pin Data. Este sensor utiliza comunicación por  protocolo serial digital OneWire. Esté protocolo de comunicación permite enviar y recibir datos utilizando un solo cable. A diferencia de otros, que utilizan dos o más líneas de comunicación digital. Para leer el sensor con un Arduino es necesario utilizar dos librerías que deben ser instaladas antes de cargar el código a nuestra placa de desarrollo. Entonces las librerías son las siguientes:

·    Dallas Temperature.
·    OneWire

CARACTERÍSTICAS

·    Sensor Digital.
·    Resolución de 9 y 12 bits.
·    Rango de operación de -50 a 125 grados Centígrados.
·    Precisión +- 0.5 grados.
·    Protocolo OneWire.

El diagrama de conexiones para el DS18B20 y su correcto funcionamiento del sensor, es de vital importancia colocar una resistencia de 4.7K entre el pin de Datos o Señal y el pin Vcc, ya que sin esta resistencia el sensor no funcionará.
Además consta de un cable largo para aplicaciones donde es necesario sumergirlo en líquidos u otras sustancias. Entonces, esta presentación del sensor sólo trae 3 terminales o cables de conexión.
Finalmente el pin de Vcc es el cable Rojo, GND es el cable Negro y el Cable de datos puede ser de color Amarillo o Blanco.

 


También tenemos que tener en cuenta que el rango de medición de este sensor está entre los -55ºC y los 150ºC. La conexión del sensor al Arduino junto a la pantalla LCD.




III. OBSERVACIONES Y CONCLUSIONES


 Observaciones

-Al trabajar con un módulo LCD, debemos configurar su bus de datos como de 4 u 8 bits.
-El módulo LCD posee puertos para la entrada de datos y a través de ellos se pueden ingresar caracteres a la pantalla (R/W=0) o se puede leer de él (R/W=1).
-Se pueden enviar a la pantalla del módulo LCD la mayoría de los caracteres de una tabla ASCII.

Conclusiones

-El uso de microcontroladores es muy extenso ya que pueden ser usado para diferentes aplicaciones, en diversos proyectos ya que su programcion no es compleja y los programadores estan al alcance de todos.
-Nuestra laboratorio sirvio de gran utilidad por su versatil control y reprogramacion que se puede ajustar a diferentes necesidades ya sea por ejemplo en un horno o incubadora, etc.
-Estas de mas resaltar la gran importancia y avance tecnologico que tiene hoy en dia el lenguaje C al igual que los pic que salen al mercado y las grandes e interesantes cosas que podemos hacer con ellos.

 












 

1 comentario: