iamtheyammer

playing with delays to turn off trane air conditioner

Jul 2nd, 2018
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. /*
  2. * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
  3. * An IR LED must be connected to Arduino PWM pin 3.
  4. * Version 0.1 July, 2009
  5. * Copyright 2009 Ken Shirriff
  6. * http://arcfn.com
  7. */
  8.  
  9.  
  10. #include <IRremote.h>
  11.  
  12. IRsend irsend;
  13.  
  14. int delayTime = 200;
  15. int maxMs = 525;
  16.  
  17. bool delayBetween = true;
  18. int delayChallenge = 0;
  19.  
  20. void setup()
  21. {
  22. pinMode(4, OUTPUT); //set 4 and 5 to high/low so the IR led can run right off the board
  23. pinMode(5, OUTPUT);
  24. digitalWrite(4, HIGH);
  25. digitalWrite(5, LOW);
  26.  
  27. pinMode(12, OUTPUT); // Set 12 and 13 to high/low so the IR led can run right off the board
  28. pinMode(13, OUTPUT);
  29. digitalWrite(12, 1);
  30. digitalWrite(13, 0);
  31.  
  32. // pinMode(8, INPUT);
  33. // pinMode(9, INPUT);
  34.  
  35. Serial.begin(115200);
  36. Serial.println("If you see this, you're ready to go!");
  37. Serial.println("I\'ll wait 5 seconds.");
  38. for (int i = 0; i < 10; i++) {
  39. Serial.print("Waiting ");
  40. Serial.print(i/2);
  41. Serial.println("seconds before starting...");
  42. delay(500);
  43. }
  44. }
  45.  
  46. void loop() {
  47.  
  48. for (int i = 0; i < maxMs; i++) {
  49. int tmpDelay = 0;
  50. switch (delayChallenge) {
  51. case 0: // delay same ms as between sets, between commands
  52. tmpDelay = i;
  53. break;
  54. case 1: // delay random ms between commands
  55. tmpDelay = random(0, maxMs);
  56. break;
  57. }
  58.  
  59. switch (delayChallenge) {
  60. case 0: // delay same ms as between sets, between commands
  61. Serial.print("[Delaying same ms as between sets, between commands] ");
  62. break;
  63. case 1: // delay random ms between commands
  64. Serial.print("[Delaying random ms (between 0 and ");
  65. Serial.print(maxMs);
  66. Serial.print("ms between commands] ");
  67. break;
  68. case 3: // no delay between commands
  69. Serial.print("[Not delaying between commands] ");
  70. break;
  71. }
  72.  
  73. Serial.print("[Max delay: ");
  74. Serial.print(maxMs);
  75. Serial.print("ms] ");
  76. Serial.print("[Sets left: ");
  77. Serial.print(maxMs-i);
  78. Serial.print("] ");
  79. Serial.print("[Delay: ");
  80. Serial.print(tmpDelay);
  81. Serial.println("ms] [Command 1] EMITTING NEC 8CE0043A.");
  82. irsend.sendNEC(0x8CE0043A, 32); //TURN AIR OFF
  83.  
  84. delay(tmpDelay);
  85.  
  86. switch (delayChallenge) {
  87. case 0: // delay same ms as between sets, between commands
  88. Serial.print("[Delaying same ms as between sets, between commands] ");
  89. break;
  90. case 1: // delay random ms between commands
  91. Serial.print("[Delaying random ms (between 0 and ");
  92. Serial.print(maxMs);
  93. Serial.print("ms between commands] ");
  94. break;
  95. case 3: // no delay between commands
  96. Serial.print("[Not delaying between commands] ");
  97. break;
  98. }
  99.  
  100. Serial.print("[Max delay: ");
  101. Serial.print(maxMs);
  102. Serial.print("ms] ");
  103. Serial.print("[Sets left: ");
  104. Serial.print(maxMs-i);
  105. Serial.print("] ");
  106. Serial.print("[Delay: ");
  107. Serial.print(i);
  108. Serial.println("ms] [Command 2] EMITTING NEC 8CE0043E.");
  109. irsend.sendNEC(0x8CE0043E, 32); //TURN AIR OFF
  110. delay(i);
  111. }
  112.  
  113. switch (delayChallenge) {
  114. case 0: // delay same ms as between sets, between commands
  115. delayChallenge = 1;
  116. break;
  117. case 1: // delay random ms between commands
  118. delayChallenge = 2;
  119. break;
  120. case 3: // no delay between commands
  121. delayChallenge = 0;
  122. break;
  123. }
  124. Serial.println("Done with that set. Waiting 10 seconds and doing it again.");
  125. delay(10000); //10 second delay between each signal burst
  126. Serial.println("Here we go!");
  127. }
Advertisement
Add Comment
Please, Sign In to add comment