/* * 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 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!"); }