const int add = 19;
const int minus = 18;
const int in1[] = {5, 21, 22, 23};
const int in2[] = {0, 4, 16, 17};
const int out[] = {32, 33, 25, 26, 27};
const int led[] = {32, 33, 25, 26, 27, 0, 4, 16, 17, 5, 21, 22, 23, 18, 19};
long a, b, op, answer;
void setup() {
Serial.begin(115200);
for(int i = 0; i < 15; i++){
pinMode(led[i], OUTPUT);
}
}
void number1(int num){
for(int i = 3; i >= 0; i--){
digitalWrite(in1[i], (num & (1 << i)) ? HIGH : LOW);
}
}
void number2(int num){
for(int i = 3; i >= 0; i--){
digitalWrite(in2[i], (num & (1 << i)) ? HIGH : LOW);
}
}
void outled(int num){
for(int i = 4; i >= 0; i--){
digitalWrite(out[i], (num & (1 << i)) ? HIGH : LOW);
}
}
void loop() {
Serial.print("Input 1: ");
while(Serial.available() == 0){
}
a = Serial.readString().toInt();
Serial.println(a);
number1(a);
Serial.print("Input 2: ");
while(Serial.available() == 0){
}
b = Serial.readString().toInt();
Serial.println(b);
number2(b);
Serial.print("(1) Addition \n(2) Subtraction \nOperation: ");
while(Serial.available() == 0){
}
op = Serial.readString().toInt();
Serial.println(op);
if (op == 1) {
digitalWrite(add, HIGH);
answer = a + b;
}
else {
digitalWrite(minus, HIGH);
if (a > b) {
answer = a - b;
}
else {
answer = b - a;
}
}
Serial.print("Answer = ");
Serial.println(answer);
outled(answer);
delay(10000);
for(int i = 0; i < 15; i++){
digitalWrite(led[i], LOW);
}//checked822
}