ROBÓTICA - Arduino-03
__________________________________________________________________________________
En la clase anterior vimos cómo incorporar componentes. Hoy vamos a trabajar incorporando un
display LCD de 16x2.
Un display 16x2 tiene 2 filas de 16 posiciones cada una. A su vez, cada posición está dividida en
Matrices de 5 x 8 pixeles.
En estas matrices, encendiendo y apagando pixeles (usando 1 y 0) podemos escribir cualquier letra,
símbolo o cualquier imagen que queramos representar.
Accedemos a la página: [Link] y seleccionamos la placa Arduino Uno.
Una vez seleccionada, se nos presentará la siguiente pantalla:
1
ROBÓTICA - Arduino-03
__________________________________________________________________________________
Vamos a hacer click en el botón Agregar Componentes
Agregar Componente
Seleccionamos LCD 16x2 (I2C) y aparecerá un display LCD.
Vamos a realizar la conexión del Display a nuestra Placa Arduino:
1) Conectamos el punto GND del display al puerto GND
(negativo) de la placa.
2) Conectamos el punto VCC del display al puerto 5V
(positivo) de la placa.
3) Conectamos el punto SDA del display al puerto A4
(Analog IN 4) de la placa.
4) Conectamos el punto SCL del display al puerto A5
(Analog IN 5) de la placa.
2
ROBÓTICA - Arduino-03
__________________________________________________________________________________
Para poder programar nuestro display, es necesario incorporar a nuestro programa una librería que
facilita el manejo. Para eso, vamos a ir a la opción Library Manager
Hacemos click en Add a New Library…
En la búsqueda escribimos liquid y elegimos LiquidCrystal I2C
3
ROBÓTICA - Arduino-03
__________________________________________________________________________________
Empezaremos nuestro programa incluyendo en el sketch la librería que acabamos de incorporar,
usando el comando #include ANTES de la función setup(). (La inclusión de librerías es lo primero
que debe haber en los programas C++)
#include <Wire.h> Librería para comunicación del I2C
#include <LiquidCrystal_I2C.h> Librería para el display LCD
Creamos un objeto variable lcd del tipo LiquidCrystal_I2C pasándole como parámetro el tipo de
display (16 x 2 paneles)
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2);
En nuestro código siempre haremos referencia a nuestro objeto lcd, usando sus métodos,
indicando la pertenencia con un punto (.) Por Ejemplo: [Link]()
En setup() Inicializamos el display y encendemos la luz de fondo:
void setup() {
//incializamos el LCD
[Link]();
[Link]();
}
En loop() posicionamos el cursor para empezar a escribir y luego escribimos.
IMPORTANTE! LA CUENTA DE LAS POSICIONES EMPIEZA SIEMPRE EN 0.
void loop() {
// Imprimimos 'Hello World!' on la primera línea del LCD
[Link](2, 0); // Colocamos el cursor en la 3era columna
// de la primera fila
[Link]("Hello World!"); // Mostramos "Hello World!"
[Link](2, 1); //Colocamos el cursor en la 3era columna
// de la segunda fila
[Link]("tutorial LCD");
}
Nuestro programa debería quedar así:
#include <Wire.h> // Library for I2C communication
#include <LiquidCrystal_I2C.h> // Library for LCD
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2); // Change to (0x27,20,4) for 20x4 LCD.
void setup() {
//incializamos el LCD
[Link]();
[Link]();
}
void loop() {
// Imprimimos 'Hello World!' on la primera línea del LCD
[Link](2, 0); // Colocamos el cursor en la 3era columna de la primera fila
[Link]("Hello World!"); // Mostramos "Hello World!"
[Link](2, 1); //Colocamos el cursor en la 3era columna de la segunda fila
4
ROBÓTICA - Arduino-03
__________________________________________________________________________________
[Link]("tutorial LCD");
}
Al ejecutarlo, deberíamos ver este resultado:
Ejercicio 1:
Posicionar el Cursor en la primer columna de la primera fila y escribir el texto: 01234567891011
Posicionar el Cursor en la segunda columna de la segunda fila y escribir los símbolos: $%&/()=#@*
Importante: Observar cómo se forman las figuras en las matrices 5 x 8 con los píxeles encendidos y
apagados
Ejercicio 2:
Probar: ¿Qué pasa si quiero mostrar la letra Ñ, ñ o vocales con acento?
¿Cómo lo solucionarías?
Ejercicio 3:
Probar qué pasa si comento (u omito) la instrucción [Link](). ¿Observás la diferencia?
Ejercicio 4: Probar utilizando el objeto lcd:
¿Qué hace el método clear()?
¿Qué hace el método noDisplay()?
¿Qué hace el método Display()?
Usando una combinación de éstos métodos con la instrucción delay() hacer que el texto parpadee.
Ejercicio 5: Probar utilizando el objeto lcd:
¿Qué hacen los métodos scrollDisplayLeft() y scrollDisplayRight()?
IMPORTANTE!!!: Guardá el Zip de este proyecto, lo usaremos en clases posteriores