jueves, 15 de marzo de 2018

LABORATORIO NRO. 5

INTEGRANTES

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

 

FASE 1: Programación de una pantalla LCD


I. COMPETENCIA ESPECIFICA DE LA SESION
  • Conocer el Display LCD y su funcionamiento
  • Programar eficientemente el LCD
  • Programar HMI para proyecto actual.

II. PROCEDIMIENTO

1. Descripción y funcionamiento de una pantalla LCD

Existen muchos tipos de LCD, variando en forma y tamaño, número de píxeles, color, etc. El que se utilizó, es del tipo más sencillo de controlar, y son los displays LCD diseñados para interactuar con circuitos integrados, de entrada de 4/8 bits en paralelo. Estos se caracterizan principalmente por el número de caracteres que son capaces de representar, que viene dado en su datasheet generalmente por unos números del tipo “8×1″, “16×2″, “20×4″, que significan “Número de caracteres x Número de filas“, así pues, un display LCD 16×2, es capaz de representar 2 filas de 16 caracteres. Como el usado en el presente laboratorio.
Estos displays se controlan muy facilmente con una placa Arduino o un PIC y muy pocas lineas de código. Para ello veamos sus pines para saber cómo se conectan:




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

Transcriba el siguiente código para simular y probar el funcionamiento del LCD. Asegurarse que el pin RW esté conectado a GND y el LCD esté conectado al puerto D, mediante los interruptores rojos debajo del mismo.


-Se transcribió el código proporcionado en el laboratorio en el CCS Compiler, y obetemos lo siguiente:



 

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








¿Cómo hacer para mostrar números negativos?, ¿cómo hacer para mostrar números con decimales?

Para mostrar números negativos, solo basta con modificar nuestra variable “dato” para que sea con signo y en nuestra impresión en el LCD, colocar “%ld”, como se muestra en el código siguiente:





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






Para mostrar números decimales, hay que modificar nuestra variable “dato” para que sea con decimales, agragando dos variables más una para la parte entera y otra float para los decimales y en nuestra impresión en el LCD, colocar “%2.5f”, como se muestra en el código siguiente:




Al presionar cada vez A5 se incrementa 7 en las unidades y 10 en los decimales. 
3. Basándonos en lo guiado por el laboratorio, realizar un programa que INCREMENTE un número en 150 unidades cada vez que se presione un pulsador y DECREMENTE dicho número en 25 unidades cada vez que se presione otro pulsador.Si el valor del número supera 1000 unidades, mostrar en la pantalla LCD en la primera línea: “FULL”. Si el valor llega a ser menor o igual a cero, mostrar “VALOR MINIMO”. En ambos casos el valor del número no debe incementarse ni decrementarse.

Nuestro código para este programa quedaría como el que se muestra a continuación.





 
Se utilizó la variable “var”, para impedir que al presionar ya sea el pin A5 o el pin E2, este evite seguir aumentando o disminuyendo de valor una vez que han pasado los límites máximo y mínimo establecidos. Al igual que en la pantalla nos indica si es el valor mínimo o si este se encuentra full. El funcionamiento del programa, se puede apreciar en el siguiente video.



III. OBSERVACIONES Y CONCLUSIONES

Observaciones

- Solo se debe activar uno de los dos switch rojos debajo de la pantalla LCD, ya que si se activan los dos podrían afectar el equipo.
- Se debe utilizar una librería específica para hacer uso de la pantalla LCD, la cual la digitamos como #include <lcd.c>.
- Se tienen que definir los pines que usaremos de la pantalla LCD, al comienzo de nuestro código.

Conclusiones

-  Para hacer uso de los antirrebotes que pueden suceder al presionar un pulsador, podemos utilizar el comando delay, o también usar la instrucción while, creando un bucle que no ejecute nada cuando este, este siendo presionado. 
- Para retener un bucle y se quede congelado en lo que deseemos, podemos utilizar el comando while y entre llaves, no poner ningún comando, pero este se quedara en es bucle infinitamente, otra opción sería agregar una variable y colocar una condición que la incluya  como se realizó en nuestro último programa.
 - Este es un display de 16*2, por lo que si deseamos ir a un punto en específico, debemos usar el comando “lcd_gotoxy(x,y)” en el cual especificamos un espacio horizontal en “x” y una fila en “y”, dentro del rango de este. Ósea 16 campos verticales y 2 líneas horizontales.
- Se puede utilizar números enteros positivos, enteros negativos y decimales. Para esto se deben conocer el tipo de variables que usa el programa, como el “int”, el “signed int” y el “float”. Los cuales nos ayudaron con las tareas solicitadas en el laboratorio.



 


1 comentario: