Actividad 13: "Interfaz básica con LCD"
Interfaz básica con LCD
La gran mayoría de proyectos que realizamos las variables o parámetros que creamos en nuestro código son variables de control internas las cuales no necesitamos ver su valor actual. Pero existen ovaciones donde necesitamos, mostrar de alguna forma el valor es especifico de una variable o estado actual de nuestro dispositivo, una forma simple es mediante el uso de indicadores luminosos como leds, pero existen una forma un poco mas compleja que nos permite ver en pantalla en tiempo real las variables de interés. En al actualidad existen una gran cantidad de pantallas que podemos conectar a nuestros proyectos. En este caso miraremos la típica pantalla LCD 16x2 (16 columnas, 2 filas).
A continuación veremos dos ejemplos explicados previamente en la clase virtual, del uso de esa pantalla LDC con Arduino en la plataforma online Tinkercad, mediante una librería especial llamada "LiquidCrystal.h", la cual nos permitirá interactuar de forma fácil con la pantalla mediante comando propios de dicha librería, ademas agregaremos dos botones que nos permitirán modificar valor en tiempo real en la pantalla LCD.
Ejemplo 1:
Para este ejemplo usaremos como base el ejemplo "LCD" que se encuentra por defecto en Tinkercad, pero modificaremos tanto el código como el montaje. Este ejemplo nos permitirá mostrar en pantalla el numero de veces que presionamos cada uno de los botones.
En cuanto al montaje es el siguiente en donde ademas de la pantalla agregamos dos botones cadas uno con su respectiva resistencia de PullDown (resistencia conectada a tierra) conectados a los pines 7 y 6, correspondiente al boton1 y boton2 correspondientemente.
El código a continuación, presenta en primer lugar la inclusión de la librería y su configuración de pines, posteriormente la definición de las variables, configura de pines como entradas y salidas y inicialización de la pantalla. Posteriormente mediante las funciones "if", correspondiente para cada botón incrementamos la variable contador cada vez que presionamos uno de los botones y mediante la sentencia "while" evitamos que la variable contador se incremente varias veces al dejar presionado el botón. Y por ultimo mostramos los valores de los contadores correspondiente a cada botón en la pantalla pantalla lcd.
Código 1:
// 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 pin_boton1 = 7;//definimos pin del boton 1
int pin_boton2 = 6;//definimos pin del boton 2
int contador1 = 0;//variable donde llevamos el conteo boton 1
int contador2 = 0;//variable donde llevamos el conteo boton 2
void setup() {
lcd.begin(16, 2);//inicializacion pantalla 16x2
lcd.print("Clase Grado 10");//escribimos en pantalla
pinMode(pin_boton1, INPUT);//definimo boton como entrada
pinMode(pin_boton2, INPUT);//definimo boton como entrada
}
void loop() {
if(digitalRead(pin_boton1)==HIGH){
contador1 = contador1+1;
while(digitalRead(pin_boton1)==HIGH){
//mientras el boton este presionado
}
}
if(digitalRead(pin_boton2)==HIGH){
contador2 = contador2+1;
while(digitalRead(pin_boton2)==HIGH){
//mientras el boton este presionado
}
}
lcd.setCursor(0, 1);//
lcd.print("B1 = ");
lcd.print(contador1);//escribimos el contador del boton 1
lcd.setCursor(9, 1);
lcd.print("B2 = ");
lcd.print(contador2);//escribimos el contador del boton 2
}
Ejemplo 2:
Para este segundo ejemplo, tenemos el mismo montaje anterior pero agregando un motor dc, al cual precederemos a variar su velocidad pero mediante el botón 1 al modificar el pwm del pin 9 aplicado a este mediante un transistor.
En cuanto al código este nos permite es decir que al presionar dicho botón una vez el motor girar en una primera velocidad, al presionar otra vez su velocidad incrementara un poco como si fuera la segunda velocidad y al presionar el botón una tercera vez este pasara a girar en su velocidad máxima es decir con un pwm de 255, y por ultimo al presionar el botón una cuarta vez este debe detenerse.
Código 2:
// 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 pin_boton1 = 7;
int pin_boton2 = 6;
int contador1 = 0;
int contador2 = 0;
int pin_pwm_motor = 9;
void setup() {
lcd.begin(16, 2);//inicializacion pantalla 16x2
lcd.print("Clase Grado 10");
pinMode(pin_boton1, INPUT);//definimo boton como entrada
pinMode(pin_boton2, INPUT);//definimo boton como entrada
pinMode(pin_pwm_motor, OUTPUT);//definimo boton como salida
}
void loop() {
//funcio Boton1-----------------------------------------
if(digitalRead(pin_boton1)==HIGH){
contador1 = contador1+1;
while(digitalRead(pin_boton1)==HIGH){
//mientras el boton este presionado
}
if(contador1==1){//si contador es 1
analogWrite(pin_pwm_motor,75);//velocidad 1
}
if(contador1==2){//si contador es 2
analogWrite(pin_pwm_motor,120);//velocidad 2
}
if(contador1==3){//si contador es 3
analogWrite(pin_pwm_motor,255);//velocidad 3
}
if(contador1==4){//si contador es 4
analogWrite(pin_pwm_motor,0);//velocidad 0
contador1=0;
}
}
//funcion Boton2-----------------------------------------
if(digitalRead(pin_boton2)==HIGH){//funcio Boton2
contador2 = contador2+1;
while(digitalRead(pin_boton2)==HIGH){
//mientras el boton este presionado
}
}
//Mostrar en Pantalla LCD los Datos---------------------------
lcd.setCursor(0, 1);
lcd.print("B1 = ");
lcd.print(contador1);
lcd.setCursor(9, 1);
lcd.print("B2 = ");
lcd.print(contador2);
}
//-------------------------------------------------------------------------------------------------------
Como vemos, agregar un pantalla a nuestro proyectos nos permiten realizar una mejor presentación de los mismo, mostrando información relevante y sumando el uso de botones mejoramos significativamente la experiencia el usurario, ya que podrá modificar parámetros o el comportamiento del circuito.
Actividad:
Para esta actividad el estudiante deberá hacer en la plataforma Tinkercad el montaje del ejemplo 2, pero debe agregar un led aun pin de pwm libre del Aruduino y mediante el botón2 hacer que el led modifique su brillo en tres intensidades. Es decir que debe modificar el código de tal forma que al presionar el botón2 una vez el led se ilumine con una intensidad baja, al presionarlo por segunda vez este se ilumine en una intensidad media, al presionar o por tercera vez este se ilumine al máximo y al presionar por cuarta vez este se apague, tal como en el ejemplo 2.
Entregar:
Como evidencia el estudiante de forma individual deberá enviar captura de pantalla del montaje , el código y un vídeo corto de la simulación de cada punto, al siguiente correo y con el asunto:Correo: electronica2020colgalan@gmail.com
Asunto: Actividad 13: "Interfaz básica con LCD" Nombre y Apellido" grado 10
NOTA:
La fecha limite de entrega es martes 28/07/2020 hasta la media noche. Es muy importante enviar la evidencia correspondiente. Las inquietudes o dudas se responderán en el horario de mañana y deben ser enviadas al correo electronica2020colgalan@gmail.com, o al final del blog en la sección de comentarios.
Comentarios
Publicar un comentario