3-Bit Binary Calculator Using Arduino Uno
This project can add two 3-digit binary numbers to turn into a 4-digit binary number. Math homework solved!
Components and supplies
24
Jumper wires (generic)
1
Arduino UNO
6
Resistor 2.21k ohm
4
5 mm LED: Red
4
Resistor 221 ohm
1
Breadboard (generic)
6
Pushbutton switch 12mm
Apps and platforms
1
Arduino IDE
Project description
Code
Code for project
arduino
1int A4pin=A5; //Set all pins as global variables 2int A2pin=A3; 3int A1pin=A1; 4 5int B4pin=2; 6int B2pin=4; 7int B1pin=6; 8 9int out8=10; 10int out4=11; 11int out2=12; 12int out1=13; 13 14 15void setup() { 16 Serial.begin(9600); //turn on serial port 17 pinMode(A4pin,INPUT); //set all input pins to input 18 pinMode(A2pin,INPUT); 19 pinMode(A1pin,INPUT); 20 21 pinMode(B4pin,INPUT); 22 pinMode(B2pin,INPUT); 23 pinMode(B1pin,INPUT); 24 25 26 pinMode(out8,OUTPUT); //set all output pins to output 27 pinMode(out4,OUTPUT); 28 pinMode(out2,OUTPUT); 29 pinMode(out1,OUTPUT); 30} 31 32void loop() { 33 int A4val=0; //Set all read values as local variables 34 int A2val=0; 35 int A1val=0; 36 37 int B4val=0; 38 int B2val=0; 39 int B1val=0; 40 41 42 int Aval; //Set A and B values as local variables 43 int Bval; 44 45 int outval; //Set output value as local variable 46 47 48 A4val = digitalRead(A4pin); //Set the variable of input to read value 49 A2val = digitalRead(A2pin); 50 A1val = digitalRead(A1pin); 51 52 B4val = digitalRead(B4pin); 53 B2val = digitalRead(B2pin); 54 B1val = digitalRead(B1pin); 55 56 int A4valcal = A4val; //setting variables for inverting 57 int A2valcal = A2val; 58 int A1valcal = A1val; 59 60 int B4valcal = B4val; 61 int B2valcal = B2val; 62 int B1valcal = B1val; 63 64 65 66 if (A4val==0){ //inverting signal 67 A4valcal = 1; 68 } 69 70 if (A4val==1){ 71 A4valcal = 0; 72 } 73 74 75 if (A2val==0){ 76 A2valcal = 1; 77 } 78 79 if (A2val==1){ 80 A2valcal = 0; 81 } 82 83 84 if (A1val==0){ 85 A1valcal = 1; 86 } 87 88 if (A1val==1){ 89 A1valcal = 0; 90 } 91 92 93 94 if (B4val==0){ 95 B4valcal = 1; 96 } 97 98 if (B4val==1){ 99 B4valcal = 0; 100 } 101 102 103 if (B2val==0){ 104 B2valcal = 1; 105 } 106 107 if (B2val==1){ 108 B2valcal = 0; 109 } 110 111 112 if (B1val==0){ 113 B1valcal = 1; 114 } 115 116 if (B1val==1){ 117 B1valcal = 0; 118 } 119 120 121 A4val = A4valcal; //setting A and B value to inverted value 122 A2val = A2valcal; 123 A1val = A1valcal; 124 125 B4val = B4valcal; 126 B2val = B2valcal; 127 B1val = B1valcal; 128 129 130 131 Serial.print("A = "); //printing binary values of A and B 132 Serial.print(A4val); 133 Serial.print(A2val); 134 Serial.println(A1val); 135 136 137 138 Serial.print("B = "); 139 Serial.print(B4val); 140 Serial.print(B2val); 141 Serial.println(B1val); 142 143 144 Aval=(A4val*4)+(A2val*2)+(A1val*1); //Changing binary value to decimal value 145 Bval=(B4val*4)+(B2val*2)+(B1val*1); 146 147 outval=Aval+Bval; //calculate total value 148 149 Serial.println("total = "); //printing total value in serial port to check 150 Serial.println(outval); 151 Serial.println(""); 152 153 digitalWrite(out8,LOW); //reseting output LEDs 154 digitalWrite(out4,LOW); 155 digitalWrite(out2,LOW); 156 digitalWrite(out1,LOW); 157 158 if (outval>=8) { //converting from decimal to binary then output 159 digitalWrite(out8,HIGH); 160 outval=outval-8; 161 } 162 163 if (outval>=4) { 164 digitalWrite(out4,HIGH); 165 outval=outval-4; 166 } 167 168 if (outval>=2) { 169 digitalWrite(out2,HIGH); 170 outval=outval-2; 171 } 172 173 174 if (outval>=1) { 175 digitalWrite(out1,HIGH); 176 outval=outval-1; 177 } 178 179 180 181 182 183}
Code for project
arduino
1int A4pin=A5; //Set all pins as global variables 2int A2pin=A3; 3int 4 A1pin=A1; 5 6int B4pin=2; 7int B2pin=4; 8int B1pin=6; 9 10int out8=10; 11int 12 out4=11; 13int out2=12; 14int out1=13; 15 16 17void setup() { 18 Serial.begin(9600); 19 //turn on serial port 20 pinMode(A4pin,INPUT); //set all input pins to input 21 22 pinMode(A2pin,INPUT); 23 pinMode(A1pin,INPUT); 24 25 pinMode(B4pin,INPUT); 26 27 pinMode(B2pin,INPUT); 28 pinMode(B1pin,INPUT); 29 30 31 pinMode(out8,OUTPUT); 32 //set all output pins to output 33 pinMode(out4,OUTPUT); 34 pinMode(out2,OUTPUT); 35 36 pinMode(out1,OUTPUT); 37} 38 39void loop() { 40 int A4val=0; //Set all 41 read values as local variables 42 int A2val=0; 43 int A1val=0; 44 45 int 46 B4val=0; 47 int B2val=0; 48 int B1val=0; 49 50 51 int Aval; //Set A 52 and B values as local variables 53 int Bval; 54 55 int outval; //Set output 56 value as local variable 57 58 59 A4val = digitalRead(A4pin); //Set the variable 60 of input to read value 61 A2val = digitalRead(A2pin); 62 A1val = digitalRead(A1pin); 63 64 65 B4val = digitalRead(B4pin); 66 B2val = digitalRead(B2pin); 67 B1val 68 = digitalRead(B1pin); 69 70 int A4valcal = A4val; //setting variables for inverting 71 72 int A2valcal = A2val; 73 int A1valcal = A1val; 74 75 int B4valcal = B4val; 76 77 int B2valcal = B2val; 78 int B1valcal = B1val; 79 80 81 82 if (A4val==0){ 83 //inverting signal 84 A4valcal = 1; 85 } 86 87 if (A4val==1){ 88 89 A4valcal = 0; 90 } 91 92 93 if (A2val==0){ 94 A2valcal = 1; 95 } 96 97 98 if (A2val==1){ 99 A2valcal = 0; 100 } 101 102 103 if (A1val==0){ 104 A1valcal 105 = 1; 106 } 107 108 if (A1val==1){ 109 A1valcal = 0; 110 } 111 112 113 114 115 if (B4val==0){ 116 B4valcal = 1; 117 } 118 119 if (B4val==1){ 120 B4valcal 121 = 0; 122 } 123 124 125 if (B2val==0){ 126 B2valcal = 1; 127 } 128 129 if 130 (B2val==1){ 131 B2valcal = 0; 132 } 133 134 135 if (B1val==0){ 136 B1valcal 137 = 1; 138 } 139 140 if (B1val==1){ 141 B1valcal = 0; 142 } 143 144 145 A4val 146 = A4valcal; //setting A and B value to inverted value 147 A2val = A2valcal; 148 149 A1val = A1valcal; 150 151 B4val = B4valcal; 152 B2val = B2valcal; 153 B1val 154 = B1valcal; 155 156 157 158 Serial.print("A = "); //printing binary values 159 of A and B 160 Serial.print(A4val); 161 Serial.print(A2val); 162 Serial.println(A1val); 163 164 165 166 167 Serial.print("B = "); 168 Serial.print(B4val); 169 Serial.print(B2val); 170 171 Serial.println(B1val); 172 173 174 Aval=(A4val*4)+(A2val*2)+(A1val*1); //Changing 175 binary value to decimal value 176 Bval=(B4val*4)+(B2val*2)+(B1val*1); 177 178 outval=Aval+Bval; 179 //calculate total value 180 181 Serial.println("total = "); //printing 182 total value in serial port to check 183 Serial.println(outval); 184 Serial.println(""); 185 186 187 digitalWrite(out8,LOW); //reseting output LEDs 188 digitalWrite(out4,LOW); 189 190 digitalWrite(out2,LOW); 191 digitalWrite(out1,LOW); 192 193 if (outval>=8) { 194 //converting from decimal to binary then output 195 digitalWrite(out8,HIGH); 196 197 outval=outval-8; 198 } 199 200 if (outval>=4) { 201 digitalWrite(out4,HIGH); 202 203 outval=outval-4; 204 } 205 206 if (outval>=2) { 207 digitalWrite(out2,HIGH); 208 209 outval=outval-2; 210 } 211 212 213 if (outval>=1) { 214 digitalWrite(out1,HIGH); 215 216 outval=outval-1; 217 } 218 219 220 221 222 223}
Downloadable files
breadboard schematic of project
breadboard schematic of project

Comments
Only logged in users can leave comments