Está en la página 1de 3

Insumo practica teclado

//Nombre: Juan David Loja


//Curso: 3A1
//Fecha: 11/03/2023
#include <LiquidCrystal_I2C.h> // Incluyo libreria de la lcd con modulo I2C
#include <Keypad.h> // Incluyo la libreria de el teclado
LiquidCrystal_I2C lcd(0x27,16,2); // Configuracion de el tamaño de la lcd
const byte filas = 4; // Indico filas
const byte columnas = 4; // Indico columnas
char keys[filas][columnas] = { // Orden de las teclas
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'},
};
byte pinesFilas[filas] = {12, 8, 7, 6}; // Indico los pines de conexion de las
filas
byte pinesColumnas[columnas] = {5,4,3,2}; // Indico los pines de conexion de ls
columnas
Keypad keypad = Keypad(makeKeymap(keys), pinesFilas, pinesColumnas, filas,
columnas); // Declaro la configuracion del teclado
char key; //se almacena la tecla aplastada
const byte CR = 9; //Pin conectado para el color rojo CR
const byte CG = 10; //Pin conectado para el color verde CG
const byte CB = 11; //Pin conectado para el color azul CB
int VR = 0; //Variable para guardar el valor escrito en el teclado para el color
rojo
int VG = 0; //Variable para guardar el valor escrito en el teclado para el color
verde
int VB = 0; //Variable para guardar el valor escrito en el teclado para el color
azul
int A = 0; //variable para guardar el valor de rojo
int E = 0; //variable para guardar el valor de verde
int I = 0; //variable para guardar el valor de azul
int final = 0; //variable para los bucles
int dato = 0; //variable para almacenar el numero y guardarlo como
centena,decena,unidad
void setup() {
Serial.begin(9600); // inicia comunicacion serial
lcd.init(); //Inicio la lcd
lcd.backlight(); //Enciendo luz de fondo
//Mensaje acerca del programa, apellido y curso
lcd.setCursor(0,0);
lcd.print("Manejo teclado y");
lcd.setCursor(0,1);
lcd.print("LED RGB");
lcd.setCursor(8,1);
lcd.print("Loja 3A1");
delay(3000);
lcd.clear();
}
Página 1
Insumo practica teclado
void loop() {
//Se muestra el valor inicial almacenado en el color rojo VR
lcd.setCursor(0, 0);
lcd.print(VR);
//Se muestra el valor inicial almacenado en el color verde VG
lcd.setCursor(6, 0);
lcd.print(VG);
//Se muestra el valor inicial almacenado en el color azul VB
lcd.setCursor(12, 0);
lcd.print(VB);
lcd.setCursor(3,1);
lcd.print("Dato:"); //Palabra para indicar donde aparecera el valor de dato
while (1) {
key = keypad.getKey(); // Obtengo la tecla aplastada
if (key >= '0' && key <= '9') { // Condicion para detectar solo si se ingreso
un numero
dato = dato * 10 + (key - '0'); // Formula para obtener el valor ingresado
mediante el teclado
lcd.setCursor(8, 1); // Escribir en la posicion 8 de la fila 2
lcd.print(dato); //Imprimo el valor de dato en la lcd
final++;
}
if (final == 3) { //Condicion para que solo me deje ingresar 3 numeros o
teclas.
break; // Se rompe el bucle
}
}
while (1) {
key = keypad.getKey(); // Deteccion de la tecla aplastada
if (key == 'A') { // Condicion si se presiona la tecla A(rojo)
lcd.clear(); // Borrar lo escrito en la lcd
lcd.setCursor(1, 0);
lcd.print(VR); //Imprimo en la lcd el valor de dato que se guardo en
VR
lcd.clear(); // Borrar lo escrito en la lcd
A = 0;
A = dato; //Guardar el valor de dato en A
VR = A; // Guardar en VR el valor de A
analogWrite(CR,VR); //Escritura analogica de VR en el pin 9(CR)
dato = 0;
break; // Se rompe el bucle
// return;
} else if (key == 'B') { // Condicion si se presiona la tecla B(verde)
lcd.clear(); // Borrar lo escrito en la lcd
lcd.setCursor(6,0);
lcd.print(VG); //Imprimo en la lcd el valor de dato que se guardo en
VG
lcd.clear(); // Borrar lo escrito en la lcd
E = 0;
E = dato; //Guardar el valor de dato en E
Página 2
Insumo practica teclado
VG = E; //Guardar en VG el valor de E
analogWrite(CG,VG); //Escritura analogica de VG en el pin 10(CG)
dato = 0;
break; // Se rompe el bucle
// return;
} else if (key == 'C') { // Condicion si se presiona la tecla C(azul)
lcd.clear(); // Borrar lo escrito en la lcd
lcd.setCursor(12,0);
lcd.print(VB); //Imprimo en la lcd el valor de dato que se guardo
en VB
lcd.clear(); // Borrar lo escrito en la lcd
I = 0;
I = dato; //Guardar el valor de dato en I
VB = I; //Guardar en VB el valor de I
analogWrite(CB,VB); //Escritura analogica de VB en el pin 11(CB)
dato=0;
break; // Se rompe el bucle
// return;
}
}
dato = 0; //Variables para regresar al inicio del programa
final=0;
}

Página 3

También podría gustarte