lunes, 16 de abril de 2018

LABORATORIO NRO. 8





INTEGRANTES

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


FASE 4: Implementación del Proyecto


I. COMPETENCIA ESPECIFICA DE LA SECION

⦁ Conocer el proceso de desarrollo de un proyecto con PIC
⦁ Aplicar todas las técnicas de programación conocidas hasta este momento.
⦁ Aplicar estos conocimientos en la realización de un proyecto.


II. PROCEDIMIENTO

1. Realice la implementación del proyecto de termostato digital con las siguientes características.




  • La pantalla inicial deberá mostrarse al principio durante 2 segundos, luego deberá mostrarse la pantalla normal.


  • Para aumentar o disminuir la temperatura SET, deberá presionarse los pulsadores respectivos, pero aún no debe controlar la salida de relé, sino hasta presionar “aceptar”. El botón “cancelar” ejerce la función de RESET y detiene todo el proceso.


  • El sensor de Temperatura puede ser analógico (LM35) o digital (DS18B20). Si es analógico, considerar que 1voltio corresponde a 100 grados.


  • El rango de temperatura OK será de 10 grados.


Se escribió el código en el CSS Compiler, para cumplir con las condiciones solicitadas para el proyecto, el cual posee un código y una librería adicional llamada “1wire.c”, que sirve para leer el sensor de temperatura DS18B20. Nuestro código quedo como se muestra a continuación:






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





III. OBSERVACIONES Y CONCLUSIONES

Observaciones

  • Se necesitó de una librería adicional para la lectura del sensor de temperatura DS18B20.


  • Cambiamos el pin C7 por el A0 en nuestro código ya que en la simulación virtual funciona con el pin C7 mientras que en la placa se usa el pin A0 para la escritura en el LCD.


  • Se realizó un scroll del texto ya que este no cabía en la pantalla porque nuestro texto excedía los 16 caracteres.


Conclusiones

  • Para la lectura del sensor digital DS18B20 es necesario el uso de una librería, al cual debemos editar de acuerdo al puerto con el que estemos trabajando en la tarjeta, en nuestro caso se modificó al puerto A4 ya que es el puerto que se usó.


  • Es necesario conocer cómo funciona el sensor y aplicarlo en el código para la lectura de nuestro sensor digital, en nuestro caso fue proporcionado por el docente. Si se utiliza un sensor LM35 se debe habilitar un escalamiento de las unidades pero es más sencilla la estructuración del código para su lectura que la utilización del sensor digital DS18B20.


  • Se debe tener un claro manejo del display de 16x2, como la utilización de sus funciones de escritura, limpieza de los caracteres mostrados, la designación de caracteres especiales como el de grados (°), usados ampliamente para la creación de nuestro código.


  • Se debe tener conocimiento previo de estructuras de código, como las instrucciones de condición, el uso de variables para realizar bucles o empezar bucles, el uso de subprogramas, la designación de los puertos correctos de nuestra placa y los tipos de variables a usar.









PROYECTO Nº 2 - TERMOSTATO DIGITAL CON PANTALLA LCD






INTEGRANTES

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

FASE 4: Implementación del Proyecto

“TERMOSTATO DIGITAL CON PANTALLA LCD”


I.    CAPACIDAD TERMINAL
  • Utilizar al microcontrolador en aplicaciones de control electrónico.
  • Desarrollar y ejecutar programas en un microcontrolador PIC .
  • Programar y configurar interfaces básicas del microcontrolador .

II.    DESCRIPCION DEL PROYECTO






Se trata de un circuito que deberá controlar el encendido y apagado de un relé (el cual se supone que conecta/desconecta un elemento calefactor) dependiendo de la temperatura leída en el sensor y de la temperatura seteada por los pulsadores respectivos. La pantalla LCD y los leds muestran el estado del termostato.

III.    MATERIALES Y EQUIPOS
 
  • CCS Compiler instalado. 
  • Entrenador de PICS 
  • Pantalla LCD 
  • PIC16F877A 
  • Guía de Laboratorio. El trabajo se desarrolla de manera GRUPAL. 
  • PC con Software de simulación.




IV.    FUNDAMENTO TEORICO 

  • Pantallas LCD de 16x2 
  •  Revise el siguiente link:
http://todoelectrodo.blogspot.pe/2013/02/lcd-16x2.html
  • Simulación de módulo entrenador a utilizar:


  • Lectura de un puerto analógico.
  • Sensor de temperatura LM35.
  • Sensor de temperatura DS18B20.
  • Manejo de las interrupciones en un PIC.
  • Manejo y configuración del Timer.

            V.    SEGURIDAD EN EL LABORATORIO


























domingo, 1 de abril de 2018

LABORATORIO NRO. 7




INTEGRANTES

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



FASE 3: Manejo del Timer y las Interrupciones



I. COMPETENCIA ESPECIFICA DE LA SECION
  • Conocer el funcionamiento y la configuración de las Interrupciones.
  • Conocer el funcionamiento y la configuración del Timer cero.
  • Aplicar estos conocimientos en la realización de un cronómetro.

II. PROCEDIMIENTO

1. Descripción y funcionamiento de las interrupciones y los temporizadores de un PIC.

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 y se compilo con el CCS Compiler, obteniendo 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 cuente de forma descendente (temporizador regresivo):
 


a) Al presionar pulsador en A5, incrementar MINUTOS. el temporizador aún no debe estar contando el tiempo. (sirve para configurar tiempo de cuenta).

b) Al presionar pulsador en D0, iniciar CUENTA REGRESIVA desde los minutos previamente configurados.

c) Si la cuenta llega a 00:00, congelar la cuenta y sonar BIP 3 veces

 
Nota:
Para verificar que una variable de tiempo (digamos “minutos”) llegó a cero, hacerlo con la instrucción “if (minutos==-1)”
El código ejecutado con los las condiciones señaladas líneas arriba, sería el mostrado a continuación:




Se modificó para que cada centésima disminuya un segundo nuestro contador, cuando el contador llega a 0 segundos, figura 59 segundos nuevamente y disminuye 1 minuto en el contador. Se agregó la función BIP para agregar los 3 bips cuando este llegue a 0 segundo y 0 minutos llamándolo en nuestro programa principal. Nuestro pin A5 se usa para subir la cuenta de los minutos y el pin D0 para empezar nuestro conteo regresivo. Se pude apreciar mejor el funcionamiento y su explicación en el siguiente video.





III. OBSERVACIONES Y CONCLUSIONES



Observaciones

-En la placa tenemos tres timers uno de 8 bits y dos de 16 bits.

-Cambiamos el pin c7 por el a0 debido a que en la simulación si funciona el c7 y en la placa el pin c7 está conectado a otra cosa ya que no está compatible con el lcd.

-Se agregó una variable llamada “fbip”, para poder obtener los 3 bips al final del contador descendente.

-Al inicio nuestra variable minutos debe ser de 1 minuto mínimo para que empiece a contar de forma descendente.

Conclusiones

-Para colocar la velocidad del contador se debe tener en cuenta los bits y el clock del PIC, en el laboratorio pusimos el valor de 61 en el set timer ya que al multiplicar 255 por 0.2 que es el tiempo de respuesta de la placa nos da 51 micro segundos y al multiplicarlo por 256 nos da 13 mili segundos y lo que queremos es 10 mili segundos y el valor más aproximado es 61 ya que nos da 9.9 mili segundos.

-Para la inicialización de nuestro contador usando un pulsador, se debe colocar la sentencia “enable_interrupts (INT_TIMER0)” debajo de la condición del pulsador ya que si esta se pone antes, el contador empezara a contar automáticamente.

- Los minutos y segundos van a -1 en la función de interrupción, ya que si estos son igual a 0, los segundos contaran solo 58 segundos y minutos solo podría iniciar cuenta regresiva si está por encima de 1 minuto.

-Para activar la interrupción de cualquier timer, esta debe estar acompañada siempre por una activación global, la cual habilita todas las interrupciones