Advertisement
manvi_m

dice prototype

Jun 25th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. /*
  2. * Manvi Mittal
  3. * Dice Prototype with 6 LEDs and random
  4. */
  5.  
  6. const int pinLed1 = 2;
  7. const int pinLed2 = 3;
  8. const int pinLed3 = 4;
  9. const int pinLed4 = 8;
  10. const int pinLed5 = 9;
  11. const int pinLed6 = 10;
  12. const int pinButt = 5;
  13. boolean buttPressed = 0;
  14. boolean ledOn = 0;
  15. boolean prevButt = 0;
  16. int randito = 0;
  17.  
  18. void setup()
  19. {
  20. // put your setup code here, to run once:
  21. pinMode (pinLed1, OUTPUT);
  22. pinMode (pinLed2, OUTPUT);
  23. pinMode (pinLed3, OUTPUT);
  24. pinMode (pinLed4, OUTPUT);
  25. pinMode (pinLed5, OUTPUT);
  26. pinMode (pinLed6, OUTPUT);
  27. pinMode (pinButt, INPUT);
  28.  
  29. Serial.begin (9600);
  30.  
  31. digitalWrite (pinLed1, HIGH);
  32. digitalWrite (pinLed2, HIGH);
  33. digitalWrite (pinLed3, HIGH);
  34. digitalWrite (pinLed4, HIGH);
  35. digitalWrite (pinLed5, HIGH);
  36. digitalWrite (pinLed6, HIGH);
  37. delay (500);
  38. digitalWrite (pinLed1, LOW);
  39. digitalWrite (pinLed2, LOW);
  40. digitalWrite (pinLed3, LOW);
  41. digitalWrite (pinLed4, LOW);
  42. digitalWrite (pinLed5, LOW);
  43. digitalWrite (pinLed6, LOW);
  44. randomSeed (analogRead (A0));
  45.  
  46. }
  47.  
  48. void loop()
  49. {
  50. // put your main code here, to run repeatedly:
  51. buttPressed = digitalRead (pinButt);
  52. //Serial.print (buttPressed);
  53.  
  54. buttPressed = debounce (prevButt);
  55. if (prevButt == LOW && buttPressed == HIGH)
  56. {
  57. randito = random(6) + 1;
  58. /*
  59. * random (6) + 1 is the same as random (1, 7) which is [1, 7) because random 6 is [0, 6)
  60. */
  61. Serial.print (randito);
  62. }
  63.  
  64. switch (randito)
  65. {
  66. case 1:
  67. digitalWrite (pinLed1, HIGH);
  68. digitalWrite (pinLed2, LOW);
  69. digitalWrite (pinLed3, LOW);
  70. digitalWrite (pinLed4, LOW);
  71. digitalWrite (pinLed5, LOW);
  72. digitalWrite (pinLed6, LOW);
  73. break;
  74.  
  75. case 2:
  76. digitalWrite (pinLed1, HIGH);
  77. digitalWrite (pinLed2, LOW);
  78. digitalWrite (pinLed3, LOW);
  79. digitalWrite (pinLed4, LOW);
  80. digitalWrite (pinLed5, LOW);
  81. digitalWrite (pinLed6, HIGH);
  82. break;
  83.  
  84. case 3:
  85. digitalWrite (pinLed1, HIGH);
  86. digitalWrite (pinLed2, LOW);
  87. digitalWrite (pinLed3, LOW);
  88. digitalWrite (pinLed4, LOW);
  89. digitalWrite (pinLed5, HIGH);
  90. digitalWrite (pinLed6, HIGH);
  91. break;
  92.  
  93. case 4:
  94. digitalWrite (pinLed1, HIGH);
  95. digitalWrite (pinLed2, LOW);
  96. digitalWrite (pinLed3, HIGH);
  97. digitalWrite (pinLed4, HIGH);
  98. digitalWrite (pinLed5, LOW);
  99. digitalWrite (pinLed6, HIGH);
  100. break;
  101.  
  102. case 5:
  103. digitalWrite (pinLed1, HIGH);
  104. digitalWrite (pinLed2, LOW);
  105. digitalWrite (pinLed3, HIGH);
  106. digitalWrite (pinLed4, HIGH);
  107. digitalWrite (pinLed5, HIGH);
  108. digitalWrite (pinLed6, HIGH);
  109. break;
  110.  
  111. case 6:
  112. digitalWrite (pinLed1, HIGH);
  113. digitalWrite (pinLed2, HIGH);
  114. digitalWrite (pinLed3, HIGH);
  115. digitalWrite (pinLed4, HIGH);
  116. digitalWrite (pinLed5, HIGH);
  117. digitalWrite (pinLed6, HIGH);
  118. break;
  119. }
  120.  
  121. prevButt = buttPressed;
  122. }
  123.  
  124.  
  125.  
  126. boolean debounce(boolean last)
  127. {
  128. boolean current = digitalRead(pinButt);
  129. if (last != current)
  130. {
  131. delay(5);
  132. current = digitalRead(pinButt);
  133. }
  134. return current;
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement