Está en la página 1de 6

UNIVERSIDAD TECNOLÓGICA DE PANAMA

FACULTAD DE INGENIERÍA ELÉCTRICA


DEPARTAMENTO DE CONTROL
LABORATORIO #5

TÍTULO Presentador de Datos


ASIGNATURA Instrumentación Electrónica Industrial
CARRERA Lic. en Sistemas Eléctricos y Automatización
Lic. en Electrónica Digital y Control Automático

1 OBJETIVOS
Que el estudiante se familiarice con el equipo y las herramientas de desarrollo tales como el
microcontrolador Arduino, y pueda verificar el uso del visualizador LCD como elemento de salida en la
cadena de medición.

2 MATERIALES Y EQUIPO
1. Tarjeta Arduino.
2. Pantalla LCD.
3. Botón n.o.
4. Resistencia de 10K.
5. Cables de conexión.
6. Computadora con IDE Arduino.

3 INTRODUCCIÓN
Este laboratorio permite que el estudiante se familiarice con el hardware y el software del Arduino y su
ambiente, en esta ocasión se debe verificar el concepto de presentador de datos del medidor. Se
utilizará la pantalla LCD por ser más adecuadas para mostrar mensajes alfanuméricos que las pantallas
de siete segmentos.

4 TEORÍA

PANTALLA LCD
Los elementos presentadores de datos pueden ser de diversos tipos, desde un led, pantallas siete
segmentos, la pantalla de la computadora y pantallas LCD. La pantalla que utilizamos con el Arduino
en este experimento es el modelo LCD1602, que tiene dos líneas de 16 caracteres y cada carácter está
formado por una matriz de 5X8 puntos. Las pantallas paralelas son dispositivos con un bus de datos de
8 bits y un bus de control. Escribir a través de este puerto paralelo requiere de mucho cuidado ya que se
debe cumplir con una secuencia de comandos y tiempos específicos. La pantalla LCD1602 se ha
modificado para facilitar su uso, como se puede observar en la figura #1, en la parte de atrás tiene un
módulo I2C (inter-integrated circuit) que permite que se le pueda transferir la información en forma
serial, y por lo tanto utiliza menos líneas de comunicación.
El bus I2C utiliza solo dos líneas bidireccionales, Serial Data Line (SDA) y Serial Clock Line (SCL).

1
La tabla #1 muestra el conexionado de pines entre la pantalla y el Arduino, como se muestra en la
figura #2.

Figura #1. Pantalla LCD I2C 1602, con módulo serial.

Tabla #1. Conexiones entre la pantalla y el Arduino.

LCD ARDUINO
SDA A4
SCL A5
VCC 5V
GND GND

Figura #2. Conexión entre la pantalla y el Arduino.

2
Otra ventaja que se tiene es que existen funciones y librerías para el fácil uso de esta pantalla. Para este
modelo se tiene la función LiquidCrystal_I2C.h que permite manejar todos los recursos de la pantalla.

La forma de utilizarla es escribir el nombre asignado a la pantalla seguida de la función programada,


por ejemplo:
1. lcd.clear(): Borra la pantalla y pone el cursor en el extremo izquierdo superior.
2. lcd.setCursor(15,0): Pone el cursos en la línea cero y columna 15.
3. lcdScrollDisplayLeft(): Mueve el contenido de la pantalla un carácter hacia la izq.
4. lcdScrollDisplayRight(): Mueve el contenido de la pantalla un carácter hacia la der.
5. lcd.print(“Tem= ”): Imprime Tem= .
6. lcd.print(tem): Imprime el contenido de la variable tem.
7. lcd.print(char(224)): Imprime el carácter alfa de la tabla #2, ASCII (11100000).
8. lcd.print(char(B11100000)): Imprime el carácter alfa de la tabla #2

La otra librería que se debe incluir cuando se utilizan dispositivos seriales es wire.h. Esta librería le
permite comunicarse con dispositivos I2C / TWI. En las tarjetas Arduino se tiene el SDA (línea de
datos en A4) y la SCL (línea de reloj en A5).
La tabla #2 muestra la lista de caracteres ASCII que se pueden mostrar en la pantalla y la forma de
obtener el valor del carácter es formando el byte con los cuatro bits de la fila superior, como la parte
alta del byte y los cuatro bits de la columna izquierda como la parte baja del byte. Por ejemplo, para
imprimir un cero, el byte está formado por 0011 0000, es decir, $30 (0x30), y así para todos los
caracteres.

