Práctica 24. Las pantallas LCD

24.1 Objetivo General:

El objetivo general de esta práctica será aprender a mostrar información, por medio de una pantalla LCD. En esta practica se van a hacer de códigos uno, únicamente con la lcd, y el otro con un sensor de temperatura LM35.

24.2  Materiales y Métodos:

  1. Una tarjeta Arduino Uno-R3 o Arduino Mega 2560.
  2. Un cable USB impresora.
  3. Un computador.
  4. Cables para el montaje del circuito.
  5. Protoboard
  6. Una pantalla LCD
  7. un potenciómetro
  8. Una resistencia de 220Ω
  9. Un sensor LM35 o tpm36

24.2.1 ¿Qué es una pantalla LCD?

Una pantalla LCD o por sus siglas en ingles “liquid crystal display” o “Pantalla de Cristal Líquido” es una pantalla delgada y plana formada por un número de píxeles en color o monocromáticos, colocados delante de una fuente de luz o reflectora. En esta práctica  vamos a utilizar una de 16×2 pixeles. Las columnas de la pantalla están designadas del 0 al 15, e igual para la líneas siendo la primera la 0 y la segunda la número 1; esto se utiliza para identificar dónde se van a mostrar los caracteres.

La placa de la pantalla tiene 16 terminales las cuales están identificadas como:

El número 1 ó VSS es el equivalente a tierra, 2 ó VDD es la entrada de 5V, 3 ó VO es el contraste entre el led de fondo y los caracteres, además este estará conectado a una resistencia variable potenciómetro para regular el brillo de la pantalla, 4 ó RS es el selector de registro el cual está conectado a una serie de circuitos integrados que cumplen con tareas de bajo nivel, este estará conectado a un pin digital el cual tendrá una librería especializada en el IDE de arduino   llamada “LiquidCrystal”, 5 o R/V le dirá a la pantalla si esta está en modo escritura o lectura en nuestro caso colocaremos el terminal directamente a GND para indicar que lo colocaremos siempre en modo escritura,  6 ó E será la encargada de habilitar qué tipo de datos entra, pero nuevamente la librería “LiquidCrystal” se encargará de activarlo, las  terminales 7 a 14 serán los pines de datos de 8 bits de los cuales le enviaremos los datos  que nos va a mostrar en cada uno de los espacios de caracteres que hay, pero en este caso utilizaremos 4 terminales para ahorrar conexiones en el arduino siendo esto los terminales de 4 al 7, y para finalizar los últimos dos terminales en el ánodo y el cátodo del led que ilumina la pantalla, al ánodo le colocaremos una resistencia de 220ᘯ.

24.3  Montaje de la Práctica:

Antes de comenzar la realización del montaje del circuito electrónico, se debe realizar el circuito en el programa TinkerCad. primero se debe tomar en cuenta lo mencionado anteriormente (24.2.1.)

Montaje de la practica en el programa TinkerCad

También vamos a hacer otro montaje con una finalidad mas practica la cual incluye el sensor de temperatura LM35 el cual ya tiene su practica (Practica 4). Su monte va hacer igual al anterior, exceptuando la implementación del sensor, que tiene los mismos pines como en la practica del sensor 4.

montaje del segundo código

24.4 IDE de Arduino para la práctica:

Primero se configura la tarjeta arduino:

 Se selecciona la tarjeta Arduino que se está utilizando sea Arduino Uno-R3 o Arduino Mega 2560.

 Se indica el Puerto Serial. Bajo que puerto USB se va a conectar el Arduino con el computador.

 Se coloca el título del programa haciendo uso  del símbolo //, el cual permite colocar comentarios dentro del programa.

24.4.1 Procedimiento de cómo llevar a cabo el codificado del programa :

  • Primero hay que incluir la librería “LiquidCrystal” yendo a la pestaña en el IDE llamada programa, e incluir  la librería; por lo general esta viene por defecto en el IDE pero si no se le encuentra se tiene que descargar.
  • Luego se identifican los pines de la pantalla LCD con el comando LiquidCrystal, y le decimos a la tarjeta como vamos a hacer referencia a la pantalla LCD, siendo este lcd. Entre paréntesis colocamos los pines digitales utilizados en orden decreciente 7,6,5,4,3 y 2.
  • Después dentro del comando void setup(), vamos a decir cuales son las proporciones de nuestra pantalla LCD con el comando lcd.begin y entre paréntesis decimos el número de columnas y luego el de líneas, ya que, si se coloca de manera inversa la tarjeta va a pensar que tenemos una pantalla LCD de 2×16 y no una de 16×2.
  • En la sección de void loop() se va a mostrar, el primer comando que será para posicionar o decir donde va empezar el texto, el cual va a ser lcd.setCursor y entre paréntesis decimos dónde irá el orden de columna-línea. en este caso será 2 y 0, pero puede variar.
  • Ahora se va decir lo que queremos decir con el comando lcd.print y entre paréntesis y comillas, el texto que queremos mostrar; en este caso “Mecabot-ula”.
  • Repetimos el proceso indicando el cursor en la segunda línea con el comando lcd.setCursor(0,1), colocaremos el comando otra vez lcd.print, entre paréntesis y comillas, el texto “Ha pasado ” y luego la función “millis()” la cual mide el tiempo en milisegundos, dentro del comando lcd.print y la dividiremos entre 1000 para que nos de un valor en segundos. esto lo señalaremos con el comando lcd.print y entre paréntesis y comillas “seg.” 
  • Y finalmente el código estaría listo pero se le puede agregar la función de desplazamiento continuo lcd.scrollDisplayLeft() la cual  va a mover todo nuestro texto hacia la izquierda. Es opcional, esta función, porque el texto de prueba es más largo que la pantalla LCD y algo a destacar es que el máximo de caracteres que la tarjeta soporta son 40, con la función, si el texto se pasa de este no va a mostrar el texto completo

24.4.2  Algoritmo del  programa:

En la siguiente imagen se mostrará como quedó plasmado en el IDE de Arduino, los procedimientos anteriormente señalados 

// P24
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
void setup() {
  lcd.begin(16, 2);
}
void loop() {
  lcd.setCursor(0, 0);
  lcd.print("Mecabot-ula");
  lcd.setCursor(0, 1);
  lcd.print("Ha Pasado "); 
  lcd.print(millis() / 1000);
  lcd.print(" seg."); 
}
  • Al terminar el desarrollo del programa se debe compilar para verificar si existen errores dentro del codificado. Luego si no existen errores se debe cargar el código en la tarjeta Arduino para que lo ejecute.

NOTA: Para que el IDE de Arduino pueda entender los comandos es necesario que al final de cada instrucción se coloque punto y coma (;).

Implementación del algoritmo en el simulador TinkerCad:

</> Practica 24

24.4.3 Procedimiento de cómo llevar a cabo el codificado del segundo programa :

  • Primero hay que incluir la librería “LiquidCrystal” yendo a la pestaña en el IDE llamada programa, e incluir  la librería; por lo general esta viene por defecto en el IDE pero si no se le encuentra se tiene que descargar.
  • Luego se identifican los pines de la pantalla LCD con el comando LiquidCrystal, y le decimos a la tarjeta como vamos a hacer referencia a la pantalla LCD, siendo este lcd. Entre paréntesis colocamos los pines digitales utilizados en orden decreciente 7,6,5,4,3 y 2.
  • Ademas identificamos en sensor y colocamos dos variantes flotantes con el comando float, una de estas para la temperatura y la otra para el resultado
  • en el apartado del void setup, vamos a decir cuales son las proporciones de nuestra pantalla LCD con el comando lcd.begin y entre paréntesis decimos el número de columnas y luego el de líneas
  • En la sección de void loop() se va a decir que la variante result va a tener un valor inicial de 0. Identificamos la variante i y decimos que tiene un valor de 0 y decimos que si “i” es menor que 5 “i” tiene que aumentar. abrir paréntesis, decimos que sensorPin es igual al valor del pin análogo A0 con el comando analogRead(A0)
  • Decimos que la temperatura es igual a entre paréntesis la multiplicación del valor del sensor por 5000, entre 1023 se cierra paréntesis y se divide entre 10. si tenemos un sensor d temperatura Tpm36 debemos restar 49.9 la cual es la deferencia.
  • Para terminar con el calculo de la temperatura decimos que el resultado es igual a el valor de la temperatura + el resultado, para que el programa reconozca que result es igual a la temperatura. Colocamos un delay de 500 milisegundos para que vuelva a hacer el calculo, y serramos las llaves
  • Ahora posicionamos el cursor en la lcd en la parte superior colocando primero el texo de “Temp: ” con los comandos anteriormente vistos, hay que recordar los espacios en blancos para un mayor orden.
  • Luego decimos que escriba el resultado de la temperatura entre 5.0,1 y el texto ” C” para identificar los grados como Centigrados, terminando el codigo

24.4.4 Segundo algoritmo

#include <LiquidCrystal.h>
LiquidCrystal lcd(7 ,6 ,5 ,4 ,3 ,2);
int sensorPin;
float temp;
float result;

void setup(){
  lcd.begin(16, 2);
}
void loop(){
  result = 0;
  for (int i=0; i < 5; i++){
    sensorPin = analogRead(A0);
    temp =((sensorPin * 5000.0) / 1023)/ 10;
    result = temp + result;
    delay(500);
  }
  lcd.setCursor(0,0);
  lcd.print("Temp: ");
  lcd.print(result/5.0,1);
  lcd.print(" C°");
}
  • Al terminar el desarrollo del programa se debe compilar para verificar si existen errores dentro del codificado. Luego si no existen errores se debe cargar el código en la tarjeta Arduino para que lo ejecute.

NOTA: Para que el IDE de Arduino pueda entender los comandos es necesario que al final de cada instrucción se coloque punto y coma (;).

Implementación del algoritmo en el simulador TinkerCad:

</> Practica 24.1

24.5 Conclusión

Las pantallas LCD son muy utilizadas para mostrar información sin necesidad de un dispositivos externos, ni el monitor serial pudiendo saber datos de la tarjeta Arduino, sensores entre otros usos como el de crear recopiladores de datos junto a botones o un Keypad, entre otros proyectos.