Está en la página 1de 6

Escuela politécnica superior

DGIME
Sistemas basados en microprocesadores

PRÁCTICA 5
Display LCD
Realizada por:
Diego Camarero Martín
Arturo Quintanilla Ibáñez
Empresa:

Devitt. Inc

Índice
1) Objetivos ............................................................................................................................... 2
2) Lavadora en un display .......................................................................................................... 2
a) Enunciado .......................................................................................................................... 2
b) Flujograma......................................................................................................................... 3
c) Código................................................................................................................................ 3
d) Simulación ......................................................................................................................... 5
4) Conclusiones ............................................................................................................................. 5
5) Errores y dificultades. ............................................................................................................... 6
6) Tiempo de realización ............................................................................................................... 6

-1-
Escuela politécnica superior
DGIME
Sistemas basados en microprocesadores

1) Objetivos
 Operar y programar en lenguaje C.
 Utilización de variables de usuario y de funciones de un uC.
 Trabajar con el entorno de un uC.
 Utilización del compilador de Arduino
 Usar librerías y funciones de un periférico como es el LCD
 Comprender el funcionamiento básico del LCD.

2) Lavadora en un display
a) Enunciado
Se programará un contador de 0 a 99 que se visualizará en la 2ª línea en la parte derecha
del LCD y que se incremente cada 1s. Cuando se arranque el programa, introduciendo
el carácter ‘S’ por el monitor serie, en el LCD, se irá disponiendo de forma secuencial los
siguientes mensajes:
Entre 0<t<19 “Prelavado”
Entre 20<t<59 “Lavado”
Entre 60<t<99 “Centrifugado”

-2-
Escuela politécnica superior
DGIME
Sistemas basados en microprocesadores

b) Flujograma

c) Código
/*
LiquidCrystal Library - Hello World

Demonstrates the use a 16x2 LCD display. The LiquidCrystal


library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.

This sketch prints "Hello World!" to the LCD


and shows the time.

The circuit:
* LCD RS pin to digital pin 12

-3-
Escuela politécnica superior
DGIME
Sistemas basados en microprocesadores

* LCD Enable pin to digital pin 11


* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* LCD VSS pin to ground
* LCD VCC pin to 5V
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)

Library originally added 18 Apr 2008


by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/

Aquí empieza el programa como tal


// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int seg = 0;
unsigned long prevMil = 0;
int prevSeg = 0;
int a = 15;
int g = 10;
int s = 0;

void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
}

void loop() {
if(Serial.available() && Serial.readString() == "s")
{s = 1;};

if(millis()- prevMil > 1000 && s == 1)


{seg ++;

-4-
Escuela politécnica superior
DGIME
Sistemas basados en microprocesadores

prevMil = millis();

if(seg == g)
{a = a - 1;
g = g * 10;}
lcd.setCursor(a, 1);
lcd.print(seg);
};

if(seg - prevSeg < 30 && s == 1)


{lcd.setCursor(0,0);
lcd.print("Prelavado");
}else
{if(seg - prevSeg >= 30 && seg - prevSeg < 60)
{lcd.setCursor(0,0);
lcd.print("Lavado ");}
else
{if(seg - prevSeg >= 60 && seg - prevSeg <100)
{lcd.setCursor(0,0);
lcd.print("Secado ");
}else{prevSeg = seg;};
};
};
}
d) Simulación
Montaje eléctrico

https://www.tinkercad.com/things/8a5DJGaRAMY-copy-of-
lavadora/editel?sharecode=EX1EAhOm_Wf5S3K9ebrAuJte5zGl31x8Q3g0K4GTw-g

4) Conclusiones
En general, en esta práctica hemos aprendido funciona un display LCD y cómo
conectarlo eléctricamente.
-5-
Escuela politécnica superior
DGIME
Sistemas basados en microprocesadores

Además, hemos utilizado funciones de una librería concreta (LiquidCrystal) para que
funcionara de manera correcta el display.

5) Errores y dificultades.
Los principales errores que hemos cometido son a la hora de entender cómo funcionaba
el display LCD y cómo usar adecuadamente las funciones de la librería LiquidCrystal.
Aunque muy tonto, un error que nos dio ciertos dolores de cabeza es que cuando
pusimos los “if” concatenados de “lavado“, “prelavado” y “secado” no nos dimos cuenta
de que solo pusimos set cursor en el primero, y por ende, luego no cambiaba.

6) Tiempo de realización
Esta práctica nos ha llevado unas 3 horas fuera de clase, sobre todo invertidas a la hora
de realizar el flujograma y aprender cómo funciona el display LCD.

-6-

También podría gustarte