Codigo teclado matricial

7
Andrés Felipe Molina Cruz Cód. 11161211110 Ing. de sistemas Código explicado Teclado Matricial #include<Keypad.h> // Al trabajar con Arduino debemos colocar cierta ayuda para que el programa nos entienda, a esto se le llama librería, esta ayuda traduce que vamos a trabajar con un teclado en el programa. #include<LiquidCrystal.h> // Al trabajar con Arduino debemos colocar cierta ayuda para que el programa nos entienda, a esto se le llama librería, esta ayuda traduce que vamos a trabajar con la característica del cristal interno de la tarjeta. //Como todo lenguaje de computador debemos decir que necesitamos para hacer que el programa funcione, para eso se crean las variables, las variables son objetos que necesita el computador para entender que es lo que estamos hacienda, eso es lo primero que se hace. const byte ROWS = 4; // Esta es una variable que es constante o que no cambia cuando ejecutemos el programa y lo manejamos como un byte (un byte es con lo9 que mide el computador la información que posee y desarrolla), además aquí se crea la fila de 4 espacios, esto es debido a que el teclado consta de esa particularidad. const byte COLS = 4; // Aquí se define igual que la consigna anterior solo que aquí se define el número de columnas (hacia abajo) del teclado matricial.

description

Código de un teclado matricial en arduino

Transcript of Codigo teclado matricial

Andrs Felipe Molina Cruz Cd. 11161211110 Ing. de sistemasCdigo explicado Teclado Matricial#include // Al trabajar con Arduino debemos colocar cierta ayuda para que el programa nos entienda, a esto se le llama librera, esta ayuda traduce que vamos a trabajar con un teclado en el programa.

#include // Al trabajar con Arduino debemos colocar cierta ayuda para que el programa nos entienda, a esto se le llama librera, esta ayuda traduce que vamos a trabajar con la caracterstica del cristal interno de la tarjeta.//Como todo lenguaje de computador debemos decir que necesitamos para hacer que el programa funcione, para eso se crean las variables, las variables son objetos que necesita el computador para entender que es lo que estamos hacienda, eso es lo primero que se hace.const byte ROWS = 4; // Esta es una variable que es constante o que no cambia cuando ejecutemos el programa y lo manejamos como un byte (un byte es con lo9 que mide el computador la informacin que posee y desarrolla), adems aqu se crea la fila de 4 espacios, esto es debido a que el teclado consta de esa particularidad.

const byte COLS = 4; // Aqu se define igual que la consigna anterior solo que aqu se define el nmero de columnas (hacia abajo) del teclado matricial.

char keys[ROWS][COLS] = {{'M','N','O','*'},{'I','J','K','L'},{'E','F','G','H'},{'A','B','C','D'}}; // A esto le llamamos instruccin porque hay varias rdenes a ejecutar, es una orden donde asignamos a las filas y a las columnas los valores que tienen cada una ya que el computador piensa que no hay nada ah, le asignamos a la primera fila en la primera columna ( en una relacin e 2) el valor correspondiente del teclado.

byte smiley[8] = {B00000,B10001,B00000,B00000,B10001,B01110,B00000,}; // En esta instruccin vamos a trabajar el teclado matricial, primero cuando iniciamos el teclado nos parece una carita sonriente ya que el byte puede ser definido as, ahora el teclado con el que trabajamos debe tener ms de dos funciones, eso significa que al presionar el botn pueda sacar hasta 2 caracteres del abecedario, para ello definimos las letras en su versin bit para tal fin.

LiquidCrystal lcd (A0, A1, 10, 11, 12, 13); //Caracterstica propia del LCD, aqu definimos las entradas del arduino a trabajar ya que el cdigo necesita estos parmetros para digitar bienbyte rowPins[ROWS] = {5, 4, 3, 2}; // Aqu la instruccin se da en byte y le dijo que a las variables de filas les asigne otro valor diferente cuando oprimo el teclado y el computador asuma esos valores, aqu les dimos valores consecutivos de nmeros.

byte colPins[COLS] = {9, 8, 7, 6}; //Aqu es exactamente igual pero se la aplicamos a las columnas.Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );// Esta es una instruccin importante porque aqu estamos igualando los valores de las filas y columnas del teclado con las instrucciones ordenadas al computador y sus valores, esto no lo habramos podido hacer sin la librera correcta por eso es importante definirla. int function_flag=0; // Aqu definimos una funcin entera con una bandera que me va a servir para controlar los datos presionados en el tecladoint i=0; // Una variable controladoraint flag=0; // Una variable controladoravoid setup(){ // A esto se le llama funcin, nos permite ejecutar las ordenes en un orden dado como dando instruccioneslcd.createChar(1,smiley); // Esta es una propiedad del lcd, aqu damos la instruccin de que hacer al inicio del programa en el lcdlcd.begin(16, 2); // Aqu confirmamos en que bytes tenemo9s permitidos movernoslcd.write(1); // Cuando escribimos la primera instruccin lcd.home(); // Aqu le decimos que este dispuesto a recibir caracteres del tecladodelay(2000); // Lo que tarda el lcd en hacer una instruccinlcd.home();// Aqu le decimos que est dispuesto a recibir caracteres del tecladolcd.clear(); // Lmpieme todo lo que hay en el teclado}

void loop(){// Una funcin que me ejecuta el programa principalchar key = keypad.getKey();// variable llave relacionada con el tecladodelay(100); ); // traduce retardo o el tiempo que se demora en pasar a otra instruccinif(key){ ; // Esta es una instruccin de si o no, si pasa una accin especfica se ejecuta una instruccin en especfico, si pasa lo contrario se ejecuta otra instruccin

if(key=='*'){++flag; if(flag>2){flag=0;}} ++i;if(i==17){lcd.setCursor(0,1);}if(i==33){lcd.setCursor(0,0);i=0;}}//Una instruccin compuesta ms especifica que le ordena al computador que al presionar la tecla * que se convierte en mi bandera me ejecute toda las instrucciones que controlan, para ello necesitamos un contador que me cuente cuantas veces es presionado el botn , cada vez que lo presiono me cambia la funcin de cada tecla para cambiar las letras, adems de generar espacios y saltar la lnea.

if(flag==1){function_flag=0;} // Cambio de bytes segn la bandera que me controlaif(flag==2){function_flag=1;} // Cambio de bytes segn la bandera que me controla

if(key){

if(function_flag==0){if(key!='*'){lcd.write(key);}} // INSTRUCCION QUE REUNE TODO EL JERCICIO DE PRESION DE BOTONES Y CADA FUNCION DE CADA LETRA.ese{if(key=='A'){lcd.write('P');} // Asignacin doble de teclas si presiono ese botn, con la otra funcin me aparece el otro carcterif(key=='B'){lcd.write('Q');} // Asignacin doble de teclas si presiono ese botn, con la otra funcin me aparece el otro carcterif(key=='C'){lcd.write('R');} // Asignacin doble de teclas si presiono ese botn, con la otra funcin me aparece el otro carcterif(key=='D'){lcd.write('S');} // Asignacin doble de teclas si presiono ese botn, con la otra funcin me aparece el otro carcterif(key=='E'){lcd.write('T');} // Asignacin doble de teclas si presiono ese botn, con la otra funcin me aparece el otro carcterif(key=='F'){lcd.write('U');} // Asignacin doble de teclas si presiono ese botn, con la otra funcin me aparece el otro carcterif(key=='G'){lcd.write('V');} // Asignacin doble de teclas si presiono ese botn, con la otra funcin me aparece el otro carcterif(key=='H'){lcd.write('W');} // Asignacin doble de teclas si presiono ese botn, con la otra funcin me aparece el otro carcterif(key=='I'){lcd.write('X');} // Asignacin doble de teclas si presiono ese botn, con la otra funcin me aparece el otro carcterif(key=='J'){lcd.write('Y');} // Asignacin doble de teclas si presiono ese botn, con la otra funcin me aparece el otro carcterif(key=='K'){lcd.write('Z');} // Asignacin doble de teclas si presiono ese botn, con la otra funcin me aparece el otro carcterif(key=='L'){lcd.write(' ');} // inserta un espacioif(key=='M'){lcd.setCursor(0,0);} // enva al primer renglnif(key=='N'){lcd.setCursor(0,1);}// enva al segundo renglnif(key=='O'){lcd.rightToLeft();lcd.write(' ');lcd.leftToRight();}}// devuelve y borra el ultimo carcter}}