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
Post a Comment