iamtheyammer icon

playing with delays to turn off trane air conditioner

iamtheyammer | PRO | 07/02/18 05:47:44 PM UTC | 0 ⭐ | 338 👁️ | Never ⏰ | []
text |

3.6 KB

|

None

|

0 👍

/

0 👎

/*
 * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
 * An IR LED must be connected to Arduino PWM pin 3.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 */
  #include <IRremote.h>
 IRsend irsend;
 int delayTime = 200;
int maxMs = 525;
 bool delayBetween = true;
int delayChallenge = 0;
 void setup()
{
  pinMode(4, OUTPUT); //set 4 and 5 to high/low so the IR led can run right off the board
  pinMode(5, OUTPUT);
  digitalWrite(4, HIGH); 
  digitalWrite(5, LOW);
   pinMode(12, OUTPUT); // Set 12 and 13 to high/low so the IR led can run right off the board
  pinMode(13, OUTPUT);
  digitalWrite(12, 1); 
  digitalWrite(13, 0);
 //  pinMode(8, INPUT);
//  pinMode(9, INPUT);
   Serial.begin(115200);
  Serial.println("If you see this, you're ready to go!");
  Serial.println("I\'ll wait 5 seconds.");
  for (int i = 0; i < 10; i++) {
    Serial.print("Waiting ");
    Serial.print(i/2);
    Serial.println("seconds before starting...");
    delay(500);
  }
}
 void loop() {
   for (int i = 0; i < maxMs; i++) {
    int tmpDelay = 0;
    switch (delayChallenge) {
      case 0: // delay same ms as between sets, between commands
        tmpDelay = i;
        break;
      case 1: // delay random ms between commands
        tmpDelay = random(0, maxMs);
        break;
    }
     switch (delayChallenge) {
      case 0: // delay same ms as between sets, between commands
        Serial.print("[Delaying same ms as between sets, between commands] ");
        break;
      case 1: // delay random ms between commands
        Serial.print("[Delaying random ms (between 0 and ");
        Serial.print(maxMs);
        Serial.print("ms between commands] ");
        break;
      case 3: // no delay between commands
        Serial.print("[Not delaying between commands] ");
        break;
    }
     Serial.print("[Max delay: ");
    Serial.print(maxMs);
    Serial.print("ms] ");
    Serial.print("[Sets left: ");
    Serial.print(maxMs-i);
    Serial.print("] ");
    Serial.print("[Delay: ");
    Serial.print(tmpDelay);
    Serial.println("ms] [Command 1] EMITTING NEC 8CE0043A.");
    irsend.sendNEC(0x8CE0043A, 32); //TURN AIR OFF
     delay(tmpDelay);
     switch (delayChallenge) {
      case 0: // delay same ms as between sets, between commands
        Serial.print("[Delaying same ms as between sets, between commands] ");
        break;
      case 1: // delay random ms between commands
        Serial.print("[Delaying random ms (between 0 and ");
        Serial.print(maxMs);
        Serial.print("ms between commands] ");
        break;
      case 3: // no delay between commands
        Serial.print("[Not delaying between commands] ");
        break;
    }
     Serial.print("[Max delay: ");
    Serial.print(maxMs);
    Serial.print("ms] ");
    Serial.print("[Sets left: ");
    Serial.print(maxMs-i);
    Serial.print("] ");
    Serial.print("[Delay: ");
    Serial.print(i);
    Serial.println("ms] [Command 2] EMITTING NEC 8CE0043E.");
    irsend.sendNEC(0x8CE0043E, 32); //TURN AIR OFF
    delay(i);
  }
   switch (delayChallenge) {
    case 0: // delay same ms as between sets, between commands
      delayChallenge = 1;
      break;
    case 1: // delay random ms between commands
      delayChallenge = 2;
      break;
    case 3: // no delay between commands
      delayChallenge = 0;
      break;
  }
  Serial.println("Done with that set. Waiting 10 seconds and doing it again.");
  delay(10000); //10 second delay between each signal burst
  Serial.println("Here we go!");
}

Comments