#include <LiquidCrystal.h>
float n1;
float n2;
int op;
float res = 0.0;
int rs = 7;
int en = 8;
int d4 = 9;
int d5 = 10;
int d6 = 11;
int d7 = 12;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
long duracion, distancia;
void setup() {
lcd.begin(16, 2);
Serial.begin(9600);
Serial.println("\n");
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("primer numero: ");
while(Serial.available() == 0) {}
n1 = Serial.parseFloat();
if(n1 >= 0 || n1 <= 0) {
Serial.print("Primer numero: ");
Serial.println(n1);
}
else{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Num error!! ");
tone(13, 262, 250);
delay(1500);
lcd.clear();
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(n1);
lcd.setCursor(0, 1);
lcd.print("segundo numero:");
while (Serial.available() == 1) {}
delay(2000);
n2 = Serial.parseFloat();
if (n2 >= 0 || n2 <= 0 ) {
Serial.print("Segundo numero: ");
Serial.println(n2);
}
else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Num error!");
tone(13, 262, 250);
delay(1500);
lcd.clear();
}
lcd.setCursor(0, 0);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(n1);
lcd.setCursor(0, 1);
lcd.print(n2);
delay(1000);
lcd.clear();
lcd.setCursor(0, 0 );
lcd.clear();
lcd.setCursor(0, 1 );
lcd.clear();
lcd.print("Introduce: ");
lcd.setCursor(0, 1);
lcd.print("1=+ 2=- 3=* 4=/");
delay(5000);
while(Serial.available() == 1){}
op = Serial.parseInt();
switch (op) {
case 1:
Serial.println("El operador es +");
res = n1 + n2;
if(res >= 0 || res <= 0){
tone(13, 262, 250);}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("El resultado es:");
Serial.print("El resultado es: ");
Serial.print(res);
lcd.setCursor(0, 1);
lcd.print(res);
delay(1000);
exit(1);
break;
case 2:
Serial.println("El operador es -");
res = n1 - n2;
if(res >= 0 || res <= 0){
tone(13, 262, 250);}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("El resultado es:");
Serial.print("El resultado es: ");
Serial.print(res);
lcd.setCursor(0, 1);
lcd.print(res);
delay(1000);
exit(1);
break;
case 3:
Serial.println("El operador es *");
res = n1 * n2;
if(res >= 0 || res <= 0){
tone(13, 262, 250);}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("El resultado es:");
Serial.print("El resultado es: ");
Serial.print(res);
lcd.setCursor(0, 1);
lcd.print(res);
delay(1000);
exit(1);
break;
case 4:
Serial.println("El operador es /");
res = n1 / n2;
if(res >= 0 || res <= 0){
tone(13, 262, 250);}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("El resultado es:");
Serial.print("El resultado es: ");
Serial.print(res);
lcd.setCursor(0, 1);
lcd.print(res);
delay(1000);
exit(1);
break;
default:
lcd.clear();
for(int i=0; i<=200;i++){
lcd.setCursor(1, 0);
lcd.print("Introduce un operador correcto");
tone(13, 262, 250);
delay(100);
lcd.scrollDisplayLeft();
}
delay(7000);
Serial.println("Introduce un operador correcto");
tone(13, 262, 250);
lcd.clear();
lcd.setCursor(0, 0 );
lcd.print("Oper. Error!");
Serial.print("Oper. Error!!");
tone(13, 262, 250);
delay(2000);
lcd.clear();
exit(1);
break;
}
}