daniel_lawson9999

Daniel Lawson's Arduino Calculator

Nov 11th, 2015
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.25 KB | None | 0 0
  1. // button number variable assignment
  2. #include <LiquidCrystal.h>
  3. LiquidCrystal lcd(0,2,3,4,5,6);
  4.  
  5. const int button1_pin = 19;
  6. const int button2_pin = 16;
  7. const int button3_pin = 12;
  8. const int button4_pin = 18;
  9. const int button5_pin = 17;
  10. const int button6_pin = 15;
  11. const int button7_pin = 7;
  12. const int button8_pin = 22;
  13. const int button9_pin = 22;
  14.  
  15. int button1 = 0;
  16. int button2 = 0;
  17. int button3 = 0;
  18. int button4 = 0;
  19. int button5 = 0;
  20. int button6 = 0;
  21. int button7 = 0;
  22. int button8 = 0;
  23. int button9 = 0;
  24.  
  25. // button operator variable assignment
  26.  
  27. const int buttonPlus_pin = 10;
  28. const int buttonMinus_pin = 8;
  29. const int buttonMult_pin = 9;
  30. const int buttonDiv_pin = 11;;
  31.  
  32. int buttonPlus = 0;
  33. int buttonMinus = 0;
  34. int buttonMult = 0;
  35. int buttonDiv = 0;
  36.  
  37. // other button variable assignment
  38.  
  39. const int equal_pin = 13;
  40. const int onOff_pin = 1;
  41.  
  42. int equal = 0;
  43. int onOff = 0;
  44.  
  45. const int photoR_pin = A0;
  46. int photoR = 0;
  47.  
  48. // Other int
  49. int phaseCounter = 0;
  50. int printCounter = 0;
  51. int counterHelper = 0;
  52.  
  53. int buttonPushCounter1 = 0;
  54. int buttonPushCounter2 =0;
  55. int buttonPushCounter3 =0;
  56. int buttonPushCounter4 =0;
  57. int buttonPushCounter5 =0;
  58. int buttonPushCounter6 =0;
  59. int buttonPushCounter7 =0;
  60. int buttonPushCounter8 =0;
  61. int buttonPushCounter9 =0;
  62.  
  63. int buttonPushCounter1prev = 0;
  64. int buttonPushCounter2prev =0;
  65. int buttonPushCounter3prev =0;
  66. int buttonPushCounter4prev =0;
  67. int buttonPushCounter5prev =0;
  68. int buttonPushCounter6prev =0;
  69. int buttonPushCounter7prev =0;
  70. int buttonPushCounter8prev =0;
  71. int buttonPushCounter9prev =0;
  72.  
  73.  
  74. int buttonPushCounterPlus = 0;
  75. int buttonPushCounterMinus = 0;
  76. int buttonPushCounterMult = 0;
  77. int buttonPushCounterDiv = 0;
  78.  
  79. int buttonPushCounterEqual = 0;
  80. int buttonPushCounterOnOff = 0;
  81.  
  82. int buttonPushCounterPlusprev = 0;
  83. int buttonPushCounterMinusprev = 0;
  84. int buttonPushCounterMultprev = 0;
  85. int buttonPushCounterDivprev = 0;
  86.  
  87. int buttonPushCounterEqualprev = 0;
  88. int buttonPushCounterOnOffprev = 0;
  89.  
  90.  
  91.  
  92. int lastButtonState1 = 0;
  93. int lastButtonState2 = 0;
  94. int lastButtonState3 = 0;
  95. int lastButtonState4 = 0;
  96. int lastButtonState5 = 0;
  97. int lastButtonState6 = 0;
  98. int lastButtonState7 = 0;
  99. int lastButtonState8 = 0;
  100. int lastButtonState9 = 0;
  101.  
  102. int lastButtonStatePlus = 0;
  103. int lastButtonStateMinus = 0;
  104. int lastButtonStateMult = 0;
  105. int lastButtonStateDiv = 0;
  106.  
  107. int lastButtonStateEqual = 0;
  108. int lastButtonStateOnOff = 0;
  109.  
  110. int phase = 0;
  111. int onState = 0;
  112. int numberPressed = 0;
  113. long value1 = 0;
  114. long value2 = 0;
  115. int operatorValue = 0; // 1 will add, 2 will sub, 3 will mult, 4 will div
  116. long totalNumber = 0;
  117. void setup()
  118. {
  119. lcd.begin(16,2);
  120. pinMode(button1_pin,INPUT);
  121. pinMode(button2_pin,INPUT);
  122. pinMode(button3_pin,INPUT);
  123. pinMode(button4_pin,INPUT);
  124. pinMode(button5_pin,INPUT);
  125. pinMode(button6_pin,INPUT);
  126. pinMode(button7_pin,INPUT);
  127. pinMode(button8_pin,INPUT);
  128. pinMode(button9_pin,INPUT);
  129.  
  130. pinMode(buttonPlus_pin,INPUT);
  131. pinMode(buttonMinus_pin,INPUT);
  132. pinMode(buttonMult_pin,INPUT);
  133. pinMode(buttonDiv_pin,INPUT);
  134.  
  135. pinMode(equal_pin,INPUT);
  136. pinMode(onOff_pin,INPUT);
  137.  
  138. pinMode(photoR_pin,INPUT);
  139. }
  140.  
  141. void loop()
  142. {
  143.  
  144.  
  145. button1 = digitalRead(button1_pin);
  146. button2 = digitalRead(button2_pin);
  147. button3 = digitalRead(button3_pin);
  148. button4 = digitalRead(button4_pin);
  149. button5 = digitalRead(button5_pin);
  150. button6 = digitalRead(button6_pin);
  151. button7 = digitalRead(button7_pin);
  152. button8 = digitalRead(button8_pin);
  153. button9 = digitalRead(button9_pin);
  154.  
  155. buttonPlus = digitalRead(buttonPlus_pin);
  156. buttonMinus = digitalRead(buttonMinus_pin);
  157. buttonMult = digitalRead(buttonMult_pin);
  158. buttonDiv = digitalRead(buttonDiv_pin);
  159.  
  160. equal = digitalRead(equal_pin);
  161. onOff = digitalRead(onOff_pin);
  162.  
  163. photoR = analogRead(photoR_pin);
  164.  
  165.  
  166. // I Created this bellow as a debugging tool to test the buttons to make sure all of them are reading correctly
  167.  
  168. //if (button1 == HIGH)
  169. // {Serial.println("1");}
  170. //else if (button2 == HIGH)
  171. //{Serial.println("2");}
  172. //else if (button3 == HIGH)
  173. //{Serial.println("3");}
  174. //else if (button4 == HIGH)
  175. //{Serial.println("4");}
  176. //else if (button5 == HIGH)
  177. //{Serial.println("5");}
  178. //else if (button6 == HIGH)
  179. //{Serial.println("6");}
  180. //else if (button7 == HIGH)
  181. //{Serial.println("7");}
  182. //else if (button8 == HIGH)
  183. //{Serial.println("8");}
  184. //else if (button9 == HIGH)
  185. //{Serial.println("9");}
  186. //else if (buttonPlus == HIGH)
  187. //{Serial.println("+");}
  188. //else if(buttonMinus == HIGH)
  189. //{Serial.println("-");}
  190. // else if(buttonMult == HIGH)
  191. //{Serial.println("*");}
  192. //else if(buttonDiv == HIGH)
  193. //{Serial.println("/");}
  194. //else if (equal == HIGH)
  195. //{Serial.println("=");}
  196. // else if (onOff == HIGH)
  197. // {Serial.println("onOff");}
  198. //else
  199. //{Serial.println(photoR);}
  200.  
  201. // Method I used to keep track of button pushes
  202. if (button1 != lastButtonState1){
  203. if (button1 == HIGH){
  204. buttonPushCounter1++;}}
  205. lastButtonState1 = button1;
  206.  
  207. if (button2 != lastButtonState2){
  208. if (button2 == HIGH){
  209. buttonPushCounter2++;}}
  210. lastButtonState2 = button2;
  211.  
  212. if (button3 != lastButtonState3){
  213. if (button3 == HIGH){
  214. buttonPushCounter3++;}}
  215. lastButtonState2 = button2;
  216.  
  217. if (button3 != lastButtonState3){
  218. if (button3 == HIGH){
  219. buttonPushCounter3++;}}
  220. lastButtonState3 = button3;
  221.  
  222. if (button4 != lastButtonState4){
  223. if (button4 == HIGH){
  224. buttonPushCounter4++;}}
  225. lastButtonState4 = button4;
  226.  
  227. if (button5 != lastButtonState5){
  228. if (button5 == HIGH){
  229. buttonPushCounter5++;}}
  230. lastButtonState5 = button5;
  231.  
  232. if (button6 != lastButtonState6){
  233. if (button6 == HIGH){
  234. buttonPushCounter6++;}}
  235. lastButtonState6 = button6;
  236.  
  237. if (button7 != lastButtonState7){
  238. if (button7 == HIGH){
  239. buttonPushCounter7++;}}
  240. lastButtonState7 = button7;
  241.  
  242. if (button8 != lastButtonState8){
  243. if (button8 == HIGH){
  244. buttonPushCounter8++;}}
  245. lastButtonState8 = button8;
  246.  
  247. if (button9 != lastButtonState9){
  248. if (button9 == HIGH){
  249. buttonPushCounter9++;}}
  250. lastButtonState9 = button9;
  251.  
  252. if (buttonPlus != lastButtonStatePlus){
  253. if (buttonPlus == HIGH){
  254. buttonPushCounterPlus++;}}
  255. lastButtonStatePlus = buttonPlus;
  256.  
  257. if (buttonMinus != lastButtonStateMinus){
  258. if (buttonMinus == HIGH){
  259. buttonPushCounterMinus++;}}
  260. lastButtonStateMinus = buttonMinus;
  261.  
  262. if (buttonMult != lastButtonStateMult){
  263. if (buttonMult == HIGH){
  264. buttonPushCounterMult++;}}
  265. lastButtonStateMult = buttonMult;
  266.  
  267. if (buttonDiv != lastButtonStateDiv){
  268. if (buttonDiv == HIGH){
  269. buttonPushCounterDiv++;}}
  270. lastButtonStateDiv = buttonDiv;
  271.  
  272. if (equal != lastButtonStateEqual){
  273. if (equal == HIGH){
  274. buttonPushCounterEqual++;}}
  275. lastButtonStateEqual = equal;
  276.  
  277. if (onOff != lastButtonStateOnOff){
  278. if (onOff == HIGH){
  279. buttonPushCounterOnOff++;}}
  280. lastButtonStateOnOff = onOff;
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287. // Actual Calculator code starts here:
  288. if (photoR >= 350)
  289. {
  290. if (phase == 0)
  291. {
  292.  
  293. if (buttonPushCounterOnOff != buttonPushCounterOnOffprev )
  294. {
  295. lcd.clear();
  296. delay(300);
  297. lcd.print("Turning On");
  298. lcd.setCursor(0,1);
  299. lcd.print(".");
  300. delay(300);
  301. lcd.setCursor(1,1);
  302. lcd.print(".");
  303. delay(300);
  304. lcd.setCursor(2,1);
  305. lcd.print(".") ;
  306. delay(300);
  307. lcd.setCursor(3,1);
  308. lcd.print(".") ;
  309. delay(300);
  310. lcd.setCursor(4,1);
  311. lcd.print(".") ;
  312. totalNumber = 0;
  313. numberPressed = 0;
  314. value1 = 0;
  315. value2 = 0;
  316. operatorValue = 0;
  317. onState = 1;
  318. buttonPushCounterOnOffprev = buttonPushCounterOnOff;
  319. phase++;
  320. }
  321.  
  322. }
  323.  
  324. if (phase == 1)
  325. {
  326.  
  327. if (buttonPushCounterOnOff != buttonPushCounterOnOffprev )
  328. {
  329. lcd.clear();
  330. delay(300);
  331. lcd.print("Turning Off");
  332. lcd.setCursor(0,1);
  333. lcd.print(".");
  334. delay(300);
  335. lcd.setCursor(1,1);
  336. lcd.print(".");
  337. delay(300);
  338. lcd.setCursor(2,1);
  339. lcd.print(".") ;
  340. delay(300);
  341. lcd.setCursor(3,1);
  342. lcd.print(".") ;
  343. delay(300);
  344. lcd.setCursor(4,1);
  345. lcd.print(".") ;
  346. buttonPushCounterOnOffprev = buttonPushCounterOnOff;
  347. phase = 0;
  348. }
  349. if (buttonPushCounter1 != buttonPushCounter1prev)
  350. {
  351. if (numberPressed < 1)
  352. {
  353. value1 = value1 + 1 + 0.5;
  354. lcd.clear();
  355. lcd.print(value1);
  356. }
  357. else
  358. {
  359. value1 = 0.5 + value1 + 1 * pow(10,(numberPressed));
  360. lcd.clear();
  361. lcd.print(value1);
  362. }
  363. numberPressed++;
  364. buttonPushCounter1prev = buttonPushCounter1;
  365. }
  366.  
  367. if (buttonPushCounter2 != buttonPushCounter2prev)
  368. {
  369. if (numberPressed < 1)
  370. {
  371. value1 = value1 + 2 + 0.5;
  372. lcd.clear();
  373. lcd.print(value1);
  374. }
  375. else
  376. {
  377. value1 = 0.5 + value1 + 2 * pow(10,(numberPressed));
  378. lcd.clear();
  379. lcd.print(value1);
  380. }
  381. numberPressed++;
  382. buttonPushCounter2prev = buttonPushCounter2;
  383. }
  384.  
  385. if (buttonPushCounter3 != buttonPushCounter3prev)
  386. {
  387. if (numberPressed < 1)
  388. {
  389. value1 = value1 + 3 + 0.5;
  390. lcd.clear();
  391. lcd.print(value1);
  392. }
  393. else
  394. {
  395. value1 = 0.5 + value1 + 3 * pow(10,(numberPressed));
  396. lcd.clear();
  397. lcd.print(value1);
  398. }
  399. numberPressed++;
  400. buttonPushCounter3prev = buttonPushCounter3;
  401. }
  402.  
  403. if (buttonPushCounter4 != buttonPushCounter4prev)
  404. {
  405. if (numberPressed < 1)
  406. {
  407. value1 = value1 + 4 + 0.5;
  408. lcd.clear();
  409. lcd.print(value1);
  410. }
  411. else
  412. {
  413. value1 = 0.5 + value1 + 4 * pow(10,(numberPressed));
  414. lcd.clear();
  415. lcd.print(value1);
  416. }
  417. numberPressed++;
  418. buttonPushCounter4prev = buttonPushCounter4;
  419. }
  420.  
  421. if (buttonPushCounter5 != buttonPushCounter5prev)
  422. {
  423. if (numberPressed < 1)
  424. {
  425. value1 = value1 + 5 + 0.5;
  426. lcd.clear();
  427. lcd.print(value1);
  428. }
  429. else
  430. {
  431. value1 = 0.5 + value1 + 5 * pow(10,(numberPressed));
  432. lcd.clear();
  433. lcd.print(value1);
  434. }
  435. numberPressed++;
  436. buttonPushCounter5prev = buttonPushCounter5;
  437. }
  438.  
  439. if (buttonPushCounter6 != buttonPushCounter6prev)
  440. {
  441. if (numberPressed < 1)
  442. {
  443. value1 = value1 + 6 + 0.5;
  444. lcd.clear();
  445. lcd.print(value1);
  446. }
  447. else
  448. {
  449. value1 = 0.5 + value1 + 6 * pow(10,(numberPressed));
  450. Serial.println(value1);
  451. }
  452. numberPressed++;
  453. buttonPushCounter6prev = buttonPushCounter6;
  454. }
  455.  
  456. if (buttonPushCounter7 != buttonPushCounter7prev)
  457. {
  458. if (numberPressed < 1)
  459. {
  460. value1 = value1 + 7 + 0.5;
  461. lcd.clear();
  462. lcd.print(value1);
  463. }
  464. else
  465. {
  466. value1 = 0.5 + value1 + 7 * pow(10,(numberPressed));
  467. lcd.clear();
  468. lcd.print(value1);
  469. }
  470. numberPressed++;
  471. buttonPushCounter7prev = buttonPushCounter7;
  472. }
  473.  
  474. if (buttonPushCounter8 != buttonPushCounter8prev)
  475. {
  476. if (numberPressed < 1)
  477. {
  478. value1 = value1 + 8 + 0.5;
  479. lcd.clear();
  480. lcd.print(value1);
  481. }
  482. else
  483. {
  484. value1 = 0.5 + value1 + 8 * pow(10,(numberPressed));
  485. lcd.clear();
  486. lcd.print(value1);
  487. }
  488. numberPressed++;
  489. buttonPushCounter8prev = buttonPushCounter8;
  490. }
  491.  
  492. if (buttonPushCounter9 != buttonPushCounter9prev)
  493. {
  494. if (numberPressed < 1)
  495. {
  496. value1 = value1 + 9 + 0.5;
  497. lcd.clear();
  498. lcd.print(value1);
  499. }
  500. else
  501. {
  502. value1 = 0.5 + value1 + 9 * pow(10,(numberPressed));
  503. lcd.clear();
  504. lcd.print(value1);
  505. }
  506. numberPressed++;
  507. buttonPushCounter9prev = buttonPushCounter9;
  508. }
  509.  
  510. if (buttonPushCounterPlus != buttonPushCounterPlusprev)
  511. {
  512. operatorValue = 1; //addition
  513. lcd.setCursor(1,6);
  514. lcd.print("+");
  515. numberPressed = 0;
  516. buttonPushCounterPlusprev = buttonPushCounterPlus;
  517. phase = 2;
  518. }
  519. if (buttonPushCounterMinus != buttonPushCounterMinusprev)
  520. {
  521. operatorValue = 2; //subtraction
  522. lcd.setCursor(1,6);
  523. lcd.print("-");
  524. numberPressed = 0;
  525. buttonPushCounterMinusprev = buttonPushCounterMinus;
  526. phase = 2;
  527. }
  528. if (buttonPushCounterMult != buttonPushCounterMultprev)
  529. {
  530. operatorValue = 3; //multi
  531. lcd.setCursor(1,6);
  532. lcd.print("*");
  533. numberPressed = 0;
  534. buttonPushCounterMultprev = buttonPushCounterMult;
  535. phase = 2;
  536. }
  537. if (buttonPushCounterDiv != buttonPushCounterDivprev)
  538. {
  539. operatorValue = 4; // div
  540. lcd.setCursor(1,6);
  541. lcd.print("/");
  542. numberPressed = 0;
  543. buttonPushCounterDivprev = buttonPushCounterDiv;
  544. phase = 2;
  545. }
  546. }
  547. if (phase == 2)
  548. {
  549.  
  550.  
  551. if (buttonPushCounterOnOff != buttonPushCounterOnOffprev)
  552. {
  553. lcd.clear();
  554. delay(300);
  555. lcd.print("Turning Off");
  556. lcd.setCursor(0,1);
  557. lcd.print(".");
  558. delay(300);
  559. lcd.setCursor(1,1);
  560. lcd.print(".");
  561. delay(300);
  562. lcd.setCursor(2,1);
  563. lcd.print(".") ;
  564. delay(300);
  565. lcd.setCursor(3,1);
  566. lcd.print(".") ;
  567. delay(300);
  568. lcd.setCursor(4,1);
  569. lcd.print(".") ;
  570. buttonPushCounterOnOffprev = buttonPushCounterOnOff;
  571. phase = 0;
  572. }
  573. if (buttonPushCounter1 != buttonPushCounter1prev)
  574. {
  575. if (numberPressed < 1)
  576. {
  577. value2 = value2 + 1 + 0.5;
  578. lcd.setCursor(0,1);
  579. lcd.print(value2);
  580. }
  581. else
  582. {
  583. value2 = 0.5 + value2 + 1 * pow(10,(numberPressed));
  584. lcd.setCursor(0,1);
  585. lcd.print(value2);
  586. }
  587. numberPressed++;
  588. buttonPushCounter1prev = buttonPushCounter1;
  589. }
  590.  
  591. if (buttonPushCounter2 != buttonPushCounter2prev)
  592. {
  593. if (numberPressed < 1)
  594. {
  595. value2 = value2 + 2 + 0.5;
  596. lcd.setCursor(0,1);
  597. lcd.print(value2);
  598. }
  599. else
  600. {
  601. value2 = 0.5 + value2 + 2 * pow(10,(numberPressed));
  602. lcd.setCursor(0,1);
  603. lcd.print(value2);
  604. }
  605. numberPressed++;
  606. buttonPushCounter2prev = buttonPushCounter2;
  607. }
  608.  
  609. if (buttonPushCounter3 != buttonPushCounter3prev)
  610. {
  611. if (numberPressed < 1)
  612. {
  613. value2 = value2 + 3 + 0.5;
  614. lcd.setCursor(0,1);
  615. lcd.print(value2);
  616. }
  617. else
  618. {
  619. value1 = 0.5 + value2 + 3 * pow(10,(numberPressed));
  620. lcd.setCursor(0,1);
  621. lcd.print(value2);
  622. }
  623. numberPressed++;
  624. buttonPushCounter3prev = buttonPushCounter3;
  625. }
  626.  
  627. if (buttonPushCounter4 != buttonPushCounter4prev)
  628. {
  629. if (numberPressed < 1)
  630. {
  631. value2 = value2 + 4 + 0.5;
  632. lcd.setCursor(0,1);
  633. lcd.print(value2);
  634. }
  635. else
  636. {
  637. value2 = 0.5 + value2+ 4 * pow(10,(numberPressed));
  638. lcd.setCursor(0,1);
  639. lcd.print(value2);
  640. }
  641. numberPressed++;
  642. buttonPushCounter4prev = buttonPushCounter4;
  643. }
  644.  
  645. if (buttonPushCounter5 != buttonPushCounter5prev)
  646. {
  647. if (numberPressed < 1)
  648. {
  649. value2 = value2 + 5 + 0.5;
  650. lcd.setCursor(0,1);
  651. lcd.print(value2);
  652. }
  653. else
  654. {
  655. value2 = 0.5 + value2 + 5 * pow(10,(numberPressed));
  656. lcd.setCursor(0,1);
  657. lcd.print(value2);
  658. }
  659. numberPressed++;
  660. buttonPushCounter5prev = buttonPushCounter5;
  661. }
  662.  
  663. if (buttonPushCounter6 != buttonPushCounter6prev)
  664. {
  665. if (numberPressed < 1)
  666. {
  667. value2 = value2 + 6 + 0.5;
  668. lcd.setCursor(0,1);
  669. }
  670. else
  671. {
  672. value2 = 0.5 + value2 + 6 * pow(10,(numberPressed));
  673. lcd.setCursor(0,1);
  674. lcd.print(value2);
  675. }
  676. numberPressed++;
  677. buttonPushCounter6prev = buttonPushCounter6;
  678. }
  679.  
  680. if (buttonPushCounter7 != buttonPushCounter7prev)
  681. {
  682. if (numberPressed < 1)
  683. {
  684. value2 = value2 + 7 + 0.5;
  685. lcd.setCursor(0,1);
  686. lcd.print(value2);
  687. }
  688. else
  689. {
  690. value2 = 0.5 + value2 + 7 * pow(10,(numberPressed));
  691. lcd.setCursor(0,1);
  692. lcd.print(value2);
  693. }
  694. numberPressed++;
  695. buttonPushCounter7prev = buttonPushCounter7;
  696. }
  697.  
  698. if (buttonPushCounter8 != buttonPushCounter8prev)
  699. {
  700. if (numberPressed < 1)
  701. {
  702. value2 = value2 + 8 + 0.5;
  703. lcd.setCursor(0,1);
  704. lcd.print(value2);
  705. }
  706. else
  707. {
  708. value2 = 0.5 + value2 + 8 * pow(10,(numberPressed));
  709. lcd.setCursor(0,1);
  710. lcd.print(value2);
  711. }
  712. numberPressed++;
  713. buttonPushCounter8prev = buttonPushCounter8;
  714. }
  715.  
  716. if (buttonPushCounter9 != buttonPushCounter9prev)
  717. {
  718. if (numberPressed < 1)
  719. {
  720. value2 = value2 + 9 + 0.5;
  721. lcd.setCursor(0,1);
  722. lcd.print(value2);
  723. }
  724. else
  725. {
  726. value2 = 0.5 + value2 + 9 * pow(10,(numberPressed));
  727. lcd.setCursor(0,1);
  728. lcd.print(value2);
  729. }
  730. numberPressed++;
  731. buttonPushCounter9prev = buttonPushCounter9;
  732. }
  733. if (buttonPushCounterEqual != buttonPushCounterEqualprev)
  734. {
  735. if (operatorValue == 1) //add
  736. {
  737. totalNumber = value1 + value2;
  738. lcd.clear();
  739. lcd.print("=");
  740. lcd.setCursor(0,1);
  741. lcd.print(totalNumber);
  742. Serial.println(totalNumber);
  743. }
  744. if (operatorValue == 2) //sub
  745. {
  746. totalNumber = value1 - value2;
  747. lcd.clear();
  748. lcd.print("=");
  749. lcd.setCursor(0,1);
  750. lcd.print(totalNumber);
  751. }
  752. if (operatorValue == 3)// mult
  753. {
  754. totalNumber = value1 * value2;
  755. lcd.clear();
  756. lcd.print("=");
  757. lcd.setCursor(0,1);
  758. lcd.print(totalNumber);
  759. }
  760. if (operatorValue == 4) //div
  761. {
  762. totalNumber = value1 / value2;
  763. lcd.clear();
  764. lcd.print("=");
  765. lcd.setCursor(0,1);
  766. lcd.print(totalNumber);
  767. }
  768. buttonPushCounterEqualprev = buttonPushCounterEqual;
  769. phase = 3;
  770. }
  771. }
  772. if (phase == 3)
  773. {
  774. if (buttonPushCounterOnOff != buttonPushCounterOnOffprev)
  775. {
  776. lcd.clear();
  777. delay(300);
  778. lcd.print("Turning Off");
  779. lcd.setCursor(0,1);
  780. lcd.print(".");
  781. delay(300);
  782. lcd.setCursor(1,1);
  783. lcd.print(".");
  784. delay(300);
  785. lcd.setCursor(2,1);
  786. lcd.print(".") ;
  787. delay(300);
  788. lcd.setCursor(3,1);
  789. lcd.print(".") ;
  790. delay(300);
  791. lcd.setCursor(4,1);
  792. lcd.print(".") ;
  793. buttonPushCounterOnOffprev = buttonPushCounterOnOff;
  794. phase = 0;
  795. }
  796. if (buttonPushCounterPlus != buttonPushCounterPlusprev)
  797. {
  798. operatorValue = 1; //addition
  799. lcd.clear();
  800. lcd.print("+");
  801. value1 = totalNumber;
  802. value2 = 0;
  803. numberPressed = 0;
  804. buttonPushCounterPlusprev = buttonPushCounterPlus;
  805. phase = 2;
  806. }
  807. if (buttonPushCounterMinus != buttonPushCounterMinusprev)
  808. {
  809. operatorValue = 2; //subtraction
  810. lcd.clear();
  811. lcd.print("-");
  812. value1 = totalNumber;
  813. value2 = 0;
  814. numberPressed = 0;
  815. buttonPushCounterMinusprev = buttonPushCounterMinus;
  816. phase = 2;
  817. }
  818.  
  819. if (buttonPushCounterMult != buttonPushCounterMultprev)
  820. {
  821. operatorValue = 3; //multi
  822. lcd.clear();
  823. lcd.print("*");
  824. value1 = totalNumber;
  825. value2 = 0;
  826. numberPressed = 0;
  827. buttonPushCounterMultprev = buttonPushCounterMult;
  828. phase = 2;
  829. }
  830. if (buttonPushCounterDiv != buttonPushCounterDivprev)
  831. {
  832. operatorValue = 4; // div
  833. lcd.clear();
  834. lcd.print("/");
  835. value1 = totalNumber;
  836. value2 = 0;
  837. numberPressed = 0;
  838. buttonPushCounterDivprev = buttonPushCounterDiv;
  839. phase = 2;
  840. }
  841. }
  842. }
  843. // Turns screen off, but saves the data if the room is too dark or some one put a cover on top of the calculator
  844. else
  845. {
  846. lcd.clear();
  847. }
  848.  
  849.  
  850.  
  851.  
  852. }
Advertisement
Add Comment
Please, Sign In to add comment