Hola amigos, espero me puedan ayudar, les comento, primeramente soy novoto en esto y es posible que diga alguna tonteria, se me encomendo hacer el siguiente trabajo en arduino mega, ingresar dos numers via teclado y visualizado en un lcd, el numero 1 a la izquierda y el numero 2 a la derecha, estos numeros debe considerar decimal y en el futuro sumarlos, miltiplicar, dividirlos y restarlos
La filosofia y forma de ingreso es la siguiente.
1.- Para ingresar el nuemro 1 se debe presionar primero la letra A y luego ingresar numero (presionando los cuatro digitos y luego el = para dividirlospor 100 para hacer con dos digitos decimal)
2.- Para ingresar el nuemero se debe presionar primero la letra B y luego ingresar numero (presionando los cuatro digitos y luego el = para dividirlospor 100 para hacer con dos digitos decimal)
3.- En ambos casos al presionar * se debe dejar en blanco los espacios
Ques lo que he ehcho, busque en internert y he estudiado algo de estos bichos, encontre un video de una calculadora y realice las modificaciones necesarias, hasta aqui sin problemas, todo se dificultad cuando debo hacer que se presione la letra A, aqui estoy entrampado,adjunto codigo de lo realizado hasta el momento espero me puedan ayudar
Javier
La filosofia y forma de ingreso es la siguiente.
1.- Para ingresar el nuemro 1 se debe presionar primero la letra A y luego ingresar numero (presionando los cuatro digitos y luego el = para dividirlospor 100 para hacer con dos digitos decimal)
2.- Para ingresar el nuemero se debe presionar primero la letra B y luego ingresar numero (presionando los cuatro digitos y luego el = para dividirlospor 100 para hacer con dos digitos decimal)
3.- En ambos casos al presionar * se debe dejar en blanco los espacios
Ques lo que he ehcho, busque en internert y he estudiado algo de estos bichos, encontre un video de una calculadora y realice las modificaciones necesarias, hasta aqui sin problemas, todo se dificultad cuando debo hacer que se presione la letra A, aqui estoy entrampado,adjunto codigo de lo realizado hasta el momento espero me puedan ayudar
Código:
#include <Keypad.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(23, 22, 27, 26, 25, 24);
long Num1 = 0;
long Num2 = 0;
double finNum1 = 0;
double finNum2 = 0;
double Div = 100;
char teclado;
const byte ROWS = 4;
const byte COLS = 4;
char tecla;
char keys[ROWS][COLS] = {
{'1','2','3','+'},
{'4','5','6','-'},
{'7','8','9','*'},
{'C','0','=','/'}
};
byte rowPins[ROWS] = {35, 34, 33, 32}; //coneccion de pines fila teclado
byte colPins[COLS] = {31, 30, 29,28}; //coneccion de pines columnas teclado
Keypad customKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Num 1");
lcd.setCursor(10,0);
lcd.print("Num 2");
}
void loop()
{
teclado = customKeypad.getKey();
switch(teclado)
{
case '0' ... '9':
lcd.setCursor(0,2);
Num1 = Num1* 10 + (teclado - '0');
lcd.print(Num1);
break;
case '=':
Num1 = (finNum1 != 0 ? finNum1 : Num1);
lcd.setCursor(0,1);
finNum1 = (float)Num1 / (float)Div;
lcd.print(finNum1);
Num1 = 0;
break;
case 'C':
finNum1 = 0;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Num 1");
lcd.setCursor(10,0);
lcd.print("Num 2");
break;
}
}
Javier