/*
* 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