Práctica 8: Mini Pantalla





Para esta práctica se necesita:

  1. 1. Placa Arduino UNO
  2. 2. Módulo LCD
  3. 3. Cables para realizar las conexiones

  4. Materiales

Introducción


En esta práctica aprenderemos a utilizar un display LCD con Arduino. LCD es el acrónimo de Liquid Crystal Display (Pantalla de Cristal Líquido) y estas pantallas se utilizan para mostrar información o datos como los de un sensor de temperatura, un sensor de humedad, etc.

Hay una amplia gama de pantallas LCD que se pueden encontrar en el mercado. Para la práctica utilizaremos un display de 16x2. Esto quiere decir que podemos mostrar 16 caracteres en la primera fila y otros 16 en la segunda fila.

El objetivo es mostrar un mensaje de bienvenida al encender la placa Arduino. Luego un texto en la primera fila y un valor numérico que se valla incrementando cada segundo en la segunda fila. Con el fin de facilitar el número de conexiones en nuestra placa, utilizaremos el display LCD con un módulo de comunicación I2C integrado.

Montaje


Realizar la conexión del módulo LCD cableando el terminal GND al pin GND, el terminal “Vcc” a +5V, el terminal “SDA” al pin A4y el terminal “SCL” al pin “A5” de la placa Arduino.


tablas


arduino

Programación


Antes de empezar a colocar los bloques de programación, es conveniente plantear la lógica de funcionamiento de nuestro programa. Recordemos que el objetivo es mostrar un mensaje de bienvenida al inicio en pantalla durante un segundo. Luego un mensaje y un valor numérico que se va incrementando cada segundo.

Con los mensajes que se van a mostrar en pantalla no tenemos inconveniente ya que estos van a ser los mismos durante el tiempo que la placa este encendida. Con el valor numérico que se va a ir incrementando, sí debemos darle un manejo un poco diferente. Primero tenemos que debe iniciar en cero (“0”), al siguiente segundo debe mostrar un uno (“1”), al siguiente segundo debe mostrar un dos (“2”) y así sucesivamente. Para ello necesitamos guardar el valor en alguna parte, de tal manera que en cada segundo solo tengamos que sumarle un uno al valor anterior. Esa operación de tener el valor en memoria lo realizamos con una variable y para ello utilizaremos el bloque “set integer variable”, un tipo de variable para manejo numérico. La llamaremos Contador y su valor inicial la colocamos en cero. Seguidamente debemos mostrar el mensaje de bienvenida en las dos filas, esperamos un segundo para luego mostrar el siguiente mensaje en la primera fila. Esta primera parte la debemos hacer una única vez y es lo que conoce como configuración de inicio y se realiza en el bloque setup.

La siguiente parte es colocar un texto en la primera fila y el valor numérico que tenemos en la variable Contador en la segunda fila. El siguiente paso es incrementar el número, para ello solo debemos sumarle un uno a la variable Contador. Finalmente debemos esperar un segundo para luego repetir nuevamente el proceso. Estos pasos se deben repetir mientras la placa esté encendida, por lo tanto, la colocaremos en el bloque loop.

La secuencia del programa nos quedaría de la siguiente manera:

  1. 1. Quitar el bloque

    Figura 3 - 120


  2. 2. Ir a la sección “Control” y seleccionar el bloque “program”:

    Figura 3 - 121


  3. 3. En la barra lateral ir a la sección “Variables/Constants” y seleccionar el bloque “set integer variable”:

    Figura 3 - 122


    Figura 3 - 123
  4. 4. En la barra lateral ir al botón “DuinoEdu Grove Add” y seleccionar el bloque “LCD I2C : Config. DUPONT”.

    Figura 3 - 124


    Colocar el bloque en la sección “setup” del bloque “program” y asignar el valor de dirección (Adresse I2C) en 0x27.

    Figura 3 - 125


    Nota: El bloque se coloca en la sección “setup” porque es un bloque de configuración y solo se requiere hacer una vez (cada vez que el Arduino se enciende), por eso no se debe ubicar en el “loop”. Los valores de 16 y 2 se dejan tal cual porque el módulo LCD que viene en el kit es de 2 líneas y 16 columnas.
  5. 5. Ir al botón “DuinoEdu Grove Add” y seleccionar el bloque “LCD I2C RGB Backlight”.

    Figura 3 - 126


    Ubicar el bloque en la sección “setup” y colocar un mensaje en la sección “print”. Las secciones “line” y “row” se dejan en cero porque queremos que nuestro mensaje aparezca en la primera línea y a partir de la primera columna.

    Figura 3 - 127


    Ahora vamos a clonar el bloque “LCD I2C RGB Backlight”, para ello colocamos el cursor del mouse sobre el bloque y damos clic derecho. Luego seleccionamos la opción “clone”.

    Figura 3 - 128


    Ubicar el bloque en la sección “setup” y colocar la palabra “Contador:” en la sección “print”. La palabra “Contador” vamos a mostrarla en la fila dos del display, para lograrlo colocamos el valor de 1 en la sección line (línea 1 es la fila dos del display LCD).

    Figura 3 - 129


    Nota: Para el mensaje que se va a mostrar en pantalla, tener presente que tenemos 16 columnas, es decir que solo podemos mostrar 16 caracteres completos (incluido el espacio). Si colocamos un mensaje de mayor tamaño no se mostrará completo el mensaje. También tener presente que las posiciones inician en 0, entonces si queremos ir a la columna 16 colocamos el valor de 15 (de 0 a 15 hay 16 posiciones). De igual manera se hace con las líneas (la fila 2 sería la posición 1).
  6. 6. Clonar el bloque “LCD I2C RGB Backlight”.

    Figura 3 - 130


    Ubicar el bloque clonado en la sección “loop” y quitar el bloque que está en la sección “print”. Para ello dar clic izquierdo sostenido sobre el bloque y arrastrarlo a la barra lateral izquierda.

  7. 7. Ir al botón “Communication” y seleccionar el bloque “glue” con terminación en ángulo.

    Figura 3 - 131




    Figura 3 - 132


    Ubicar el bloque en la sección print, luego colocar el valor de line en 1 y row en 9 para que se muestre el valor a partir de esta posición. El valor de 9 lo seleccionamos porque la palabra “Contador:” tiene nueve caracteres, entonces la siguiente posición es la 10 y como se cuenta desde 0, se coloca el valor de 9.

    Figura 3 - 133


  8. 8. Clonar la variable tipo entero que hemos nombrado como “Contador”.

    Figura 3 - 134


    Colocar el bloque clonado en el bloque “glue”.

    Figura 3 - 135


  9. 9. Ir al botón de “Control” y seleccionar el bloque “delay MILLIS milliseconds” y colocarlo en el “loop””.

    Figura 3 - 136


    Figura 3 - 137


  10. 10. Incrementamos en uno el valor de la variable Contador en una unidad.

    Figura 3 - 138


Finalmente, nuestros bloques de programación nos deben quedar de la siguiente manera:



Figura 3 - 139

Ampliación


¿Qué bloques añadirías al programa anterior para que mediante un pulsador como el KY-004 se reinicie el valor de la variable Contador a cero?

¿Qué bloques añadirías para visualizar los datos de un sensor de temperatura?