Advertisement
rosea4

Untitled

Mar 18th, 2015
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. const int BLED=9 ;
  2. const int GLED=10 ;
  3. const int RLED=11 ;
  4. const int BUTTON=2 ;
  5. boolean lastButton = LOW;
  6. boolean currentButton = LOW;
  7. int ledMode = 0 ;
  8. void setup()
  9. {
  10. pinMode (BLED, OUTPUT) ;
  11. pinMode (GLED, OUTPUT) ;
  12. pinMode (RLED, OUTPUT) ;
  13. pinMode (BUTTON, INPUT) ;
  14. }
  15. /*
  16. * Debouncing Function
  17. * Pass it the previous button state.
  18. */
  19. boolean debounce (boolean last)
  20. {
  21. boolean current = digitalRead (BUTTON) ;
  22. if (last != current)
  23. {
  24. delay (5) ;
  25. current = digitalRead (BUTTON) ;
  26. }
  27. return current;
  28. }
  29. /*
  30. * LED Mode Selection
  31. * Pass a number for the LED state and set it accordingly.
  32. */
  33. void setMode (int mode)
  34. {
  35. //RED
  36. if (mode == 1)
  37. {
  38. digitalWrite (RLED, HIGH) ;
  39. digitalWrite (GLED, LOW) ;
  40. digitalWrite (BLED, LOW) ;
  41. }
  42. //GREEN
  43. else if (mode == 2)
  44. {
  45. digitalWrite (RLED, LOW) ;
  46. digitalWrite (GLED, HIGH) ;
  47. digitalWrite (BLED, LOW) ;
  48. }
  49. //BLUE
  50. else if (mode == 3)
  51. {
  52. digitalWrite (RLED, LOW) ;
  53. digitalWrite (GLED, LOW) ;
  54. digitalWrite (BLED, HIGH) ;
  55. }
  56. //PURPLE (RED+BLUE
  57. else if (mode == 4)
  58. {
  59. analogWrite (RLED, 127) ;
  60. analogWrite (GLED, 0) ;
  61. analogWrite (BLED, 127) ;
  62. }
  63. //TEAL (BLUE+GREEN)
  64. else if (mode == 5)
  65. {
  66. analogWrite (RLED, 0) ;
  67. analogWrite (GLED, 127) ;
  68. analogWrite (BLED, 127) ;
  69. }
  70. //ORANGE (GREEN+RED)
  71. else if (mode == 6)
  72. {
  73. analogWrite (RLED, 127) ;
  74. analogWrite (GLED, 127) ;
  75. analogWrite (BLED, 0) ;
  76. }
  77. //WHITE (GREEN+RED+BLUE)
  78. else if (mode == 7)
  79. {
  80. analogWrite (RLED, 85) ;
  81. analogWrite (GLED, 85) ;
  82. analogWrite (BLED, 85) ;
  83. }
  84. //OFF (mode = 0)
  85. else
  86. {
  87. digitalWrite (RLED, LOW) ;
  88. digitalWrite (GLED, LOW) ;
  89. digitalWrite (BLED, LOW) ;
  90. }
  91. }
  92. void loop ()
  93. {
  94. currentButton = debounce(lastButton) ;
  95. if (lastButton == LOW && currentButton == HIGH)
  96. {
  97. ledMode++;
  98. }
  99. lastButton = currentButton;
  100. //if you've cycled through the different options,
  101. //reset the counter to 0
  102. if (ledMode == 8)
  103. {
  104. ledMode = 0 ;
  105. }
  106. setMode (ledMode) ;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement