#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
LiquidCrystal_I2C pantalla(0x27,16,2);
const byte ROWS=4;
const byte COLS=4;
byte rowPINS[ROWS]={10,11,12,13};
byte colPINS[COLS]={7,6,5,4};
char teclas[ROWS][COLS]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','.','D'}
};
Keypad teclado=Keypad(makeKeymap(teclas),rowPINS,colPINS,ROWS,COLS);
void setup()
{
pantalla.init();
pantalla.setCursor(0,0);
}
char texto[17],carac,enter;
char volt[17];
char ampere[17];
float voltage,amperage,wattage;
int x=0;
void loop()
{
memset(volt,'\0',sizeof(volt));
memset(ampere,'\0',sizeof(ampere));
x=0;
pantalla.backlight();
pantalla.clear();
pantalla.setCursor(0,0);
pantalla.print("Ingrese Voltaje");
pantalla.setCursor(0,1);
pantalla.cursor();
while(x<9){
carac=teclado.getKey();
if(carac>='0' && carac<='9' || carac=='.'){
pantalla.print(carac);
volt[x]=carac;
x++;
}
if(x==8){
pantalla.clear();
pantalla.print("Presione A");
enter=teclado.waitForKey();
if(enter=='A'){
voltage=atof(volt);
pantalla.clear();
x=0;
break;
}
}
if(carac== 'A'){
voltage=atof(volt);
pantalla.clear();
x=0;
break;
}
if(carac=='C'){
memset(volt,'\0',sizeof(volt));
x=0;
pantalla.clear();
pantalla.setCursor(0,0);
pantalla.print("Ingrese Voltaje");
pantalla.setCursor(0,1);
}
}
pantalla.clear();
pantalla.setCursor(0,0);
pantalla.print("Ingrese Amperage");
pantalla.setCursor(0,1);
pantalla.cursor();
while(x<9){
carac=teclado.getKey();
if(carac>='0' && carac<='9' || carac=='.'){
pantalla.print(carac);
ampere[x]=carac;
x++;
}
if(x==8){
pantalla.clear();
pantalla.print("Presione A");
enter=teclado.waitForKey();
if(enter=='A'){
amperage=atof(ampere);
pantalla.clear();
x=0;
break;
}
}
if(carac== 'A'){
amperage=atof(ampere);
pantalla.clear();
x=0;
break;
}
if(carac=='C'){
memset(ampere,'\0',sizeof(ampere));
x=0;
pantalla.clear();
pantalla.setCursor(0,0);
pantalla.print("Ingrese Amperage");
pantalla.setCursor(0,1);
}
}
wattage=voltage*amperage;
pantalla.clear();
pantalla.print("Potencia Obtenida es:");
pantalla.setCursor(0,1);
pantalla.print(wattage);
delay(3000);
}