Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.54 KB | None | 0 0
  1. #include <LiquidCrystal.h>
  2. int i,a,c,aux,numeroactual,unidad,decena,centena,unidad2,decena2,centena2;
  3. char pulsacion,signo;
  4. char digito[4],digito2[4];
  5. float resultado,numero1,numero2;
  6.  
  7. LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);
  8.  
  9.  
  10. void setup() {
  11.   // put your setup code here, to run once:
  12.     Serial1.begin(9600);
  13.     lcd.begin(16, 2);// Fijamos el numero de caracteres y filas
  14.     lcd.clear();
  15.     lcd.write("PULSE LA TECLA CLR (C)");
  16. }
  17.  
  18. void loop() {
  19. if(Serial1.available())
  20. {
  21.           pulsacion=Serial1.read();
  22.           aux=pulsacion-48;
  23.          
  24. if ((numeroactual==1)&& (pulsacion>=48) && (pulsacion<=57) && (i<3))
  25. {
  26.   digito[i]=pulsacion;
  27.   i++;
  28.   lcd.print(pulsacion);
  29.   Serial1.print(pulsacion);
  30. }
  31.  
  32. if ((pulsacion=='+')||(pulsacion=='-')||(pulsacion=='*')||(pulsacion=='/'))
  33. //if (pulsacion=='+')
  34. {
  35.   numeroactual=2;
  36.   signo=pulsacion;
  37.   lcd.write(signo);
  38.   Serial1.write(pulsacion);
  39.   //lcd.print('+');
  40. }
  41. /*
  42. if (pulsacion=='-')
  43. {
  44.   numeroactual=2;
  45.   signo=pulsacion;
  46.   lcd.print('-');
  47. }
  48.  
  49. if (pulsacion=='*')
  50. {
  51.   numeroactual=2;
  52.   signo=pulsacion;
  53.   lcd.print('*');
  54. }
  55.  
  56. if (pulsacion=='/')
  57. {
  58.   numeroactual=2;
  59.   signo=pulsacion;
  60.   lcd.print('/');
  61. }
  62. */
  63.  
  64. if ((numeroactual==2)&& (pulsacion>=48) && (pulsacion<=57) && (a<3))
  65. {
  66.   digito2[a]=pulsacion;
  67.   a++;
  68.   lcd.print(aux);
  69.   Serial1.print(aux);
  70. }
  71.  
  72. if (pulsacion=='=')
  73. {
  74.         if(i==1)
  75.         {
  76.           numero1=digito[0]-48;
  77.         }
  78.         if (i==2)
  79.         {
  80.           unidad=digito[1]-48; // convierte el primer caracter guardado en entero
  81.           decena=digito[0]-48; // convierte el segundo caracter guardado en entero
  82.           numero1=decena*10+unidad;
  83.         }
  84.         if (i==3)
  85.         {
  86.           unidad=digito[2]-48; // convierte el primer caracter guardado en entero
  87.           decena=digito[1]-48; // convierte el segundo caracter guardado en entero
  88.           centena=digito[0]-48; // convierte el tercero caracter guardado en entero
  89.           numero1= centena*100+decena*10+unidad; // concatena unidades y decenas  
  90.         }
  91.  
  92.        
  93.         if(a==1)
  94.         {
  95.           numero2=digito2[0]-48;
  96.         }
  97.         if (a==2)
  98.         {
  99.           unidad2=digito2[1]-48; // convierte el primer caracter guardado en entero
  100.           decena2=digito2[0]-48; // convierte el segundo caracter guardado en entero
  101.           numero2=decena2*10+unidad2;
  102.         }
  103.         if (a==3)
  104.         {
  105.           unidad2=digito2[2]-48; // convierte el primer caracter guardado en entero
  106.           decena2=digito2[1]-48; // convierte el segundo caracter guardado en entero
  107.           centena2=digito2[0]-48; // convierte el tercero caracter guardado en entero
  108.           numero2= centena2*100+decena2*10+unidad2; // concatena unidades y decenas  
  109.         }
  110.  
  111.        
  112.         if (signo=='+')
  113.         {
  114.           resultado=(numero1+numero2);
  115.         }
  116.         if (signo=='-')
  117.         {
  118.           resultado=(numero1-numero2);
  119.         }
  120.         if (signo=='*')
  121.         {
  122.           resultado=(numero1*numero2);
  123.         }
  124.         if (signo=='/')
  125.         {
  126.           resultado=(numero1/numero2);
  127.         }  
  128.         lcd.write('=');
  129.         Serial1.write('=');
  130.         lcd.print(resultado);
  131.         Serial1.print(resultado);
  132.         lcd.setCursor(0,1);
  133.         lcd.print(numero1);
  134.         lcd.setCursor(7,1);
  135.         lcd.print(numero2);  
  136. }
  137.  
  138. if (pulsacion=='C')
  139. {
  140.     numeroactual=1;
  141.     a=0;
  142.     i=0;    
  143.     resultado=0;
  144.     for(c=0;c<3;c++)
  145.     {
  146.      digito[c]='0';
  147.      digito2[c]='0';
  148.     }
  149.     lcd.clear();
  150. }
  151. }
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement