Components and supplies
Resistor 4.75k ohm
Perma-Proto Breadboard Half Size
Resistor 221 ohm
Reed Switch; SPST-NO
Arduino UNO
Resistor 10k ohm
Alphanumeric LCD, 16 x 2
9V Battery Clip
Resistor 22K ohm
Tools and machines
Drill / Driver, Cordless
Project description
Code
SHUT_THE_BOX_GAME_FINAL.ino
arduino
1#include <LiquidCrystal.h> 2LiquidCrystal lcd(12, 11, 5,4,3,2); 3int Num1 = 0; 4int Num2 = 0; 5int Num3 = 0; 6int Num4 = 0; 7int Num5 = 0; 8int Num6 = 0; 9int Num7 = 0; 10int Num8 = 0; 11int Num9 = 0; 12int Num10 = 0; 13int Num11 = 0; 14int Num12 = 0; 15int NumTotal = 0; 16int NumTotalInverse = 0; 17 18 19int Num33=0; 20int Num44=0; 21int Num55=0; 22int Num66=0; 23int Num77=0; 24int Num88=0; 25int Num99=0; 26int Num1010=0; 27int Num1111=0; 28int Num1212=0; 29 30int Odds1=0; 31int Odds2=0; 32int Odds3=0; 33int Odds4=0; 34int Odds5=0; 35int Odds6=0; 36int Odds7=0; 37int Odds8=0; 38int Odds9=0; 39int Odds10=0; 40int Odds11=0; 41int Odds12=0; 42 43int Double2=0; 44int Double4=0; 45int Double6=0; 46int Double8=0; 47int Double10=0; 48int Double12=0; 49//----------------------------- 50//const unsigned long period = 2000; 51//int time_now = 0; 52int switchState = 0; 53 54//----------------------------- 55int Odds = 36; 56int OddsDouble = 36; 57int prevOdds = 36; 58int prevNumTotal = 0; 59int Fraction1 = 0; 60int Fraction2 = 0; 61int FractionDouble1 = 0; 62int FractionDouble2 = 0; 63float Oddss = 0; 64float dice = .36; 65const unsigned long eventInterval1 = 4000; 66unsigned long previousTime = 0; 67 68void setup() { 69pinMode(7,INPUT); 70Serial.begin(9600); 71lcd.begin(16,2); 72lcd.print(" SHUT THE BOX"); 73lcd.setCursor(0,1); 74lcd.print(" Good luck!"); 75} 76 77 78void loop() { 79 80Odds1=0; 81Odds2=0; 82Odds3=0; 83Odds4=0; 84Odds5=0; 85Odds6=0; 86Odds7=0; 87Odds8=0; 88Odds9=0; 89Odds10=0; 90Odds11=0; 91Odds12=0; 92Num1 = 0; 93Num2 = 0; 94Num3 = 0; 95Num4 = 0; 96Num5 = 0; 97Num6 = 0; 98Num7 = 0; 99Num8 = 0; 100Num9 = 0; 101Num10 = 0; 102Num11 = 0; 103Num12 = 0; 104Num33=0; 105Num44=0; 106Num55=0; 107Num66=0; 108Num77=0; 109Num88=0; 110Num99=0; 111Num1010=0; 112Num1111=0; 113Num1212=0; 114Double2=0; 115Double4=0; 116Double6=0; 117Double8=0; 118Double10=0; 119Double12=0; 120//unsigned long currentTime = millis(); 121prevOdds = Odds; 122prevNumTotal = NumTotal; 123 //Serial.println(Val0); 124 //Serial.println(A00); 125 //********************************************************************************************************************************************************************* 126int Val0=analogRead(A0); 127if(Val0>=680&&Val0<=715){ 128 Num1=1; 129 // 4.7 resistor - number 1 130 } 131 else if(Val0>=450&&Val0<=550){ 132 Num2=2; 133 // 10 resistor - number 2 134 } 135 else if(Val0>=280&&Val0<=400){ 136 Num3=3; 137 // 20 resistor - number 3 138 } 139 else if(Val0>=760&&Val0<=780){ 140 Num1=1; 141 Num2=2; 142 // 4.7+10 resistor - numbers1+2 143 } 144 else if(Val0>=720&&Val0<=750){ 145 Num1=1; 146 Num3=3; 147 // 4.7+20 resistor - numbers 1+3 148 } 149 else if(Val0>=580&&Val0<=630){ 150 Num2=2; 151 Num3=3; 152 // 10+20 resistor - number 2+3 153 } 154 else if(Val0>=780&&Val0<=850){ 155 Num1=1; 156 Num2=2; 157 Num3=3; 158 // 4.7+10+20 resistor - number 1+2+3 159 } 160 else{ 161 Num1 = 0; 162 Num2 = 0; 163 Num3 = 0; 164 } 165int Val1=analogRead(A1); 166if(Val1>=680&&Val1<=715){ 167 Num4=4; 168 // 4.7 resistor - number 4 169 } 170 else if(Val1>=450&&Val1<=550){ 171 Num5=5; 172 // 10 resistor - number 5 173 } 174 else if(Val1>=280&&Val1<=400){ 175 Num6=6; 176 // 10 resistor - number 6 177 } 178 else if(Val1>=760&&Val1<=780){ 179 Num4=4; 180 Num5=5; 181 // 4.7+10 resistor - numbers 4+5 182 } 183 else if(Val1>=720&&Val1<=750){ 184 Num4=4; 185 Num6=6; 186 // 4.7+20 resistor - numbers 4+6 187 } 188 else if(Val1>=580&&Val1<=630){ 189 Num5=5; 190 Num6=6; 191 // 10+20 resistor - numbers 5+6 192 } 193 else if(Val1>=780&&Val1<=850){ 194 Num4=4; 195 Num5=5; 196 Num6=6; 197 // 4.7+10+20 resistor - number 4+5+6 198 } 199 else{ 200 Num4 = 0; 201 Num5 = 0; 202 Num6 = 0; 203 } 204int Val2=analogRead(A2); 205 if(Val2>=680&&Val2<=715){ 206 Num7=7; 207 // 4.7 resistor - number 7 208 } 209 else if(Val2>=450&&Val2<=550){ 210 Num8=8; 211 // 10 resistor - number 8 212 } 213 else if(Val2>=280&&Val2<=400){ 214 Num9=9; 215 // 20 resistor - number 9 216 } 217 else if(Val2>=760&&Val2<=780){ 218 Num7=7; 219 Num8=8; 220 // 4.7+10 resistor - numbers 7+8 221 } 222 else if(Val2>=720&&Val2<=750){ 223 Num7=7; 224 Num9=9; 225 // 4.7+20 resistor - numbers 7+9 226 } 227 else if(Val2>=580&&Val2<=630){ 228 Num8=8; 229 Num9=9; 230 // 10+20 resistor - numbers 8+9 231 } 232 else if(Val2>=780&&Val2<=850){ 233 Num7=7; 234 Num8=8; 235 Num9=9; 236 // 4.7+10+20 resistor - number 7+8+9 237 } 238 else{ 239 Num7 = 0; 240 Num8 = 0; 241 Num9 = 0; 242 } 243int Val3=analogRead(A3); 244 if(Val3>=680&&Val3<=715){ 245 Num10=10; 246 // 4.7 resistor - number 10 247 } 248 else if(Val3>=450&&Val3<=550){ 249 Num11=11; 250 // 10 resistor - number 11 251 } 252 else if(Val3>=280&&Val3<=400){ 253 Num12=12; 254 // 20 resistor - number 12 255 } 256 else if(Val3>=760&&Val3<=780){ 257 Num10=10; 258 Num11=11; 259 // 4.7+10 resistor - numbers 10+11 260 } 261 else if(Val3>=720&&Val3<=750){ 262 Num10=10; 263 Num12=12; 264 // 4.7+20 resistor - numbers 10+12 265 } 266 else if(Val3>=580&&Val3<=630){ 267 Num11=11; 268 Num12=12; 269 // 10+20 resistor - numbers 11+12 270 } 271 else if(Val3>=780&&Val3<=850){ 272 Num10=10; 273 Num11=11; 274 Num12=12; 275 // 4.7+10+20 resistor - number 10+11+12 276 } 277 else{ 278 279 Num10 = 0; 280 Num11 = 0; 281 Num12 = 0; 282 } 283NumTotal=0; 284NumTotal=Num1+Num2+Num3+Num4+Num5+Num6+Num7+Num8+Num9+Num10+Num11+Num12; 285NumTotalInverse = 78-NumTotal; 286//********************************************************************************************************************************************************************** 287if(Num1==1 || Num2==2){ 288 Num33=3; 289} 290if(Num1==1 || Num3==3){ 291 Num44=4; 292} 293// 294if((Num1==1 || Num4==4) && (Num2==2 || Num3==3)){ 295 Num55=5; 296} 297//15-24 298if((Num1==1 || Num5==5) && (Num2==2 || Num4==4)){ 299 Num66=6; 300} 301//16-25-34-124 302if((Num1==1 || Num6==6) && (Num2==2 || Num5==5) && (Num3==3 || Num4==4) && (Num1==1 || Num2==2 || Num4==4)){ 303 Num77=7; 304} 305//17-26-35-125-134 306if((Num1==1 || Num7==7) && (Num2==2 || Num6==6) && (Num3==3 || Num5==5) && (Num1==1 || Num2==2 || Num5==5) && (Num1==1 || Num3==3 || Num4==4)){ 307 Num88=8; 308} 309//18-27-36-126-135-234 310if((Num1==1 || Num8==8) && (Num2==2 || Num7==7) && (Num3==3 || Num6==6) && (Num4==4 || Num5==5) && (Num1==1 || Num2==2 || Num6==6) && (Num1==1 || Num3==3 || Num5==5) && (Num2==2 || Num3==3 || Num4==4)){ 311 Num99=9; 312} 313//19-28-37-46-127-136-235-1234 314if((Num1==1 || Num9==9) && (Num2==2 || Num8==8) && (Num3==3 || Num7==7) && (Num4==4 || Num6==6) && (Num1==1 || Num2==2 || Num7==7) && (Num1==1 || Num3==3 || Num6==6) && (Num2==2 || Num3==3 || Num5==5) && (Num1==1 || Num2==2 || Num3==3 || Num4==4)){ 315 Num1010=10; 316} 317//110-29-38-47-56-128-137-146-236-245-1235 318if((Num1==1 || Num10==10) && (Num2==2 || Num9==9) && (Num3==3 || Num8==8) && (Num4==4 || Num7==7) && (Num5==5 || Num6==6) && (Num1==1 || Num2==2 || Num8==8) && (Num1==1 || Num3==3 || Num7==7) && (Num1==1 || Num4==4 || Num6==6) && (Num2==2 || Num3==3 || Num6==6) && (Num2==2 || Num4==4 || Num5==5) && (Num1==1 || Num2==2 || Num3==3 || Num5==5)){ 319 Num1111=11; 320} 321//111-210-39-48-57-129-138-147-156-237-246-345-1236 322if((Num1==1 || Num11==11) && (Num2==2 || Num10==10) && (Num3==3 || Num9==9) && (Num4==4 || Num8==8) && (Num5==5 || Num7==7) && (Num1==1 || Num2==2 || Num9==9) && (Num1==1 || Num3==3 || Num8==8) && (Num1==1 || Num4==4 || Num7==7) && (Num1==1 || Num5==5 || Num6==6) && (Num2==2 || Num3==3 || Num7==7) && (Num2==2 || Num4==4 || Num6==6) && (Num3==3 || Num4==4 || Num5==5) && (Num1==1 || Num2==2 || Num3==3 || Num6==6)){ 323 Num1212=12; 324} 325//********************************************************************************************************************************************************************** 326Odds1=0; 327if(Num2==2){ 328Odds2=1; 329} 330if(Num3==3 && Num33==3){ 331Odds3=2; 332} 333if(Num4==4 && Num44==4){ 334Odds4=3; 335} 336if(Num5==5 && Num55==5){ 337Odds5=4; 338} 339if(Num6==6 && Num66==6){ 340Odds6=5; 341} 342if(Num7==7 && Num77==7){ 343Odds7=6; 344} 345if(Num8==8 && Num88==8){ 346Odds8=5; 347} 348if(Num9==9 && Num99==9){ 349Odds9=4; 350} 351if(Num10==10 && Num1010==10){ 352Odds10=3; 353} 354if(Num11==11 && Num1111==11){ 355Odds11=2; 356} 357if(Num12==12 && Num1212==12){ 358Odds12=1; 359} 360//********************************************************************************************************************************************************************** 361if(Num2==2){ 362 Double2=1; 363} 364if(Num4==4 && Num44==4){ 365 Double4=1; 366} 367if(Num6==6 && Num66==6){ 368 Double6=1; 369} 370if(Num8==8 && Num88==8){ 371 Double8=1; 372} 373if(Num10==10 && Num1010==10){ 374 Double10=1; 375} 376if(Num12==12 && Num1212==12){ 377 Double12=1; 378} 379//********************************************************************************************************************************************************************** 380Odds = (36-(Odds1+Odds2+Odds3+Odds4+Odds5+Odds6+Odds7+Odds8+Odds9+Odds10+Odds11+Odds12)); 381 382OddsDouble = (36+(Double2+Double4+Double6+Double8+Double10+Double12)-(Odds1+Odds2+Odds3+Odds4+Odds5+Odds6+Odds7+Odds8+Odds9+Odds10+Odds11+Odds12)); 383 384//********************************************************************************************************************************************************************** 385if(Odds==2){ 386 Fraction1=1; 387 Fraction2=18; 388} 389else if(Odds==3){ 390 Fraction1=1; 391 Fraction2=12; 392} 393else if(Odds==4){ 394 Fraction1=1; 395 Fraction2=9; 396} 397else if(Odds==6){ 398 Fraction1=1; 399 Fraction2=6; 400} 401else if(Odds==8){ 402 Fraction1=2; 403 Fraction2=9; 404} 405else if(Odds==9){ 406 Fraction1=1; 407 Fraction2=4; 408} 409else if(Odds==10){ 410 Fraction1=5; 411 Fraction2=18; 412} 413else if(Odds==12){ 414 Fraction1=1; 415 Fraction2=3; 416} 417else if(Odds==14){ 418 Fraction1=7; 419 Fraction2=18; 420} 421else if(Odds==15){ 422 Fraction1=5; 423 Fraction2=12; 424} 425else if(Odds==16){ 426 Fraction1=4; 427 Fraction2=9; 428} 429else if(Odds==18){ 430 Fraction1=1; 431 Fraction2=2; 432} 433else if(Odds==20){ 434 Fraction1=5; 435 Fraction2=9; 436} 437else if(Odds==21){ 438 Fraction1=7; 439 Fraction2=12; 440} 441else if(Odds==22){ 442 Fraction1=11; 443 Fraction2=18; 444} 445else if(Odds==24){ 446 Fraction1=2; 447 Fraction2=3; 448} 449else if(Odds==26){ 450 Fraction1=13; 451 Fraction2=18; 452} 453else if(Odds==27){ 454 Fraction1=3; 455 Fraction2=4; 456} 457else if(Odds==28){ 458 Fraction1=7; 459 Fraction2=9; 460} 461else if(Odds==30){ 462 Fraction1=5; 463 Fraction2=6; 464} 465else if(Odds==32){ 466 Fraction1=8; 467 Fraction2=9; 468} 469else if(Odds==33){ 470 Fraction1=11; 471 Fraction2=12; 472} 473else if(Odds==34){ 474 Fraction1=17; 475 Fraction2=18; 476} 477else{ 478 Fraction1=0; 479 Fraction2=0; 480} 481//********************************************************************************************************************************************************************** 482if(OddsDouble==2){ 483 FractionDouble1=1; 484 FractionDouble2=18; 485} 486else if(OddsDouble==3){ 487 FractionDouble1=1; 488 FractionDouble2=12; 489} 490else if(OddsDouble==4){ 491 FractionDouble1=1; 492 FractionDouble2=9; 493} 494else if(OddsDouble==6){ 495 FractionDouble1=1; 496 FractionDouble2=6; 497} 498else if(OddsDouble==8){ 499 FractionDouble1=2; 500 FractionDouble2=9; 501} 502else if(OddsDouble==9){ 503 FractionDouble1=1; 504 FractionDouble2=4; 505} 506else if(OddsDouble==10){ 507 FractionDouble1=5; 508 FractionDouble2=18; 509} 510else if(OddsDouble==12){ 511 FractionDouble1=1; 512 FractionDouble2=3; 513} 514else if(OddsDouble==14){ 515 FractionDouble1=7; 516 FractionDouble2=18; 517} 518else if(OddsDouble==15){ 519 FractionDouble1=5; 520 FractionDouble2=12; 521} 522else if(OddsDouble==16){ 523 FractionDouble1=4; 524 FractionDouble2=9; 525} 526else if(OddsDouble==18){ 527 FractionDouble1=1; 528 FractionDouble2=2; 529} 530else if(OddsDouble==20){ 531 FractionDouble1=5; 532 FractionDouble2=9; 533} 534else if(OddsDouble==21){ 535 FractionDouble1=7; 536 FractionDouble2=12; 537} 538else if(OddsDouble==22){ 539 FractionDouble1=11; 540 FractionDouble2=18; 541} 542else if(OddsDouble==24){ 543 FractionDouble1=2; 544 FractionDouble2=3; 545} 546else if(OddsDouble==26){ 547 FractionDouble1=13; 548 FractionDouble2=18; 549} 550else if(OddsDouble==27){ 551 FractionDouble1=3; 552 FractionDouble2=4; 553} 554else if(OddsDouble==28){ 555 FractionDouble1=7; 556 FractionDouble2=9; 557} 558else if(OddsDouble==30){ 559 FractionDouble1=5; 560 FractionDouble2=6; 561} 562else if(OddsDouble==32){ 563 FractionDouble1=8; 564 FractionDouble2=9; 565} 566else if(OddsDouble==33){ 567 FractionDouble1=11; 568 FractionDouble2=12; 569} 570else if(OddsDouble==34){ 571 FractionDouble1=17; 572 FractionDouble2=18; 573} 574else{ 575 FractionDouble1=0; 576 FractionDouble2=0; 577} 578//********************************************************************************************************************************************************************** 579switchState = digitalRead(7); 580if (switchState == HIGH) { 581 lcd.setCursor(0,1); 582 lcd.print(NumTotalInverse); 583 } 584if (switchState == LOW){ 585 lcd.setCursor(0,1); 586 lcd.print(" "); 587 } 588//********************************************************************************************************************************************************************** 589if (NumTotal != prevNumTotal ){ 590if (NumTotal == 0){ 591lcd.begin(16,2); 592lcd.print(" SHUT THE BOX"); 593lcd.setCursor(0,1); 594lcd.print(" Good luck!"); 595} 596else if (NumTotal == 78){ 597lcd.begin(16,2); 598lcd.print(" YOU SHUT"); 599lcd.setCursor(0,1); 600lcd.print(" THE BOX!"); 601} 602else{ 603lcd.begin(16,2); 604lcd.print("Odds:"); 605 606 if (Fraction1 >= 1){ 607 lcd.print(Fraction1); 608 lcd.print("/"); 609 lcd.print(Fraction2); 610 float Oddss = (Odds/dice); 611 lcd.setCursor(11,0); 612 lcd.print(Oddss,0); 613 lcd.print("%"); 614 } 615 else { 616 lcd.print(Odds); 617 lcd.print("/36"); 618 float Oddss = (Odds/dice); 619 lcd.setCursor(11,0); 620 lcd.print(Oddss,0); 621 lcd.print("%"); 622 } 623 624 if (FractionDouble1 >= 1){ 625 lcd.setCursor(5,1); 626 lcd.print(FractionDouble1); 627 lcd.print("/"); 628 lcd.print(FractionDouble2); 629 float Oddss = (OddsDouble/dice); 630 lcd.setCursor(11,1); 631 lcd.print(Oddss,0); 632 lcd.print("%"); 633 } 634 else { 635 lcd.setCursor(5,1); 636 lcd.print(OddsDouble); 637 lcd.print("/36"); 638 float Oddss = (OddsDouble/dice); 639 lcd.setCursor(11,1); 640 lcd.print(Oddss,0); 641 lcd.print("%"); 642 } 643 644} 645} 646 647 648} 649
Downloadable files
Shut the Box - Diagram/Sketch
Shut the Box - Diagram/Sketch
Shut the Box - Diagram/Sketch
Shut the Box - Diagram/Sketch
Comments
Only logged in users can leave comments
TJWard
0 Followers
•0 Projects
Table of contents
Intro
0
0