Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- int i,a,c,aux,numeroactual,unidad,decena,centena,unidad2,decena2,centena2;
- char pulsacion,signo;
- char digito[4],digito2[4];
- float resultado,numero1,numero2;
- LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);
- void setup() {
- // put your setup code here, to run once:
- Serial1.begin(9600);
- lcd.begin(16, 2);// Fijamos el numero de caracteres y filas
- lcd.clear();
- lcd.write("PULSE LA TECLA CLR (C)");
- }
- void loop() {
- if(Serial1.available())
- {
- pulsacion=Serial1.read();
- aux=pulsacion-48;
- if ((numeroactual==1)&& (pulsacion>=48) && (pulsacion<=57) && (i<3))
- {
- digito[i]=pulsacion;
- i++;
- lcd.print(pulsacion);
- Serial1.print(pulsacion);
- }
- if ((pulsacion=='+')||(pulsacion=='-')||(pulsacion=='*')||(pulsacion=='/'))
- //if (pulsacion=='+')
- {
- numeroactual=2;
- signo=pulsacion;
- lcd.write(signo);
- Serial1.write(pulsacion);
- //lcd.print('+');
- }
- /*
- if (pulsacion=='-')
- {
- numeroactual=2;
- signo=pulsacion;
- lcd.print('-');
- }
- if (pulsacion=='*')
- {
- numeroactual=2;
- signo=pulsacion;
- lcd.print('*');
- }
- if (pulsacion=='/')
- {
- numeroactual=2;
- signo=pulsacion;
- lcd.print('/');
- }
- */
- if ((numeroactual==2)&& (pulsacion>=48) && (pulsacion<=57) && (a<3))
- {
- digito2[a]=pulsacion;
- a++;
- lcd.print(aux);
- Serial1.print(aux);
- }
- if (pulsacion=='=')
- {
- if(i==1)
- {
- numero1=digito[0]-48;
- }
- if (i==2)
- {
- unidad=digito[1]-48; // convierte el primer caracter guardado en entero
- decena=digito[0]-48; // convierte el segundo caracter guardado en entero
- numero1=decena*10+unidad;
- }
- if (i==3)
- {
- unidad=digito[2]-48; // convierte el primer caracter guardado en entero
- decena=digito[1]-48; // convierte el segundo caracter guardado en entero
- centena=digito[0]-48; // convierte el tercero caracter guardado en entero
- numero1= centena*100+decena*10+unidad; // concatena unidades y decenas
- }
- if(a==1)
- {
- numero2=digito2[0]-48;
- }
- if (a==2)
- {
- unidad2=digito2[1]-48; // convierte el primer caracter guardado en entero
- decena2=digito2[0]-48; // convierte el segundo caracter guardado en entero
- numero2=decena2*10+unidad2;
- }
- if (a==3)
- {
- unidad2=digito2[2]-48; // convierte el primer caracter guardado en entero
- decena2=digito2[1]-48; // convierte el segundo caracter guardado en entero
- centena2=digito2[0]-48; // convierte el tercero caracter guardado en entero
- numero2= centena2*100+decena2*10+unidad2; // concatena unidades y decenas
- }
- if (signo=='+')
- {
- resultado=(numero1+numero2);
- }
- if (signo=='-')
- {
- resultado=(numero1-numero2);
- }
- if (signo=='*')
- {
- resultado=(numero1*numero2);
- }
- if (signo=='/')
- {
- resultado=(numero1/numero2);
- }
- lcd.write('=');
- Serial1.write('=');
- lcd.print(resultado);
- Serial1.print(resultado);
- lcd.setCursor(0,1);
- lcd.print(numero1);
- lcd.setCursor(7,1);
- lcd.print(numero2);
- }
- if (pulsacion=='C')
- {
- numeroactual=1;
- a=0;
- i=0;
- resultado=0;
- for(c=0;c<3;c++)
- {
- digito[c]='0';
- digito2[c]='0';
- }
- lcd.clear();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement