Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. uint32_t steps_absolute[32] = {3,5,17,21,47,49,57,58,64,76,79,92,93,101,106,112,115,121,123,130,134,135,136,141,163,170,173,186,191,200,210,212};
  2. uint32_t led1vals = 2863311530;
  3. uint32_t led2vals = 1431655765;
  4. uint32_t seconds_so_far = 0;
  5. uint32_t current_step = 0;
  6. uint32_t led1Disable = 0;
  7. uint32_t led2Disable = 0;
  8.  
  9. const int led1 = 8;
  10. const int led2 = 9;
  11.  
  12. void delaySeconds(unsigned long duration){
  13. //delay for duration * 1 second (as close as possible without the overkill of my other example)
  14. if(duration >= 1){
  15. delay(duration*1000);
  16. }
  17. seconds_so_far += duration;
  18.  
  19. }
  20.  
  21. bool led1Activates(){
  22. //check to see if led1 gets turned on in this step
  23. if(bitRead(led1vals, current_step)){
  24. //turn on,
  25. Serial.println("1 turned on ");
  26. digitalWrite(led1, HIGH);
  27. return true;
  28. }
  29. return false;
  30. }
  31.  
  32. bool led2Activates(){
  33. //check to see if led2 gets turned on in this step
  34. if(bitRead(led2vals, current_step)){
  35. //turn on.
  36. Serial.println("2 turned on");
  37. digitalWrite(led2, HIGH);
  38. return true;
  39. }
  40. return false;
  41. }
  42.  
  43. void setup() {
  44. // put your setup code here, to run once:
  45. Serial.begin(9600);
  46. pinMode(led1, OUTPUT);
  47. pinMode(led2, OUTPUT);
  48. digitalWrite(led1, LOW);
  49. digitalWrite(led2, LOW);
  50. }
  51.  
  52. void loop() {
  53. // put your main code here, to run repeatedly:
  54. if(steps_absolute[current_step] == seconds_so_far){
  55. if(led1Activates()){
  56. led1Disable = seconds_so_far + 10; //scheduling turn off point in future
  57. }
  58. if(led2Activates()){
  59. led2Disable = seconds_so_far + 10; //scheduling turn off point in future
  60. }
  61. current_step += 1;
  62. if(current_step >= 32){
  63. current_step = 0;
  64. seconds_so_far = 0;
  65. }
  66. }
  67. if((led1Disable == seconds_so_far) || (seconds_so_far == 0)){
  68. //disable
  69. Serial.println("1 turned off ");
  70. digitalWrite(led1, LOW);
  71. led1Disable = 0;
  72. }
  73. if((led2Disable == seconds_so_far) || (seconds_so_far == 0)){
  74. //disable
  75. Serial.println("2 turned off");
  76. digitalWrite(led2, LOW);
  77. led2Disable = 0;
  78. }
  79. Serial.print("In step #: ");
  80. Serial.print(current_step);
  81. Serial.print(" Time Elapsed(this run): ");
  82. Serial.println(seconds_so_far);
  83. delaySeconds(1);
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement