Make calc with serial Communication. Consider operation of 1 digit value only,Perform +,-,/,*(%,&,|,*,sq)(display on lcd, 7seg))
Step1: Initializations/Calculations/Assumptions/Connections
Define pattern in which you want to take the data
operand(a) operand(b) operation(o)
Step2: Circuit
Only arduino and specify rx,tx pin
Step3: code
int iB = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
char sdata[10];
// send data only when you receive data:
if (Serial.available()==3) {
// read the incoming byte:
int d = Serial.readBytesUntil('=',sdata, 3);
//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';
switch(sdata[2])
{
case '*':
a=sdata[0]*sdata[1];
Serial.print("Multiplication =");
Serial.print(a);
break;
case '+':
a=sdata[0]+sdata[1];
Serial.print("Sum =");
Serial.print(a);
break;
case '/':
a=sdata[0]/sdata[1];
Serial.print("Division = ");
Serial.print(a);
break;
case '-':
a=sdata[0]-sdata[1];
Serial.print("Subtraction = ");
Serial.print(a);
break;
default:
break;
}
//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);*/
}
}
If 2 digit number then-
int iB = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
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];
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;
}
//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