// Arduino to remote contol MaxxFan Delux // based on Script from Karl Böttcher Aug 26, 2023 provided on PeKaWay forum here: // https://pekaway.de/blogs/tutorials/maxxfan-uber-infrarot-steuern?_pos=1&_psq=Maxx&_ss=e&_v=1.0 // Standard: Serial input and output for communication to VanPI (V2.0) // // Extension: 2 Button input & 2 LED status (by Lutz Bartsch) // - Button 1: Command MaxFan to push fresh air in (direction out to in+open+run) / toggle on off // - Button 2: Command MaxFan to pull exaust air out (direction in to out+open-run) / toggle on off // - Button 1+2: Command MaxFan to automatic operation / toggle on off const int IRledPin = LED_BUILTIN; // LED connected to digital pin with built in LED (mostly pin 13) const int FreshAirButtonPin = 6; // the pin that the pushbutton for fresh air is attached to const int ExhaustAirButtonPin = 7; // the pin that the pushbutton for exhaust air is attached to const int FreshAirLEDPin = 8; // the the pin that the control LED for fresh air is attached to const int ExhaustAirLEDPin = 9; // the the pin that the control LED for fresh air is attached to const bool PRESSED = LOW; // change this if your button is upside down (or is that right side up?) const int interval = 250; // max bouncetime of buttons const int waittime = 50; // loop waittime bool FreshAirButtonState; // current state of the button, true is pressed bool FreshAirlastButtonState = false; // last state of the button bool FreshAirLEDState = false; // operational state of FreshAir LED int FreshAirButtonPushCounter = 0; // counter of button presses (only for debug) bool ExhaustAirButtonState; // current state of the button, true is pressed bool ExhaustAirlastButtonState = false; // last state of the button bool ExhaustAirLEDState = false; // operational state of ExhaustAir LED int ExhaustAirButtonPushCounter = 0; // counter of button presses (only for debug) bool MaxxAuto = false; // MaxxFan in Auto mode bool MaxxRun = false; // MaxxFan is running bool MaxxFresh = false; // MaxxFan is direction out to in (true) or in to out (false) bool MaxxOpen =false; // MaxxFan is open unsigned long lastMillis = 0; // for bounce time calc unsigned long currentMillis; // for bounce time calc void setup() { pinMode(IRledPin, OUTPUT); // the pin with IR LED to command MaxxFan pinMode(FreshAirButtonPin, INPUT_PULLUP); // the pin that the pushbutton for fresh air is attached to pinMode(ExhaustAirButtonPin, INPUT_PULLUP); // the pin that the pushbutton for exhaust air is attached to pinMode(FreshAirLEDPin, OUTPUT); // the the pin that the control LED for fresh air is attached to digitalWrite(FreshAirLEDPin, LOW); // switch LED off pinMode(ExhaustAirLEDPin, OUTPUT); // the the pin that the control LED for exhaust air is attached to digitalWrite(ExhaustAirLEDPin, LOW); // switch LED off Serial.begin(115200); //Init Serial port Serial.println("Open"); } void loop() { if(Serial.available()) { //Check if there is a command from Serial (VanPI) and process switch(Serial.read()) { case 'a': Serial.println("a"); IRsignal_Off(); MaxxRun=false; break; case 'b': Serial.println("b"); IRsignal_On(); MaxxRun=true; break; case 'c': Serial.println("c"); IRsignal_Closed(); MaxxOpen=false; break; case 'd': Serial.println("d"); IRsignal_Open(); MaxxOpen=true; break; case 'e': Serial.println("e"); IRsignal_InOut(); MaxxFresh=false; break; case 'f': Serial.println("f"); IRsignal_OutIn(); MaxxFresh=true; break; case 'g': Serial.println("g"); IRsignal_Auto(); MaxxAuto=true; break; case 'h': Serial.println("h"); IRsignalAutoOff(); MaxxAuto=false; break; case '0': Serial.println("0"); IRsignal_10pct(); break; case '1': Serial.println("1"); IRsignal_20pct(); break; case '2': Serial.println("2"); IRsignal_30pct(); break; case '3': Serial.println("3"); IRsignal_40pct(); break; case '4': Serial.println("4"); IRsignal_50pct(); break; case '5': Serial.println("5"); IRsignal_60pct(); break; case '6': Serial.println("6"); IRsignal_70pct(); break; case '7': Serial.println("7"); IRsignal_80pct(); break; case '8': Serial.println("8"); IRsignal_90pct(); break; case '9': Serial.println("9"); IRsignal_100pct(); break; case 'i': Serial.println("i"); IRsignal_50deg(); break; case 'j': Serial.println("j"); IRsignal_60deg(); break; case 'k': Serial.println("k"); IRsignal_70deg(); break; case 'l': Serial.println("l"); IRsignal_80deg(); break; case 'm': Serial.println("m"); IRsignal_90deg(); break; case 'n': Serial.println("n"); IRsignal_finaloff(); break; } } // Check for pressed buttons currentMillis = millis(); if (currentMillis - lastMillis >= interval) { // only check every interval //... make the switch read true or false //Serial.println("reading buttons"); //(debug only) FreshAirButtonState = digitalRead(FreshAirButtonPin) == PRESSED; ExhaustAirButtonState = digitalRead(ExhaustAirButtonPin) == PRESSED; //Serial.print("Fresh Air button state: "); //(debug only) //Serial.println(FreshAirButtonState); //(debug only) //Serial.print("Exhaust Air button state: "); //(debug only) //Serial.println(ExhaustAirButtonState); //(debug only) if (FreshAirButtonState == FreshAirlastButtonState && ExhaustAirButtonState == ExhaustAirlastButtonState ) { //... no change in either button state -> do nothing ; } else if (FreshAirButtonState && ExhaustAirButtonState ) { // both buttons newly pressed -> toggle auto mode FreshAirButtonPushCounter ++; //debug only // Serial.print("FreshAir button pressed : "); // Serial.println(FreshAirButtonPushCounter); ExhaustAirButtonPushCounter ++; // Serial.print("ExhaustAir button pressed : "); // Serial.println(ExhaustAirButtonPushCounter); if (FreshAirLEDState && ExhaustAirLEDState) { // Auto mode is on -> switch it off // Serial.println("Switching Auto mode off."); //debug only Serial.println("h"); IRsignalAutoOff(); MaxxAuto=false; } else { // Auto mode is off -> switch it on // Serial.println("Switching Auto mode on."); //debug only Serial.println("g"); IRsignal_Auto(); MaxxAuto=true; } } else if (FreshAirButtonState) { // only FreshAirButton is newly pressed -> Auto off, toggel fresh air FreshAirButtonPushCounter ++; //debug only // Serial.print("FreshAir button pressed : "); // Serial.println(FreshAirButtonPushCounter); if (MaxxAuto) { // auto mode is on -> turn it off Serial.println("h"); IRsignalAutoOff(); MaxxAuto=false; } if (FreshAirLEDState) { // Fresh air LED on -> either auto mode or fresh Air running -> turn it off Serial.println("a"); IRsignal_Off(); MaxxRun=false; Serial.println("c"); IRsignal_Closed(); MaxxOpen=false; } else { // Fresh air LED off -> turn it on Serial.println("b"); IRsignal_On(); MaxxRun=true; Serial.println("d"); IRsignal_Open(); MaxxOpen=true; Serial.println("f"); IRsignal_OutIn(); MaxxFresh=true; } } else if (ExhaustAirButtonState) { //only Exhaust button is newly pressed ExhaustAirButtonPushCounter ++; //debug only // Serial.print("ExhaustAir button pressed : "); // Serial.println(ExhaustAirButtonPushCounter); if (MaxxAuto) { // auto mode is on -> turn it off Serial.println("h"); IRsignalAutoOff(); MaxxAuto=false; } if (ExhaustAirLEDState) { // Exhaust LED is on -> turn it off Serial.println("a"); IRsignal_Off(); MaxxRun=false; Serial.println("c"); IRsignal_Closed(); MaxxOpen=false; } else { // Exhaust air LED off -> turn it on Serial.println("b"); IRsignal_On(); MaxxRun=true; Serial.println("d"); IRsignal_Open(); MaxxOpen=true; Serial.println("e"); IRsignal_InOut(); MaxxFresh=false; } } FreshAirlastButtonState = FreshAirButtonState; ExhaustAirlastButtonState = ExhaustAirButtonState; lastMillis = currentMillis; //... use the current time! } // Set LED State if(MaxxAuto) { // auto mode set is on - both LEDs to on digitalWrite(FreshAirLEDPin, HIGH); FreshAirLEDState=true; digitalWrite(ExhaustAirLEDPin, HIGH); ExhaustAirLEDState=true; } else if(MaxxRun==true & MaxxOpen==true & MaxxFresh==true) { // running in Fresh mode digitalWrite(FreshAirLEDPin, HIGH); FreshAirLEDState=true; digitalWrite(ExhaustAirLEDPin, LOW); ExhaustAirLEDState=false; } else if (MaxxRun==true & MaxxOpen==true & MaxxFresh==false) { // running in Exhaust mode digitalWrite(FreshAirLEDPin, LOW); FreshAirLEDState=false; digitalWrite(ExhaustAirLEDPin, HIGH); ExhaustAirLEDState=true; } else { // off or undefined mode -> LEDs off digitalWrite(FreshAirLEDPin, LOW); FreshAirLEDState=false; digitalWrite(ExhaustAirLEDPin, LOW); ExhaustAirLEDState=false; } //... I look for these at the end of button processing delay(waittime); } //End Loop void pulseIR(long microsecs) { // we'll count down from the number of microseconds we are told to wait cli(); // this turns off any background interrupts while (microsecs > 0) { // 38 kHz is about 13 microseconds high and 13 microseconds low digitalWrite(IRledPin, HIGH); // this takes about 3 microseconds to happen delayMicroseconds(10); // hang out for 10 microseconds digitalWrite(IRledPin, LOW); // this also takes about 3 microseconds delayMicroseconds(10); // hang out for 10 microseconds // so 26 microseconds altogether microsecs -= 26; } sei(); // this turns them back on } /* OFF: OFF ON 58220 usec, 1720 usec 840 usec, 860 usec 1680 usec, 840 usec 820 usec, 880 usec 1680 usec, 840 usec 860 usec, 820 usec 860 usec, 1680 usec 860 usec, 840 usec 2520 usec, 6780 usec 2520 usec, 860 usec 5900 usec, 880 usec 1660 usec, 5920 usec 840 usec, 880 usec 1640 usec, 880 usec 5040 usec, 880 usec 2500 usec, 5100 usec 800 usec, 1740 usec 1640 usec, 860 usec 4220 usec, 880 usec 3340 usec, 4260 usec 800 usec, 2580 usec 1660 usec, 2560 usec 1640 usec, 1740 usec 3320 usec, 2600 usec 780 usec, 4280 usec 1640 usec, 3440 usec 780 usec, 900 usec 780 usec, 1760 usec 1620 usec, 1760 usec 800 usec, 1720 usec 1640 usec, 1740 usec 1660 usec, 880 usec 8420 usec, 840 usec 1680 usec, 2580 usec 800 usec, 1700 usec 1680 usec, 1700 usec 840 usec, 3400 usec */ void IRsignal_Off(){ // ON, OFF pulseIR(1720); delayMicroseconds(840); pulseIR(860); delayMicroseconds(1680); pulseIR(840); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1680); pulseIR(840); delayMicroseconds(860); pulseIR(820); delayMicroseconds(860); pulseIR(1680); delayMicroseconds(860); pulseIR(840); delayMicroseconds(2520); pulseIR(6780); delayMicroseconds(2520); pulseIR(860); delayMicroseconds(5900); pulseIR(880); delayMicroseconds(1660); pulseIR(5920); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(5040); pulseIR(880); delayMicroseconds(2500); pulseIR(5100); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(860); delayMicroseconds(4220); pulseIR(880); delayMicroseconds(3340); pulseIR(4260); delayMicroseconds(800); pulseIR(2580); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(1640); pulseIR(1740); delayMicroseconds(3320); pulseIR(2600); delayMicroseconds(780); pulseIR(4280); delayMicroseconds(1640); pulseIR(3440); delayMicroseconds(780); pulseIR(900); delayMicroseconds(780); pulseIR(1760); delayMicroseconds(1620); pulseIR(1760); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1640); pulseIR(1740); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(8420); pulseIR(840); delayMicroseconds(1680); pulseIR(2580); delayMicroseconds(800); pulseIR(1700); delayMicroseconds(1680); pulseIR(1700); delayMicroseconds(840); pulseIR(3400); } /* ON OFF ON 31292 usec, 1700 usec 840 usec, 860 usec 1680 usec, 840 usec 840 usec, 900 usec 1640 usec, 880 usec 800 usec, 880 usec 820 usec, 1700 usec 820 usec, 860 usec 2520 usec, 6820 usec 2480 usec, 880 usec 5880 usec, 880 usec 1660 usec, 5960 usec 800 usec, 900 usec 1620 usec, 880 usec 5040 usec, 840 usec 2540 usec, 5100 usec 820 usec, 1740 usec 1660 usec, 840 usec 4200 usec, 900 usec 3320 usec, 4260 usec 840 usec, 2560 usec 1660 usec, 2540 usec 1660 usec, 1740 usec 3320 usec, 880 usec 820 usec, 900 usec 1620 usec, 3440 usec 1640 usec, 3400 usec 820 usec, 900 usec 780 usec, 1720 usec 1700 usec, 1680 usec 820 usec, 1720 usec 1660 usec, 1740 usec 1640 usec, 900 usec 8420 usec, 840 usec 1660 usec, 2560 usec 840 usec, 1700 usec 1660 usec, 900 usec 1660 usec, 840 usec 820 usec, 1760 usec */ void IRsignal_On(){ // ON, OFF pulseIR(1700); delayMicroseconds(840); pulseIR(860); delayMicroseconds(1680); pulseIR(840); delayMicroseconds(840); pulseIR(900); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(820); pulseIR(1700); delayMicroseconds(820); pulseIR(860); delayMicroseconds(2520); pulseIR(6820); delayMicroseconds(2480); pulseIR(880); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1660); pulseIR(5960); delayMicroseconds(800); pulseIR(900); delayMicroseconds(1620); pulseIR(880); delayMicroseconds(5040); pulseIR(840); delayMicroseconds(2540); pulseIR(5100); delayMicroseconds(820); pulseIR(1740); delayMicroseconds(1660); pulseIR(840); delayMicroseconds(4200); pulseIR(900); delayMicroseconds(3320); pulseIR(4260); delayMicroseconds(840); pulseIR(2560); delayMicroseconds(1660); pulseIR(2540); delayMicroseconds(1660); pulseIR(1740); delayMicroseconds(3320); pulseIR(880); delayMicroseconds(820); pulseIR(900); delayMicroseconds(1620); pulseIR(3440); delayMicroseconds(1640); pulseIR(3400); delayMicroseconds(820); pulseIR(900); delayMicroseconds(780); pulseIR(1720); delayMicroseconds(1700); pulseIR(1680); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(1740); delayMicroseconds(1640); pulseIR(900); delayMicroseconds(8420); pulseIR(840); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(1660); pulseIR(900); delayMicroseconds(1660); pulseIR(840); delayMicroseconds(820); pulseIR(1760); } /* VENT CLOSED OFF ON 6104 usec, 1740 usec 820 usec, 840 usec 1660 usec, 900 usec 820 usec, 840 usec 1660 usec, 880 usec 820 usec, 900 usec 780 usec, 1720 usec 820 usec, 900 usec 2480 usec, 6780 usec 2500 usec, 900 usec 5860 usec, 920 usec 1640 usec, 5920 usec 820 usec, 880 usec 1660 usec, 900 usec 5000 usec, 940 usec 2440 usec, 5160 usec 760 usec, 1760 usec 1640 usec, 860 usec 4180 usec, 900 usec 3340 usec, 4240 usec 820 usec, 2600 usec 1620 usec, 2600 usec 1620 usec, 1720 usec 3360 usec, 880 usec 2500 usec, 4260 usec 1660 usec, 3420 usec 820 usec, 860 usec 800 usec, 1740 usec 1660 usec, 1700 usec 800 usec, 1760 usec 1660 usec, 1720 usec 1620 usec, 920 usec 8380 usec, 880 usec 1660 usec, 2560 usec 820 usec, 1740 usec 1640 usec, 900 usec 800 usec, 4240 usec */ void IRsignal_Closed(){ // ON, OFF pulseIR(1740); delayMicroseconds(820); pulseIR(840); delayMicroseconds(1660); pulseIR(900); delayMicroseconds(820); pulseIR(840); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(820); pulseIR(900); delayMicroseconds(780); pulseIR(1720); delayMicroseconds(820); pulseIR(900); delayMicroseconds(2480); pulseIR(6780); delayMicroseconds(2500); pulseIR(900); delayMicroseconds(5860); pulseIR(920); delayMicroseconds(1640); pulseIR(5920); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1660); pulseIR(900); delayMicroseconds(5000); pulseIR(940); delayMicroseconds(2440); pulseIR(5160); delayMicroseconds(760); pulseIR(1760); delayMicroseconds(1640); pulseIR(860); delayMicroseconds(4180); pulseIR(900); delayMicroseconds(3340); pulseIR(4240); delayMicroseconds(820); pulseIR(2600); delayMicroseconds(1620); pulseIR(2600); delayMicroseconds(1620); pulseIR(1720); delayMicroseconds(3360); pulseIR(880); delayMicroseconds(2500); pulseIR(4260); delayMicroseconds(1660); pulseIR(3420); delayMicroseconds(820); pulseIR(860); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1660); pulseIR(1700); delayMicroseconds(800); pulseIR(1760); delayMicroseconds(1660); pulseIR(1720); delayMicroseconds(1620); pulseIR(920); delayMicroseconds(8380); pulseIR(880); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(820); pulseIR(1740); delayMicroseconds(1640); pulseIR(900); delayMicroseconds(800); pulseIR(4240); } /* VENT OPEN Ready to decode IR! Received: OFF ON 33592 usec, 1740 usec 820 usec, 880 usec 1660 usec, 860 usec 820 usec, 880 usec 1660 usec, 880 usec 800 usec, 880 usec 820 usec, 1720 usec 800 usec, 880 usec 2500 usec, 6780 usec 2520 usec, 880 usec 5880 usec, 880 usec 1640 usec, 5940 usec 820 usec, 880 usec 1660 usec, 880 usec 5020 usec, 860 usec 2520 usec, 5120 usec 800 usec, 1740 usec 1640 usec, 880 usec 4180 usec, 880 usec 3340 usec, 4260 usec 820 usec, 2580 usec 1640 usec, 2580 usec 1640 usec, 1720 usec 3360 usec, 2560 usec 1660 usec, 3420 usec 1640 usec, 3420 usec 800 usec, 880 usec 820 usec, 1720 usec 1660 usec, 1720 usec 800 usec, 1720 usec 1660 usec, 1740 usec 1640 usec, 880 usec 8420 usec, 900 usec 1620 usec, 2620 usec 760 usec, 1760 usec 1620 usec, 1720 usec 820 usec, 880 usec 800 usec, 1720 usec */ void IRsignal_Open(){ // ON, OFF pulseIR(1740); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1660); pulseIR(860); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(800); pulseIR(880); delayMicroseconds(2500); pulseIR(6780); delayMicroseconds(2520); pulseIR(880); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1640); pulseIR(5940); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(5020); pulseIR(860); delayMicroseconds(2520); pulseIR(5120); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(4180); pulseIR(880); delayMicroseconds(3340); pulseIR(4260); delayMicroseconds(820); pulseIR(2580); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(1640); pulseIR(1720); delayMicroseconds(3360); pulseIR(2560); delayMicroseconds(1660); pulseIR(3420); delayMicroseconds(1640); pulseIR(3420); delayMicroseconds(800); pulseIR(880); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(1720); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(8420); pulseIR(900); delayMicroseconds(1620); pulseIR(2620); delayMicroseconds(760); pulseIR(1760); delayMicroseconds(1620); pulseIR(1720); delayMicroseconds(820); pulseIR(880); delayMicroseconds(800); pulseIR(1720); } /* AIR IN/OUT A Received: OFF ON 37672 usec, 1740 usec 820 usec, 840 usec 1700 usec, 840 usec 840 usec, 880 usec 1660 usec, 880 usec 800 usec, 880 usec 800 usec, 1740 usec 800 usec, 860 usec 2520 usec, 6760 usec 2520 usec, 900 usec 5880 usec, 880 usec 1640 usec, 5920 usec 840 usec, 880 usec 1660 usec, 880 usec 5020 usec, 860 usec 2520 usec, 5120 usec 800 usec, 1720 usec 1660 usec, 880 usec 4180 usec, 860 usec 3360 usec, 4240 usec 840 usec, 2580 usec 1640 usec, 2580 usec 1640 usec, 1700 usec 3380 usec, 3400 usec 820 usec, 3420 usec 1640 usec, 3400 usec 840 usec, 880 usec 800 usec, 1720 usec 1660 usec, 1680 usec 860 usec, 1680 usec 1680 usec, 1740 usec 1640 usec, 880 usec 8420 usec, 880 usec 1660 usec, 2560 usec 820 usec, 1720 usec 1660 usec, 1680 usec 2540 usec, 1680 usec */ void IRsignal_InOut(){ // ON, OFF pulseIR(1740); delayMicroseconds(820); pulseIR(840); delayMicroseconds(1700); pulseIR(840); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(800); pulseIR(860); delayMicroseconds(2520); pulseIR(6760); delayMicroseconds(2520); pulseIR(900); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1640); pulseIR(5920); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(5020); pulseIR(860); delayMicroseconds(2520); pulseIR(5120); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(4180); pulseIR(860); delayMicroseconds(3360); pulseIR(4240); delayMicroseconds(840); pulseIR(2580); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(1640); pulseIR(1700); delayMicroseconds(3380); pulseIR(3400); delayMicroseconds(820); pulseIR(3420); delayMicroseconds(1640); pulseIR(3400); delayMicroseconds(840); pulseIR(880); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(1680); delayMicroseconds(860); pulseIR(1680); delayMicroseconds(1680); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(8420); pulseIR(880); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(1680); delayMicroseconds(2540); pulseIR(1680); } /* AIR OUT IN? Received: OFF ON 35280 usec, 1760 usec 780 usec, 880 usec 1660 usec, 880 usec 800 usec, 880 usec 1660 usec, 880 usec 800 usec, 940 usec 760 usec, 1740 usec 780 usec, 880 usec 2500 usec, 6800 usec 2500 usec, 880 usec 5880 usec, 880 usec 1660 usec, 5960 usec 780 usec, 900 usec 1640 usec, 880 usec 5040 usec, 880 usec 2500 usec, 5100 usec 820 usec, 1720 usec 1640 usec, 900 usec 4180 usec, 900 usec 3320 usec, 4260 usec 820 usec, 2560 usec 1660 usec, 2560 usec 1660 usec, 1740 usec 3320 usec, 2560 usec 1660 usec, 3420 usec 1660 usec, 3440 usec 780 usec, 880 usec 800 usec, 1740 usec 1640 usec, 1760 usec 780 usec, 1740 usec 1640 usec, 1720 usec 1660 usec, 880 usec 8420 usec, 880 usec 1640 usec, 2580 usec 800 usec, 1720 usec 1660 usec, 1720 usec 820 usec, 900 usec 780 usec, 1740 usec */ void IRsignal_OutIn(){ // ON, OFF pulseIR(1760); delayMicroseconds(780); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(940); delayMicroseconds(760); pulseIR(1740); delayMicroseconds(780); pulseIR(880); delayMicroseconds(2500); pulseIR(6800); delayMicroseconds(2500); pulseIR(880); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1660); pulseIR(5960); delayMicroseconds(780); pulseIR(900); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(5040); pulseIR(880); delayMicroseconds(2500); pulseIR(5100); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1640); pulseIR(900); delayMicroseconds(4180); pulseIR(900); delayMicroseconds(3320); pulseIR(4260); delayMicroseconds(820); pulseIR(2560); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(1660); pulseIR(1740); delayMicroseconds(3320); pulseIR(2560); delayMicroseconds(1660); pulseIR(3420); delayMicroseconds(1660); pulseIR(3440); delayMicroseconds(780); pulseIR(880); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(1760); delayMicroseconds(780); pulseIR(1740); delayMicroseconds(1640); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(8420); pulseIR(880); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(1720); delayMicroseconds(820); pulseIR(900); delayMicroseconds(780); pulseIR(1740); } /* FAN AUTO Received: OFF ON 55828 usec, 1740 usec 800 usec, 880 usec 1640 usec, 880 usec 820 usec, 880 usec 1640 usec, 880 usec 820 usec, 900 usec 780 usec, 1740 usec 800 usec, 880 usec 2500 usec, 6780 usec 2500 usec, 900 usec 5880 usec, 880 usec 1640 usec, 5980 usec 780 usec, 880 usec 1660 usec, 880 usec 5020 usec, 880 usec 2500 usec, 5120 usec 800 usec, 1740 usec 1640 usec, 880 usec 4180 usec, 900 usec 3340 usec, 4240 usec 820 usec, 2580 usec 1640 usec, 2580 usec 1640 usec, 1760 usec 3320 usec, 1740 usec 1640 usec, 900 usec 780 usec, 2580 usec 1640 usec, 3440 usec 800 usec, 880 usec 800 usec, 1720 usec 1660 usec, 1740 usec 800 usec, 1740 usec 1620 usec, 1740 usec 1640 usec, 880 usec 8420 usec, 880 usec 1660 usec, 2560 usec 820 usec, 1720 usec 1660 usec, 4240 usec 820 usec, 900 usec */ void IRsignal_Auto(){ // ON, OFF pulseIR(1740); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(820); pulseIR(900); delayMicroseconds(780); pulseIR(1740); delayMicroseconds(800); pulseIR(880); delayMicroseconds(2500); pulseIR(6780); delayMicroseconds(2500); pulseIR(900); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1640); pulseIR(5980); delayMicroseconds(780); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(5020); pulseIR(880); delayMicroseconds(2500); pulseIR(5120); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(4180); pulseIR(900); delayMicroseconds(3340); pulseIR(4240); delayMicroseconds(820); pulseIR(2580); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(1640); pulseIR(1760); delayMicroseconds(3320); pulseIR(1740); delayMicroseconds(1640); pulseIR(900); delayMicroseconds(780); pulseIR(2580); delayMicroseconds(1640); pulseIR(3440); delayMicroseconds(800); pulseIR(880); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(1740); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1620); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(8420); pulseIR(880); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(4240); delayMicroseconds(820); pulseIR(900); } /* FAN MANUAL/OFF? Received: OFF ON 55500 usec, 1740 usec 800 usec, 880 usec 1660 usec, 860 usec 820 usec, 880 usec 1660 usec, 920 usec 760 usec, 880 usec 820 usec, 1720 usec 800 usec, 880 usec 2500 usec, 6800 usec 2500 usec, 920 usec 5840 usec, 880 usec 1640 usec, 5980 usec 780 usec, 880 usec 1660 usec, 880 usec 5040 usec, 860 usec 2520 usec, 5100 usec 800 usec, 1780 usec 1600 usec, 940 usec 4140 usec, 900 usec 3320 usec, 4260 usec 800 usec, 2580 usec 1640 usec, 2580 usec 1660 usec, 1740 usec 3320 usec, 2560 usec 820 usec, 4320 usec 1600 usec, 3440 usec 780 usec, 940 usec 740 usec, 1720 usec 1660 usec, 1760 usec 780 usec, 1740 usec 1640 usec, 1780 usec 1600 usec, 920 usec 8360 usec, 940 usec 1600 usec, 2580 usec 800 usec, 1720 usec 1660 usec, 1720 usec 820 usec, 3440 usec */ void IRsignalAutoOff(){ // ON, OFF pulseIR(1740); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(860); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1660); pulseIR(920); delayMicroseconds(760); pulseIR(880); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(800); pulseIR(880); delayMicroseconds(2500); pulseIR(6800); delayMicroseconds(2500); pulseIR(920); delayMicroseconds(5840); pulseIR(880); delayMicroseconds(1640); pulseIR(5980); delayMicroseconds(780); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(5040); pulseIR(860); delayMicroseconds(2520); pulseIR(5100); delayMicroseconds(800); pulseIR(1780); delayMicroseconds(1600); pulseIR(940); delayMicroseconds(4140); pulseIR(900); delayMicroseconds(3320); pulseIR(4260); delayMicroseconds(800); pulseIR(2580); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(1660); pulseIR(1740); delayMicroseconds(3320); pulseIR(2560); delayMicroseconds(820); pulseIR(4320); delayMicroseconds(1600); pulseIR(3440); delayMicroseconds(780); pulseIR(940); delayMicroseconds(740); pulseIR(1720); delayMicroseconds(1660); pulseIR(1760); delayMicroseconds(780); pulseIR(1740); delayMicroseconds(1640); pulseIR(1780); delayMicroseconds(1600); pulseIR(920); delayMicroseconds(8360); pulseIR(940); delayMicroseconds(1600); pulseIR(2580); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(1720); delayMicroseconds(820); pulseIR(3440); } /* Extra crud at the end? Received: OFF ON 400 usec, 380 usec 980 usec, 180 usec 3040 usec, 220 usec void IRsignal(){ // ON, OFF pulseIR(380); delayMicroseconds(980); pulseIR(180); delayMicroseconds(3040); pulseIR(220); Received: OFF ON 4940 usec, 280 usec void IRsignal(){ // ON, OFF pulseIR(280); Received: OFF ON 780 usec, 180 usec 860 usec, 180 usec 160 usec, 120 usec void IRsignal(){ // ON, OFF pulseIR(180); delayMicroseconds(860); pulseIR(180); delayMicroseconds(160); pulseIR(120); */ /* 10_PERCENT Received: OFF ON 61500 usec, 1760 usec 800 usec, 860 usec 1660 usec, 880 usec 820 usec, 860 usec 1660 usec, 880 usec 820 usec, 900 usec 780 usec, 1740 usec 800 usec, 880 usec 2480 usec, 6800 usec 2500 usec, 880 usec 5880 usec, 940 usec 1600 usec, 5960 usec 800 usec, 880 usec 1640 usec, 940 usec 4980 usec, 880 usec 2500 usec, 5100 usec 820 usec, 1720 usec 1660 usec, 860 usec 4200 usec, 900 usec 3320 usec, 4260 usec 820 usec, 2620 usec 1600 usec, 2560 usec 1660 usec, 1740 usec 3340 usec, 920 usec 760 usec, 860 usec 1680 usec, 860 usec 820 usec, 1780 usec 1600 usec, 1720 usec 820 usec, 900 usec 780 usec, 3420 usec 1640 usec, 1760 usec 780 usec, 1740 usec 1640 usec, 1780 usec 1600 usec, 880 usec 8420 usec, 880 usec 1640 usec, 2580 usec 800 usec, 1720 usec 1660 usec, 940 usec 740 usec, 1760 usec 780 usec, 1740 usec */ void IRsignal_10pct(){ // ON, OFF pulseIR(1760); delayMicroseconds(800); pulseIR(860); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(820); pulseIR(860); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(820); pulseIR(900); delayMicroseconds(780); pulseIR(1740); delayMicroseconds(800); pulseIR(880); delayMicroseconds(2480); pulseIR(6800); delayMicroseconds(2500); pulseIR(880); delayMicroseconds(5880); pulseIR(940); delayMicroseconds(1600); pulseIR(5960); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1640); pulseIR(940); delayMicroseconds(4980); pulseIR(880); delayMicroseconds(2500); pulseIR(5100); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(860); delayMicroseconds(4200); pulseIR(900); delayMicroseconds(3320); pulseIR(4260); delayMicroseconds(820); pulseIR(2620); delayMicroseconds(1600); pulseIR(2560); delayMicroseconds(1660); pulseIR(1740); delayMicroseconds(3340); pulseIR(920); delayMicroseconds(760); pulseIR(860); delayMicroseconds(1680); pulseIR(860); delayMicroseconds(820); pulseIR(1780); delayMicroseconds(1600); pulseIR(1720); delayMicroseconds(820); pulseIR(900); delayMicroseconds(780); pulseIR(3420); delayMicroseconds(1640); pulseIR(1760); delayMicroseconds(780); pulseIR(1740); delayMicroseconds(1640); pulseIR(1780); delayMicroseconds(1600); pulseIR(880); delayMicroseconds(8420); pulseIR(880); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(940); delayMicroseconds(740); pulseIR(1760); delayMicroseconds(780); pulseIR(1740); } /* 20 percent Received: OFF ON 25580 usec, 1720 usec 820 usec, 900 usec 1640 usec, 900 usec 780 usec, 940 usec 1600 usec, 880 usec 800 usec, 880 usec 800 usec, 1740 usec 800 usec, 880 usec 2500 usec, 6820 usec 2480 usec, 880 usec 5880 usec, 880 usec 1660 usec, 5960 usec 780 usec, 880 usec 1660 usec, 880 usec 5040 usec, 860 usec 2520 usec, 5100 usec 800 usec, 1740 usec 1640 usec, 880 usec 4200 usec, 900 usec 3320 usec, 4260 usec 820 usec, 2560 usec 1660 usec, 2560 usec 1660 usec, 1740 usec 3320 usec, 880 usec 820 usec, 880 usec 1640 usec, 3420 usec 1660 usec, 2560 usec 820 usec, 900 usec 780 usec, 2580 usec 1640 usec, 1740 usec 800 usec, 1740 usec 1640 usec, 1720 usec 1660 usec, 880 usec 8400 usec, 900 usec 1640 usec, 2580 usec 800 usec, 1720 usec 1660 usec, 880 usec 2500 usec, 900 usec */ void IRsignal_20pct(){ // ON, OFF pulseIR(1720); delayMicroseconds(820); pulseIR(900); delayMicroseconds(1640); pulseIR(900); delayMicroseconds(780); pulseIR(940); delayMicroseconds(1600); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(800); pulseIR(880); delayMicroseconds(2500); pulseIR(6820); delayMicroseconds(2480); pulseIR(880); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1660); pulseIR(5960); delayMicroseconds(780); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(5040); pulseIR(860); delayMicroseconds(2520); pulseIR(5100); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(4200); pulseIR(900); delayMicroseconds(3320); pulseIR(4260); delayMicroseconds(820); pulseIR(2560); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(1660); pulseIR(1740); delayMicroseconds(3320); pulseIR(880); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1640); pulseIR(3420); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(820); pulseIR(900); delayMicroseconds(780); pulseIR(2580); delayMicroseconds(1640); pulseIR(1740); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(8400); pulseIR(900); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(2500); pulseIR(900); } /* 30 percent Received: OFF ON 26616 usec, 1760 usec 800 usec, 880 usec 1660 usec, 880 usec 800 usec, 880 usec 1660 usec, 880 usec 800 usec, 900 usec 800 usec, 1720 usec 820 usec, 860 usec 2500 usec, 6800 usec 2500 usec, 880 usec 5880 usec, 880 usec 1660 usec, 5920 usec 840 usec, 880 usec 1640 usec, 880 usec 5040 usec, 880 usec 2500 usec, 5120 usec 800 usec, 1720 usec 1660 usec, 880 usec 4180 usec, 860 usec 3360 usec, 4260 usec 820 usec, 2560 usec 1660 usec, 2560 usec 1660 usec, 1700 usec 3360 usec, 900 usec 800 usec, 880 usec 1660 usec, 3400 usec 1660 usec, 1720 usec 3340 usec, 2580 usec 1640 usec, 1700 usec 840 usec, 1700 usec 1680 usec, 1720 usec 1660 usec, 880 usec 8420 usec, 880 usec 1640 usec, 2580 usec 800 usec, 1740 usec 1640 usec, 880 usec 820 usec, 880 usec */ void IRsignal_30pct(){ // ON, OFF pulseIR(1760); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(900); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(820); pulseIR(860); delayMicroseconds(2500); pulseIR(6800); delayMicroseconds(2500); pulseIR(880); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1660); pulseIR(5920); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(5040); pulseIR(880); delayMicroseconds(2500); pulseIR(5120); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(4180); pulseIR(860); delayMicroseconds(3360); pulseIR(4260); delayMicroseconds(820); pulseIR(2560); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(1660); pulseIR(1700); delayMicroseconds(3360); pulseIR(900); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(3400); delayMicroseconds(1660); pulseIR(1720); delayMicroseconds(3340); pulseIR(2580); delayMicroseconds(1640); pulseIR(1700); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(1680); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(8420); pulseIR(880); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(820); pulseIR(880); } /* 40 percent Received: OFF ON 62968 usec, 1740 usec 800 usec, 880 usec 1660 usec, 860 usec 820 usec, 880 usec 1660 usec, 880 usec 800 usec, 880 usec 800 usec, 1740 usec 800 usec, 880 usec 2500 usec, 6780 usec 2520 usec, 880 usec 5860 usec, 900 usec 1640 usec, 5920 usec 840 usec, 880 usec 1660 usec, 880 usec 5040 usec, 860 usec 2500 usec, 5120 usec 800 usec, 1740 usec 1640 usec, 880 usec 4200 usec, 840 usec 3380 usec, 4260 usec 800 usec, 2580 usec 1640 usec, 2580 usec 1660 usec, 1680 usec 3380 usec, 880 usec 820 usec, 860 usec 1660 usec, 3420 usec 1640 usec, 3400 usec 840 usec, 880 usec 800 usec, 1720 usec 1660 usec, 1700 usec 840 usec, 1680 usec 1700 usec, 1720 usec 1660 usec, 880 usec 8400 usec, 880 usec 1660 usec, 2580 usec 800 usec, 1720 usec 1660 usec, 880 usec 1660 usec, 840 usec 840 usec, 1680 usec */ void IRsignal_40pct(){ // ON, OFF pulseIR(1740); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(860); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(800); pulseIR(880); delayMicroseconds(2500); pulseIR(6780); delayMicroseconds(2520); pulseIR(880); delayMicroseconds(5860); pulseIR(900); delayMicroseconds(1640); pulseIR(5920); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(5040); pulseIR(860); delayMicroseconds(2500); pulseIR(5120); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(4200); pulseIR(840); delayMicroseconds(3380); pulseIR(4260); delayMicroseconds(800); pulseIR(2580); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(1660); pulseIR(1680); delayMicroseconds(3380); pulseIR(880); delayMicroseconds(820); pulseIR(860); delayMicroseconds(1660); pulseIR(3420); delayMicroseconds(1640); pulseIR(3400); delayMicroseconds(840); pulseIR(880); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(1700); delayMicroseconds(840); pulseIR(1680); delayMicroseconds(1700); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(8400); pulseIR(880); delayMicroseconds(1660); pulseIR(2580); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(1660); pulseIR(840); delayMicroseconds(840); pulseIR(1680); } /* 50 percent Received: OFF ON 36376 usec, 1740 usec 800 usec, 860 usec 1680 usec, 840 usec 840 usec, 880 usec 1660 usec, 880 usec 800 usec, 880 usec 820 usec, 1720 usec 800 usec, 880 usec 2500 usec, 6800 usec 2500 usec, 880 usec 5880 usec, 880 usec 1660 usec, 5920 usec 840 usec, 880 usec 1640 usec, 880 usec 5040 usec, 880 usec 2500 usec, 5120 usec 800 usec, 1740 usec 1640 usec, 880 usec 4180 usec, 860 usec 3360 usec, 4260 usec 820 usec, 2560 usec 1660 usec, 2560 usec 1660 usec, 1700 usec 3360 usec, 880 usec 820 usec, 880 usec 1640 usec, 3420 usec 1660 usec, 1720 usec 820 usec, 1700 usec 1680 usec, 1720 usec 1640 usec, 1700 usec 840 usec, 1700 usec 1680 usec, 1720 usec 1660 usec, 880 usec 8420 usec, 880 usec 1640 usec, 2580 usec 800 usec, 1740 usec 1640 usec, 880 usec 800 usec, 2580 usec 800 usec, 860 usec */ void IRsignal_50pct(){ // ON, OFF pulseIR(1740); delayMicroseconds(800); pulseIR(860); delayMicroseconds(1680); pulseIR(840); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(800); pulseIR(880); delayMicroseconds(2500); pulseIR(6800); delayMicroseconds(2500); pulseIR(880); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1660); pulseIR(5920); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(5040); pulseIR(880); delayMicroseconds(2500); pulseIR(5120); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(4180); pulseIR(860); delayMicroseconds(3360); pulseIR(4260); delayMicroseconds(820); pulseIR(2560); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(1660); pulseIR(1700); delayMicroseconds(3360); pulseIR(880); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1640); pulseIR(3420); delayMicroseconds(1660); pulseIR(1720); delayMicroseconds(820); pulseIR(1700); delayMicroseconds(1680); pulseIR(1720); delayMicroseconds(1640); pulseIR(1700); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(1680); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(8420); pulseIR(880); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(800); pulseIR(2580); delayMicroseconds(800); pulseIR(860); } /* 60 percent Received: OFF ON 58224 usec, 1720 usec 820 usec, 880 usec 1640 usec, 880 usec 820 usec, 880 usec 1640 usec, 880 usec 820 usec, 880 usec 800 usec, 1720 usec 820 usec, 880 usec 2500 usec, 6780 usec 2500 usec, 900 usec 5880 usec, 880 usec 1640 usec, 5920 usec 840 usec, 880 usec 1660 usec, 880 usec 5020 usec, 880 usec 2500 usec, 5120 usec 800 usec, 1740 usec 1640 usec, 880 usec 4180 usec, 860 usec 3380 usec, 4240 usec 820 usec, 2580 usec 1640 usec, 2580 usec 1660 usec, 1680 usec 3380 usec, 940 usec 740 usec, 880 usec 1660 usec, 3420 usec 1640 usec, 2580 usec 3340 usec, 1740 usec 1640 usec, 1700 usec 840 usec, 1700 usec 1680 usec, 1720 usec 1640 usec, 900 usec 8400 usec, 900 usec 1640 usec, 2580 usec 800 usec, 1720 usec 1660 usec, 880 usec 4180 usec, 860 usec */ void IRsignal_60pct(){ // ON, OFF pulseIR(1720); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(820); pulseIR(880); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(820); pulseIR(880); delayMicroseconds(2500); pulseIR(6780); delayMicroseconds(2500); pulseIR(900); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1640); pulseIR(5920); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(5020); pulseIR(880); delayMicroseconds(2500); pulseIR(5120); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(4180); pulseIR(860); delayMicroseconds(3380); pulseIR(4240); delayMicroseconds(820); pulseIR(2580); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(1660); pulseIR(1680); delayMicroseconds(3380); pulseIR(940); delayMicroseconds(740); pulseIR(880); delayMicroseconds(1660); pulseIR(3420); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(3340); pulseIR(1740); delayMicroseconds(1640); pulseIR(1700); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(1680); pulseIR(1720); delayMicroseconds(1640); pulseIR(900); delayMicroseconds(8400); pulseIR(900); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(4180); pulseIR(860); } /* 70 percent Received: OFF ON 31920 usec, 1740 usec 800 usec, 860 usec 1680 usec, 860 usec 820 usec, 900 usec 1640 usec, 880 usec 800 usec, 900 usec 800 usec, 1720 usec 820 usec, 860 usec 2500 usec, 6800 usec 2500 usec, 900 usec 5860 usec, 880 usec 1660 usec, 5920 usec 840 usec, 880 usec 1660 usec, 880 usec 5020 usec, 880 usec 2500 usec, 5120 usec 800 usec, 1720 usec 1660 usec, 880 usec 4180 usec, 860 usec 3360 usec, 4260 usec 820 usec, 2580 usec 1640 usec, 2580 usec 1640 usec, 1700 usec 3380 usec, 880 usec 800 usec, 880 usec 1660 usec, 3420 usec 1640 usec, 1720 usec 1660 usec, 2540 usec 840 usec, 880 usec 1660 usec, 1680 usec 860 usec, 1680 usec 1680 usec, 1740 usec 1640 usec, 880 usec 8420 usec, 880 usec 1660 usec, 2580 usec 800 usec, 1720 usec 1660 usec, 880 usec 800 usec, 880 usec 800 usec, 1740 usec 800 usec, 880 usec */ void IRsignal_70pct(){ // ON, OFF pulseIR(1740); delayMicroseconds(800); pulseIR(860); delayMicroseconds(1680); pulseIR(860); delayMicroseconds(820); pulseIR(900); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(800); pulseIR(900); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(820); pulseIR(860); delayMicroseconds(2500); pulseIR(6800); delayMicroseconds(2500); pulseIR(900); delayMicroseconds(5860); pulseIR(880); delayMicroseconds(1660); pulseIR(5920); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(5020); pulseIR(880); delayMicroseconds(2500); pulseIR(5120); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(4180); pulseIR(860); delayMicroseconds(3360); pulseIR(4260); delayMicroseconds(820); pulseIR(2580); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(1640); pulseIR(1700); delayMicroseconds(3380); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(3420); delayMicroseconds(1640); pulseIR(1720); delayMicroseconds(1660); pulseIR(2540); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(1680); delayMicroseconds(860); pulseIR(1680); delayMicroseconds(1680); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(8420); pulseIR(880); delayMicroseconds(1660); pulseIR(2580); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(800); pulseIR(880); } /* 80 percent Received: OFF ON 24836 usec, 1720 usec 840 usec, 880 usec 1640 usec, 880 usec 820 usec, 880 usec 1640 usec, 880 usec 820 usec, 840 usec 840 usec, 1700 usec 840 usec, 880 usec 2500 usec, 6780 usec 2500 usec, 880 usec 5880 usec, 900 usec 1640 usec, 5920 usec 840 usec, 880 usec 1660 usec, 880 usec 5020 usec, 880 usec 2500 usec, 5120 usec 800 usec, 1740 usec 1640 usec, 880 usec 4180 usec, 860 usec 3380 usec, 4240 usec 820 usec, 2580 usec 1640 usec, 2580 usec 1640 usec, 1700 usec 3380 usec, 880 usec 800 usec, 880 usec 1660 usec, 3420 usec 1660 usec, 4240 usec 820 usec, 840 usec 840 usec, 880 usec 1660 usec, 1700 usec 820 usec, 1700 usec 1680 usec, 1740 usec 1640 usec, 880 usec 8420 usec, 880 usec 1660 usec, 2560 usec 820 usec, 1720 usec 1660 usec, 880 usec 1640 usec, 1720 usec 1660 usec, 880 usec */ void IRsignal_80pct(){ // ON, OFF pulseIR(1720); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(820); pulseIR(840); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(840); pulseIR(880); delayMicroseconds(2500); pulseIR(6780); delayMicroseconds(2500); pulseIR(880); delayMicroseconds(5880); pulseIR(900); delayMicroseconds(1640); pulseIR(5920); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(5020); pulseIR(880); delayMicroseconds(2500); pulseIR(5120); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(4180); pulseIR(860); delayMicroseconds(3380); pulseIR(4240); delayMicroseconds(820); pulseIR(2580); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(1640); pulseIR(1700); delayMicroseconds(3380); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(3420); delayMicroseconds(1660); pulseIR(4240); delayMicroseconds(820); pulseIR(840); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(1700); delayMicroseconds(820); pulseIR(1700); delayMicroseconds(1680); pulseIR(1740); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(8420); pulseIR(880); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(1640); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); } /* 90 percent Received: OFF ON 4936 usec, 1740 usec 820 usec, 840 usec 1680 usec, 860 usec 840 usec, 880 usec 1640 usec, 920 usec 780 usec, 880 usec 800 usec, 1720 usec 820 usec, 860 usec 2520 usec, 6780 usec 2500 usec, 880 usec 5880 usec, 900 usec 1640 usec, 5940 usec 820 usec, 880 usec 1660 usec, 880 usec 5020 usec, 880 usec 2500 usec, 5120 usec 800 usec, 1700 usec 1680 usec, 880 usec 4180 usec, 860 usec 3380 usec, 4260 usec 800 usec, 2540 usec 1680 usec, 2560 usec 1660 usec, 1740 usec 3340 usec, 880 usec 800 usec, 880 usec 1660 usec, 3380 usec 1700 usec, 1720 usec 800 usec, 880 usec 1660 usec, 840 usec 840 usec, 880 usec 1660 usec, 1700 usec 820 usec, 1700 usec 1680 usec, 1720 usec 1660 usec, 860 usec 8440 usec, 860 usec 1680 usec, 2540 usec 840 usec, 1700 usec 1660 usec, 860 usec 840 usec, 1700 usec 2520 usec, 880 usec */ void IRsignal_90pct(){ // ON, OFF pulseIR(1740); delayMicroseconds(820); pulseIR(840); delayMicroseconds(1680); pulseIR(860); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1640); pulseIR(920); delayMicroseconds(780); pulseIR(880); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(820); pulseIR(860); delayMicroseconds(2520); pulseIR(6780); delayMicroseconds(2500); pulseIR(880); delayMicroseconds(5880); pulseIR(900); delayMicroseconds(1640); pulseIR(5940); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(5020); pulseIR(880); delayMicroseconds(2500); pulseIR(5120); delayMicroseconds(800); pulseIR(1700); delayMicroseconds(1680); pulseIR(880); delayMicroseconds(4180); pulseIR(860); delayMicroseconds(3380); pulseIR(4260); delayMicroseconds(800); pulseIR(2540); delayMicroseconds(1680); pulseIR(2560); delayMicroseconds(1660); pulseIR(1740); delayMicroseconds(3340); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(3380); delayMicroseconds(1700); pulseIR(1720); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(840); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(1700); delayMicroseconds(820); pulseIR(1700); delayMicroseconds(1680); pulseIR(1720); delayMicroseconds(1660); pulseIR(860); delayMicroseconds(8440); pulseIR(860); delayMicroseconds(1680); pulseIR(2540); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(1660); pulseIR(860); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(2520); pulseIR(880); } /* 100 percent Received: OFF ON 59308 usec, 1760 usec 800 usec, 880 usec 1660 usec, 880 usec 800 usec, 880 usec 1660 usec, 880 usec 800 usec, 880 usec 800 usec, 1740 usec 800 usec, 880 usec 2500 usec, 6800 usec 2500 usec, 880 usec 5880 usec, 880 usec 1660 usec, 5920 usec 840 usec, 880 usec 1640 usec, 880 usec 5040 usec, 880 usec 2500 usec, 5100 usec 820 usec, 1720 usec 1660 usec, 880 usec 4180 usec, 880 usec 3340 usec, 4260 usec 820 usec, 2560 usec 1660 usec, 2560 usec 1660 usec, 1720 usec 3340 usec, 880 usec 820 usec, 880 usec 1640 usec, 880 usec 820 usec, 1720 usec 1660 usec, 2540 usec 840 usec, 1700 usec 1680 usec, 840 usec 1680 usec, 1700 usec 840 usec, 1700 usec 1680 usec, 1700 usec 1680 usec, 860 usec 8440 usec, 840 usec 1680 usec, 2540 usec 840 usec, 1700 usec 1660 usec, 880 usec 2520 usec, 1700 usec 840 usec, 840 usec */ void IRsignal_100pct(){ // ON, OFF pulseIR(1760); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(800); pulseIR(880); delayMicroseconds(2500); pulseIR(6800); delayMicroseconds(2500); pulseIR(880); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1660); pulseIR(5920); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(5040); pulseIR(880); delayMicroseconds(2500); pulseIR(5100); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(4180); pulseIR(880); delayMicroseconds(3340); pulseIR(4260); delayMicroseconds(820); pulseIR(2560); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(1660); pulseIR(1720); delayMicroseconds(3340); pulseIR(880); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(2540); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(1680); pulseIR(840); delayMicroseconds(1680); pulseIR(1700); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(1680); pulseIR(1700); delayMicroseconds(1680); pulseIR(860); delayMicroseconds(8440); pulseIR(840); delayMicroseconds(1680); pulseIR(2540); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(2520); pulseIR(1700); delayMicroseconds(840); pulseIR(840); } /* 50 degrees Received: OFF ON 10652 usec, 1720 usec 840 usec, 860 usec 1680 usec, 860 usec 820 usec, 860 usec 1680 usec, 880 usec 800 usec, 860 usec 820 usec, 1700 usec 840 usec, 880 usec 2500 usec, 6780 usec 2520 usec, 840 usec 5920 usec, 840 usec 1680 usec, 5920 usec 840 usec, 860 usec 1680 usec, 880 usec 5040 usec, 860 usec 2500 usec, 5100 usec 820 usec, 1720 usec 1660 usec, 860 usec 4220 usec, 860 usec 3360 usec, 4260 usec 800 usec, 2560 usec 1660 usec, 2560 usec 1680 usec, 1680 usec 3380 usec, 860 usec 840 usec, 860 usec 1660 usec, 3400 usec 1660 usec, 2560 usec 820 usec, 1740 usec 1640 usec, 860 usec 1680 usec, 1720 usec 820 usec, 1700 usec 1680 usec, 1700 usec 1680 usec, 880 usec 8400 usec, 860 usec 1680 usec, 2540 usec 840 usec, 1700 usec 1680 usec, 860 usec 2520 usec, 3400 usec */ void IRsignal_50deg(){ // ON, OFF pulseIR(1720); delayMicroseconds(840); pulseIR(860); delayMicroseconds(1680); pulseIR(860); delayMicroseconds(820); pulseIR(860); delayMicroseconds(1680); pulseIR(880); delayMicroseconds(800); pulseIR(860); delayMicroseconds(820); pulseIR(1700); delayMicroseconds(840); pulseIR(880); delayMicroseconds(2500); pulseIR(6780); delayMicroseconds(2520); pulseIR(840); delayMicroseconds(5920); pulseIR(840); delayMicroseconds(1680); pulseIR(5920); delayMicroseconds(840); pulseIR(860); delayMicroseconds(1680); pulseIR(880); delayMicroseconds(5040); pulseIR(860); delayMicroseconds(2500); pulseIR(5100); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(860); delayMicroseconds(4220); pulseIR(860); delayMicroseconds(3360); pulseIR(4260); delayMicroseconds(800); pulseIR(2560); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(1680); pulseIR(1680); delayMicroseconds(3380); pulseIR(860); delayMicroseconds(840); pulseIR(860); delayMicroseconds(1660); pulseIR(3400); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(820); pulseIR(1740); delayMicroseconds(1640); pulseIR(860); delayMicroseconds(1680); pulseIR(1720); delayMicroseconds(820); pulseIR(1700); delayMicroseconds(1680); pulseIR(1700); delayMicroseconds(1680); pulseIR(880); delayMicroseconds(8400); pulseIR(860); delayMicroseconds(1680); pulseIR(2540); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(1680); pulseIR(860); delayMicroseconds(2520); pulseIR(3400); } /* 60 degrees Received: OFF ON 10652 usec, 1720 usec 840 usec, 860 usec 1680 usec, 860 usec 820 usec, 860 usec 1680 usec, 880 usec 800 usec, 860 usec 820 usec, 1700 usec 840 usec, 880 usec 2500 usec, 6780 usec 2520 usec, 840 usec 5920 usec, 840 usec 1680 usec, 5920 usec 840 usec, 860 usec 1680 usec, 880 usec 5040 usec, 860 usec 2500 usec, 5100 usec 820 usec, 1720 usec 1660 usec, 860 usec 4220 usec, 860 usec 3360 usec, 4260 usec 800 usec, 2560 usec 1660 usec, 2560 usec 1680 usec, 1680 usec 3380 usec, 860 usec 840 usec, 860 usec 1660 usec, 3400 usec 1660 usec, 2560 usec 820 usec, 1740 usec 1640 usec, 860 usec 1680 usec, 1720 usec 820 usec, 1700 usec 1680 usec, 1700 usec 1680 usec, 880 usec 8400 usec, 860 usec 1680 usec, 2540 usec 840 usec, 1700 usec 1680 usec, 860 usec 2520 usec, 3400 usec */ void IRsignal_60deg(){ // ON, OFF pulseIR(1720); delayMicroseconds(840); pulseIR(860); delayMicroseconds(1680); pulseIR(860); delayMicroseconds(820); pulseIR(860); delayMicroseconds(1680); pulseIR(880); delayMicroseconds(800); pulseIR(860); delayMicroseconds(820); pulseIR(1700); delayMicroseconds(840); pulseIR(880); delayMicroseconds(2500); pulseIR(6780); delayMicroseconds(2520); pulseIR(840); delayMicroseconds(5920); pulseIR(840); delayMicroseconds(1680); pulseIR(5920); delayMicroseconds(840); pulseIR(860); delayMicroseconds(1680); pulseIR(880); delayMicroseconds(5040); pulseIR(860); delayMicroseconds(2500); pulseIR(5100); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(860); delayMicroseconds(4220); pulseIR(860); delayMicroseconds(3360); pulseIR(4260); delayMicroseconds(800); pulseIR(2560); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(1680); pulseIR(1680); delayMicroseconds(3380); pulseIR(860); delayMicroseconds(840); pulseIR(860); delayMicroseconds(1660); pulseIR(3400); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(820); pulseIR(1740); delayMicroseconds(1640); pulseIR(860); delayMicroseconds(1680); pulseIR(1720); delayMicroseconds(820); pulseIR(1700); delayMicroseconds(1680); pulseIR(1700); delayMicroseconds(1680); pulseIR(880); delayMicroseconds(8400); pulseIR(860); delayMicroseconds(1680); pulseIR(2540); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(1680); pulseIR(860); delayMicroseconds(2520); pulseIR(3400); } /* 70 degrees Received: OFF ON 50348 usec, 1760 usec 800 usec, 880 usec 1640 usec, 880 usec 820 usec, 880 usec 1640 usec, 900 usec 800 usec, 880 usec 800 usec, 1740 usec 800 usec, 880 usec 2500 usec, 6780 usec 2520 usec, 880 usec 5860 usec, 900 usec 1640 usec, 5920 usec 840 usec, 880 usec 1660 usec, 880 usec 5040 usec, 860 usec 2500 usec, 5120 usec 800 usec, 1740 usec 1640 usec, 920 usec 4160 usec, 840 usec 3380 usec, 4260 usec 800 usec, 2580 usec 1660 usec, 2560 usec 1660 usec, 1680 usec 3380 usec, 880 usec 800 usec, 880 usec 1660 usec, 3420 usec 1660 usec, 2560 usec 820 usec, 1720 usec 1660 usec, 880 usec 1640 usec, 1700 usec 1680 usec, 2580 usec 800 usec, 880 usec 1660 usec, 880 usec 8420 usec, 880 usec 1640 usec, 2580 usec 800 usec, 1720 usec 1660 usec, 880 usec 1660 usec, 1720 usec */ void IRsignal_70deg(){ // ON, OFF pulseIR(1760); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1640); pulseIR(900); delayMicroseconds(800); pulseIR(880); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(800); pulseIR(880); delayMicroseconds(2500); pulseIR(6780); delayMicroseconds(2520); pulseIR(880); delayMicroseconds(5860); pulseIR(900); delayMicroseconds(1640); pulseIR(5920); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(5040); pulseIR(860); delayMicroseconds(2500); pulseIR(5120); delayMicroseconds(800); pulseIR(1740); delayMicroseconds(1640); pulseIR(920); delayMicroseconds(4160); pulseIR(840); delayMicroseconds(3380); pulseIR(4260); delayMicroseconds(800); pulseIR(2580); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(1660); pulseIR(1680); delayMicroseconds(3380); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(3420); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(1640); pulseIR(1700); delayMicroseconds(1680); pulseIR(2580); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(8420); pulseIR(880); delayMicroseconds(1640); pulseIR(2580); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(1660); pulseIR(1720); } /* 80 degrees Received: OFF ON 9216 usec, 1740 usec 820 usec, 860 usec 1680 usec, 840 usec 840 usec, 880 usec 1660 usec, 880 usec 800 usec, 880 usec 820 usec, 1720 usec 800 usec, 880 usec 2500 usec, 6800 usec 2500 usec, 880 usec 5880 usec, 880 usec 1660 usec, 5920 usec 840 usec, 880 usec 1640 usec, 880 usec 5040 usec, 880 usec 2500 usec, 5080 usec 840 usec, 1720 usec 1660 usec, 840 usec 4220 usec, 880 usec 3340 usec, 4260 usec 820 usec, 2540 usec 1680 usec, 2540 usec 1680 usec, 1700 usec 3360 usec, 860 usec 840 usec, 880 usec 1660 usec, 3400 usec 1660 usec, 2540 usec 840 usec, 1720 usec 1660 usec, 880 usec 1660 usec, 4220 usec 840 usec, 880 usec 820 usec, 860 usec 1660 usec, 880 usec 8420 usec, 880 usec 1660 usec, 2560 usec 820 usec, 1720 usec 1660 usec, 880 usec 800 usec, 880 usec 800 usec, 1740 usec */ void IRsignal_80deg(){ // ON, OFF pulseIR(1740); delayMicroseconds(820); pulseIR(860); delayMicroseconds(1680); pulseIR(840); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(800); pulseIR(880); delayMicroseconds(2500); pulseIR(6800); delayMicroseconds(2500); pulseIR(880); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1660); pulseIR(5920); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1640); pulseIR(880); delayMicroseconds(5040); pulseIR(880); delayMicroseconds(2500); pulseIR(5080); delayMicroseconds(840); pulseIR(1720); delayMicroseconds(1660); pulseIR(840); delayMicroseconds(4220); pulseIR(880); delayMicroseconds(3340); pulseIR(4260); delayMicroseconds(820); pulseIR(2540); delayMicroseconds(1680); pulseIR(2540); delayMicroseconds(1680); pulseIR(1700); delayMicroseconds(3360); pulseIR(860); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(3400); delayMicroseconds(1660); pulseIR(2540); delayMicroseconds(840); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(1660); pulseIR(4220); delayMicroseconds(840); pulseIR(880); delayMicroseconds(820); pulseIR(860); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(8420); pulseIR(880); delayMicroseconds(1660); pulseIR(2560); delayMicroseconds(820); pulseIR(1720); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(800); pulseIR(1740); } /* 90 degrees Received: OFF ON 41692 usec, 1760 usec 800 usec, 880 usec 1660 usec, 880 usec 800 usec, 880 usec 1660 usec, 880 usec 820 usec, 880 usec 800 usec, 1720 usec 820 usec, 860 usec 2520 usec, 6780 usec 2500 usec, 880 usec 5880 usec, 880 usec 1660 usec, 5940 usec 820 usec, 880 usec 1660 usec, 840 usec 5060 usec, 880 usec 2500 usec, 5080 usec 840 usec, 1700 usec 1680 usec, 880 usec 4180 usec, 880 usec 3360 usec, 4260 usec 800 usec, 2540 usec 1680 usec, 2540 usec 1680 usec, 1700 usec 3380 usec, 840 usec 840 usec, 880 usec 1660 usec, 3380 usec 1680 usec, 2560 usec 820 usec, 1700 usec 1680 usec, 860 usec 1680 usec, 1700 usec 840 usec, 840 usec 1680 usec, 860 usec 840 usec, 840 usec 1680 usec, 860 usec 8440 usec, 860 usec 1680 usec, 2540 usec 840 usec, 1680 usec 1700 usec, 840 usec 3380 usec, 840 usec */ void IRsignal_90deg(){ // ON, OFF pulseIR(1760); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(800); pulseIR(880); delayMicroseconds(1660); pulseIR(880); delayMicroseconds(820); pulseIR(880); delayMicroseconds(800); pulseIR(1720); delayMicroseconds(820); pulseIR(860); delayMicroseconds(2520); pulseIR(6780); delayMicroseconds(2500); pulseIR(880); delayMicroseconds(5880); pulseIR(880); delayMicroseconds(1660); pulseIR(5940); delayMicroseconds(820); pulseIR(880); delayMicroseconds(1660); pulseIR(840); delayMicroseconds(5060); pulseIR(880); delayMicroseconds(2500); pulseIR(5080); delayMicroseconds(840); pulseIR(1700); delayMicroseconds(1680); pulseIR(880); delayMicroseconds(4180); pulseIR(880); delayMicroseconds(3360); pulseIR(4260); delayMicroseconds(800); pulseIR(2540); delayMicroseconds(1680); pulseIR(2540); delayMicroseconds(1680); pulseIR(1700); delayMicroseconds(3380); pulseIR(840); delayMicroseconds(840); pulseIR(880); delayMicroseconds(1660); pulseIR(3380); delayMicroseconds(1680); pulseIR(2560); delayMicroseconds(820); pulseIR(1700); delayMicroseconds(1680); pulseIR(860); delayMicroseconds(1680); pulseIR(1700); delayMicroseconds(840); pulseIR(840); delayMicroseconds(1680); pulseIR(860); delayMicroseconds(840); pulseIR(840); delayMicroseconds(1680); pulseIR(860); delayMicroseconds(8440); pulseIR(860); delayMicroseconds(1680); pulseIR(2540); delayMicroseconds(840); pulseIR(1680); delayMicroseconds(1700); pulseIR(840); delayMicroseconds(3380); pulseIR(840); } /* final off Received: OFF ON 23392 usec, 1620 usec 860 usec, 820 usec 1760 usec, 740 usec 1040 usec, 660 usec 1740 usec, 740 usec 1000 usec, 240 usec 140 usec, 380 usec 960 usec, 1480 usec 5860 usec, 460 usec 140 usec, 400 usec 2040 usec, 280 usec 1220 usec, 300 usec 140 usec, 240 usec 3080 usec, 200 usec 6640 usec, 200 usec 2120 usec, 240 usec 140 usec, 300 usec 140 usec, 260 usec */ void IRsignal_finaloff(){ // ON, OFF pulseIR(1620); delayMicroseconds(860); pulseIR(820); delayMicroseconds(1760); pulseIR(740); delayMicroseconds(1040); pulseIR(660); delayMicroseconds(1740); pulseIR(740); delayMicroseconds(1000); pulseIR(240); delayMicroseconds(140); pulseIR(380); delayMicroseconds(960); pulseIR(1480); delayMicroseconds(5860); pulseIR(460); delayMicroseconds(140); pulseIR(400); delayMicroseconds(2040); pulseIR(280); delayMicroseconds(1220); pulseIR(300); delayMicroseconds(140); pulseIR(240); delayMicroseconds(3080); pulseIR(200); delayMicroseconds(6640); pulseIR(200); delayMicroseconds(2120); pulseIR(240); delayMicroseconds(140); pulseIR(300); delayMicroseconds(140); pulseIR(260); }