Calc of serial input with display the output on lcd.

 #include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

/*void loop() {

  // print the number of seconds since reset:

  lcd.print(millis() / 1000);

  // set the cursor to column 0, line 1

  // (note: line 1 is the second row, since counting begins with 0):

}*/





int iB = 0;   // for incoming serial data

void setup() {

        Serial.begin(9600); // opens serial port, sets data rate to 9600 bps

  lcd.begin(16, 2);

  lcd.print("hello, world!");

}


void loop() {

 char sdata[10];

        // send data only when you receive data:

        if (Serial.available()==5) {

                // read the incoming byte:

                int d = Serial.readBytesUntil('=',sdata, 5);

                //abo

                // say what you got:

                Serial.print("I received: ");

                Serial.println(sdata[0]-'0', DEC);

          Serial.println(", ");

          Serial.println(sdata[1]-'0', DEC);

          char op;

           int a;

          sdata[0]=sdata[0]-'0';

          sdata[1]=sdata[1]-'0';

          sdata[2]=sdata[2]-'0';

          sdata[3]=sdata[3]-'0';

          sdata[0]=(sdata[0]*10)+sdata[1];

          sdata[1]=(sdata[2]*10)+sdata[3];

          int c=sdata[0];

          int g=sdata[1];

          switch(sdata[4])

          {

            case '*':

            a=sdata[0]*sdata[1];

            Serial.print("Multiplication =");

            Serial.println(a,DEC);

            break;

            case '+':

            a=sdata[0]+sdata[1];

           Serial.print("Sum =");

            Serial.println(a,DEC);

            break;

            case '/':

            a=sdata[0]/sdata[1];

            Serial.print("Division = ");

            Serial.println(a,DEC);

            break;

            case '-':

            a=sdata[0]-sdata[1];

           Serial.print("Subtraction = ");

            Serial.println(a,DEC);

            break;

            default:

             Serial.print("Invalid operator");

            break;

          }

           lcd.setCursor(0, 1);

          lcd.print(c,DEC);

          lcd.print(sdata[4]);

          lcd.print(g,DEC);

          lcd.print("=");

          lcd.print(a);

          //Serial.print("answer is ",a);

/*for(int e=0; e<d;e++)

        {

         

          a=a+(sdata[e]-'0'); 

        }

          b=a/d;

    Serial.println("Sum is= ");

          Serial.println(a, DEC);

           Serial.println("Average is= ");

          Serial.println(b, DEC);*/

}

}








Comments