3
Tabla #2. Listado de caracteres ASCII.

4
5 PROCEDIMIENTO
1. Construya el circuito como se muestra en la figura #2, que corresponde con el tabla #1.
Alambre un botón adicional para mostrar un mensaje diferente cuando éste es presionado.
2. Copie el programa correspondiente al listado que se da al final de la guía.
3. Compile el programa, verifique que en la librería esté incluida LiquidCrystal_I2C.h y wire.h.
4. Transfiera el programa hacia la tarjeta.
5. Observe el mensaje en el display, presione el botón para mostrar un mensaje diferente.

6 PROGRAMA
/**********************************************************
Nombre: LAB5LCD1
Función: Programa que prueba la pantalla LCD 1602, debe verse el mensaje: LABORATORIO #5, y en
la segunda fila: TOCA EL BOTON. Si se presiona el botón alambrado al pin 12, se debe visualizar el
mensaje: *FIE 2017*, desplazándose hacia la izquierda, y en la segunda fila: Hola a todos!.
Modificación del original de Sunfounder
**********************************************************/
#include <Wire.h> // Librería para comunicación serial
#include <LiquidCrystal_I2C.h> // Librería para la pantalla LCD serial.

/**********************************************************/
char array1[]="*FIE 2017* "; //Arreglos para imprimir en la pantalla LCD
char array2[]="Hola a todos! "; //
const int boton = 12; //Botón en el puerto 12

// Inicializa la librería de la LCD con la dirección, líneas y columnas.


LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display

/*********************************************************/
void setup()
{
lcd.init(); //Inicializa la LCD
lcd.backlight(); //inicializa la luz trasera
pinMode(boton, INPUT); //Inicializa el botón como entrada.
}
/*********************************************************/
void loop()
{
if(digitalRead(boton) == HIGH) //Verifica si se presiona el botón
{
lcd.setCursor(15,0); // Pone el cursor en la columna 15, línea 0
for (int positionCounter1 = 0; positionCounter1 < 26; positionCounter1++) //Contador de caracteres
{
lcd.scrollDisplayLeft(); //Desplaza el contenido del display un espacio hacia la izquierda.

5
lcd.print(array1[positionCounter1]); // Imprime el mensaje en la LCD
delay(300); //Espera 300 miliseg.
}

lcd.clear(); //Borra la pantalla y coloca el cursor en la esquina superior izquierda.


lcd.setCursor(15,1); //Pone el cursor en la columna 15, línea 1
for (int positionCounter = 0; positionCounter < 26; positionCounter++) //Contador de carcateres.
{
lcd.scrollDisplayLeft(); //Desplaza el contenido del display un espacio hacia la izquierda.
lcd.print(array2[positionCounter]); //Imprime el mensaje en la pantalla.
delay(300); //Espera por 300 miliseg.
}
lcd.clear(); //Borra la pantalla y coloca el cursor en la esquina superior izquierda.
}
else
{
lcd.setCursor(1,0); //Pone el cursor columna 1, line 0
lcd.print("LABORATORIO #5"); //Imprime el mensaje en la pantalla.
delay(1000); //espera un segundo.
lcd.setCursor(1,1); //Pone el cursor columna 1, line 1
lcd.print("TOCA EL BOTON"); //Imprime el mensaje en la pantalla.
delay(1000); //espera un segundo.
}
lcd.clear(); //Borra la pantalla y coloca el cursor en la esquina superior izquierda.
}
/************************************************************/

7 CONCLUSIONES
Escriba las observaciones que tiene sobre los diferentes efectos en la pantalla.

8 ASIGNACIÓN
1. Modifique el programa de tal manera que se pueda visualizar una información que se desplace
hacia la derecha.
2. Coloque otro botón que permita la visualización de un mensaje diferente, cuando este es
presionado.

9 REFERENCIAS
1. www.arduino.cc
2. www.sunfounder.com

También podría gustarte