From 8315bbed7d1eeacb4284c22f6bc39d76c9f9310c Mon Sep 17 00:00:00 2001 From: KLASSENTS Date: Fri, 24 Jan 2025 11:00:50 +0700 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B0=D1=81=D0=BA=D0=BE=D0=BC=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=D0=B0=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRremote/examples/SendDemo/SendDemo.ino | 486 +++++++++--------- 1 file changed, 243 insertions(+), 243 deletions(-) diff --git a/libraries/IRremote/examples/SendDemo/SendDemo.ino b/libraries/IRremote/examples/SendDemo/SendDemo.ino index d42bcb0..de08e26 100644 --- a/libraries/IRremote/examples/SendDemo/SendDemo.ino +++ b/libraries/IRremote/examples/SendDemo/SendDemo.ino @@ -31,7 +31,7 @@ */ #include //#define EXCLUDE_EXOTIC_PROTOCOLS // Saves around 240 bytes program memory if IrSender.write is used -#define SEND_PWM_BY_TIMER // Disable carrier PWM generation in software and use (restricted) hardware PWM. +//#define SEND_PWM_BY_TIMER // Disable carrier PWM generation in software and use (restricted) hardware PWM. //#define USE_NO_SEND_PWM // Use no carrier PWM, just simulate an active low receiver signal. Overrides SEND_PWM_BY_TIMER definition //#define USE_ACTIVE_HIGH_OUTPUT_FOR_SEND_PIN // Simulate an active high receiver signal instead of an active low signal. //#define NO_LED_FEEDBACK_CODE // Saves 566 bytes program memory @@ -103,7 +103,7 @@ void setup() { * and a variable 8 bit command. * There are exceptions like Sony and Denon, which have 5 bit address. */ -uint16_t sAddress = 0x0102; +uint16_t sAddress = 0x0132; uint8_t sCommand = 0x34; uint16_t s16BitCommand = 0x5634; uint8_t sRepeats = 0; @@ -128,293 +128,293 @@ void loop() { IrSender.sendNEC(sAddress & 0xFF, sCommand, sRepeats); delay(DELAY_AFTER_SEND); // delay must be greater than 5 ms (RECORD_GAP_MICROS), otherwise the receiver sees it as one long signal - // Serial.println(F("Send NEC with 16 bit address")); - // Serial.flush(); - // IrSender.sendNEC(sAddress, sCommand, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send NEC with 16 bit address")); + Serial.flush(); + IrSender.sendNEC(sAddress, sCommand, sRepeats); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send NEC2 with 16 bit address")); - // Serial.flush(); - // IrSender.sendNEC2(sAddress, sCommand, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send NEC2 with 16 bit address")); + Serial.flush(); + IrSender.sendNEC2(sAddress, sCommand, sRepeats); + delay(DELAY_AFTER_SEND); - // if (sRepeats == 0) { - // /* - // * Send constant values only once in this demo - // */ - // Serial.println(F("Sending NEC Pronto data with 8 bit address 0x80 and command 0x45 and no repeats")); - // Serial.flush(); - // IrSender.sendPronto(F("0000 006D 0022 0000 015E 00AB " /* Pronto header + start bit */ - // "0017 0015 0017 0015 0017 0017 0015 0017 0017 0015 0017 0015 0017 0015 0017 003F " /* Lower address byte */ - // "0017 003F 0017 003E 0017 003F 0015 003F 0017 003E 0017 003F 0017 003E 0017 0015 " /* Upper address byte (inverted at 8 bit mode) */ - // "0017 003E 0017 0015 0017 003F 0017 0015 0017 0015 0017 0015 0017 003F 0017 0015 " /* command byte */ - // "0019 0013 0019 003C 0017 0015 0017 003F 0017 003E 0017 003F 0017 0015 0017 003E " /* inverted command byte */ - // "0017 0806"), 0); //stop bit, no repeat possible, because of missing repeat pattern - // delay(DELAY_AFTER_SEND); + if (sRepeats == 0) { + /* + * Send constant values only once in this demo + */ + Serial.println(F("Sending NEC Pronto data with 8 bit address 0x80 and command 0x45 and no repeats")); + Serial.flush(); + IrSender.sendPronto(F("0000 006D 0022 0000 015E 00AB " /* Pronto header + start bit */ + "0017 0015 0017 0015 0017 0017 0015 0017 0017 0015 0017 0015 0017 0015 0017 003F " /* Lower address byte */ + "0017 003F 0017 003E 0017 003F 0015 003F 0017 003E 0017 003F 0017 003E 0017 0015 " /* Upper address byte (inverted at 8 bit mode) */ + "0017 003E 0017 0015 0017 003F 0017 0015 0017 0015 0017 0015 0017 003F 0017 0015 " /* command byte */ + "0019 0013 0019 003C 0017 0015 0017 003F 0017 003E 0017 003F 0017 0015 0017 003E " /* inverted command byte */ + "0017 0806"), 0); //stop bit, no repeat possible, because of missing repeat pattern + delay(DELAY_AFTER_SEND); - // /* - // * !!! The next data occupies 136 bytes RAM !!! - // */ - // Serial.println( - // F("Send NEC sendRaw data with 8 bit address=0xFB04 and command 0x08 and exact timing (16 bit array format)")); - // Serial.flush(); - // const uint16_t irSignal[] = { 9000, 4500/*Start bit*/, 560, 560, 560, 560, 560, 1690, 560, - // 560/*0010 0x4 of 16 bit address LSB first*/, 560, 560, 560, 560, 560, 560, 560, 560/*0000*/, 560, 1690, 560, 1690, - // 560, 560, 560, 1690/*1101 0xB*/, 560, 1690, 560, 1690, 560, 1690, 560, 1690/*1111*/, 560, 560, 560, 560, 560, 560, - // 560, 1690/*0001 0x08 of command LSB first*/, 560, 560, 560, 560, 560, 560, 560, 560/*0000 0x00*/, 560, 1690, 560, - // 1690, 560, 1690, 560, 560/*1110 Inverted 8 of command*/, 560, 1690, 560, 1690, 560, 1690, 560, - // 1690/*1111 inverted 0 of command*/, 560 /*stop bit*/}; // Using exact NEC timing - // IrSender.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), NEC_KHZ); // Note the approach used to automatically calculate the size of the array. - // delay(DELAY_AFTER_SEND); + /* + * !!! The next data occupies 136 bytes RAM !!! + */ + Serial.println( + F("Send NEC sendRaw data with 8 bit address=0xFB04 and command 0x08 and exact timing (16 bit array format)")); + Serial.flush(); + const uint16_t irSignal[] = { 9000, 4500/*Start bit*/, 560, 560, 560, 560, 560, 1690, 560, + 560/*0010 0x4 of 16 bit address LSB first*/, 560, 560, 560, 560, 560, 560, 560, 560/*0000*/, 560, 1690, 560, 1690, + 560, 560, 560, 1690/*1101 0xB*/, 560, 1690, 560, 1690, 560, 1690, 560, 1690/*1111*/, 560, 560, 560, 560, 560, 560, + 560, 1690/*0001 0x08 of command LSB first*/, 560, 560, 560, 560, 560, 560, 560, 560/*0000 0x00*/, 560, 1690, 560, + 1690, 560, 1690, 560, 560/*1110 Inverted 8 of command*/, 560, 1690, 560, 1690, 560, 1690, 560, + 1690/*1111 inverted 0 of command*/, 560 /*stop bit*/}; // Using exact NEC timing + IrSender.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), NEC_KHZ); // Note the approach used to automatically calculate the size of the array. + delay(DELAY_AFTER_SEND); - // /* - // * With sendNECRaw() you can send 32 bit combined codes - // */ - // Serial.println(F("Send ONKYO with 16 bit address 0x0102 and 16 bit command 0x0304 with NECRaw(0x03040102)")); - // Serial.flush(); - // IrSender.sendNECRaw(0x03040102, sRepeats); - // delay(DELAY_AFTER_SEND); + /* + * With sendNECRaw() you can send 32 bit combined codes + */ + Serial.println(F("Send ONKYO with 16 bit address 0x0102 and 16 bit command 0x0304 with NECRaw(0x03040102)")); + Serial.flush(); + IrSender.sendNECRaw(0x03040102, sRepeats); + delay(DELAY_AFTER_SEND); - // /* - // * With Send sendNECMSB() you can send your old 32 bit codes. - // * To convert one into the other, you must reverse the byte positions and then reverse all positions of each byte. - // * Use bitreverse32Bit(). - // * Example: - // * 0xCB340102 byte reverse -> 0x020134CB bit reverse-> 40802CD3 - // */ - // Serial.println(F("Send ONKYO with 16 bit address 0x0102 and command 0x34 with old 32 bit format MSB first (0x40802CD3)")); - // Serial.flush(); - // IrSender.sendNECMSB(0x40802CD3, 32, false); - // delay(DELAY_AFTER_SEND); + /* + * With Send sendNECMSB() you can send your old 32 bit codes. + * To convert one into the other, you must reverse the byte positions and then reverse all positions of each byte. + * Use bitreverse32Bit(). + * Example: + * 0xCB340102 byte reverse -> 0x020134CB bit reverse-> 40802CD3 + */ + Serial.println(F("Send ONKYO with 16 bit address 0x0102 and command 0x34 with old 32 bit format MSB first (0x40802CD3)")); + Serial.flush(); + IrSender.sendNECMSB(0x40802CD3, 32, false); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Panasonic 0xB, 0x10 as 48 bit PulseDistance using ProtocolConstants")); - // Serial.flush(); + Serial.println(F("Send Panasonic 0xB, 0x10 as 48 bit PulseDistance using ProtocolConstants")); + Serial.flush(); - // IrSender.sendPulseDistanceWidth(&KaseikyoProtocolConstants, 0xA010B02002, 48, NO_REPEATS); // Panasonic is a Kaseikyo variant + IrSender.sendPulseDistanceWidth(&KaseikyoProtocolConstants, 0xA010B02002, 48, NO_REPEATS); // Panasonic is a Kaseikyo variant - // delay(DELAY_AFTER_SEND); + delay(DELAY_AFTER_SEND); - // /* - // * Send 2 Panasonic 48 bit codes as Pulse Distance data, once with LSB and once with MSB first - // */ - // Serial.println(F("Send Panasonic 0xB, 0x10 as 48 bit PulseDistance")); - // Serial.println(F(" LSB first")); - // Serial.flush(); + /* + * Send 2 Panasonic 48 bit codes as Pulse Distance data, once with LSB and once with MSB first + */ + Serial.println(F("Send Panasonic 0xB, 0x10 as 48 bit PulseDistance")); + Serial.println(F(" LSB first")); + Serial.flush(); - // IrSender.sendPulseDistanceWidth(38, 3450, 1700, 450, 1250, 450, 400, 0xA010B02002, 48, PROTOCOL_IS_LSB_FIRST, - // 0, NO_REPEATS); - // delay(DELAY_AFTER_SEND); + IrSender.sendPulseDistanceWidth(38, 3450, 1700, 450, 1250, 450, 400, 0xA010B02002, 48, PROTOCOL_IS_LSB_FIRST, + 0, NO_REPEATS); + delay(DELAY_AFTER_SEND); - // // The same with MSB first. Use bit reversed raw data of LSB first part - // Serial.println(F(" MSB first")); - // IrSender.sendPulseDistanceWidth(38, 3450, 1700, 450, 1250, 450, 400, 0x40040D000805, 48, PROTOCOL_IS_MSB_FIRST, - // 0, NO_REPEATS); - // delay(DELAY_AFTER_SEND); + // The same with MSB first. Use bit reversed raw data of LSB first part + Serial.println(F(" MSB first")); + IrSender.sendPulseDistanceWidth(38, 3450, 1700, 450, 1250, 450, 400, 0x40040D000805, 48, PROTOCOL_IS_MSB_FIRST, + 0, NO_REPEATS); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send 72 bit PulseDistance 0x5A AFEDCBA9 87654321 LSB first")); - // Serial.flush(); - // IRRawDataType tRawData[] = { 0xAFEDCBA987654321, 0x5A }; // LSB of tRawData[0] is sent first - // IrSender.sendPulseDistanceWidthFromArray(38, 8900, 4450, 550, 1700, 550, 600, &tRawData[0], 72, PROTOCOL_IS_LSB_FIRST, 0, NO_REPEATS); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send 72 bit PulseDistance 0x5A AFEDCBA9 87654321 LSB first")); + Serial.flush(); + IRRawDataType tRawData[] = { 0xAFEDCBA987654321, 0x5A }; // LSB of tRawData[0] is sent first + IrSender.sendPulseDistanceWidthFromArray(38, 8900, 4450, 550, 1700, 550, 600, &tRawData[0], 72, PROTOCOL_IS_LSB_FIRST, 0, NO_REPEATS); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send 52 bit PulseDistanceWidth 0xDCBA9 87654321 LSB first")); - // Serial.flush(); - // // Real PulseDistanceWidth (constant bit length) does not require a stop bit - // IrSender.sendPulseDistanceWidth(38, 300, 600, 600, 300, 300, 600, 0xDCBA987654321, 52, PROTOCOL_IS_LSB_FIRST, - // 0, 0); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send 52 bit PulseDistanceWidth 0xDCBA9 87654321 LSB first")); + Serial.flush(); + // Real PulseDistanceWidth (constant bit length) does not require a stop bit + IrSender.sendPulseDistanceWidth(38, 300, 600, 600, 300, 300, 600, 0xDCBA987654321, 52, PROTOCOL_IS_LSB_FIRST, + 0, 0); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send ASCII 7 bit PulseDistanceWidth LSB first")); - // Serial.flush(); - // // Real PulseDistanceWidth (constant bit length) does theoretically not require a stop bit, but we know the stop bit from serial transmission - // IrSender.sendPulseDistanceWidth(38, 6000, 500, 500, 1500, 1500, 500, sCommand, 7, PROTOCOL_IS_LSB_FIRST, 0, 0); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send ASCII 7 bit PulseDistanceWidth LSB first")); + Serial.flush(); + // Real PulseDistanceWidth (constant bit length) does theoretically not require a stop bit, but we know the stop bit from serial transmission + IrSender.sendPulseDistanceWidth(38, 6000, 500, 500, 1500, 1500, 500, sCommand, 7, PROTOCOL_IS_LSB_FIRST, 0, 0); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Sony12 as PulseWidth LSB first")); - // Serial.flush(); - // uint32_t tData = (uint32_t) sAddress << 7 | (sCommand & 0x7F); - // IrSender.sendPulseDistanceWidth(38, 2400, 600, 1200, 600, 600, 600, tData, SIRCS_12_PROTOCOL, PROTOCOL_IS_LSB_FIRST, 0, 0); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Sony12 as PulseWidth LSB first")); + Serial.flush(); + uint32_t tData = (uint32_t) sAddress << 7 | (sCommand & 0x7F); + IrSender.sendPulseDistanceWidth(38, 2400, 600, 1200, 600, 600, 600, tData, SIRCS_12_PROTOCOL, PROTOCOL_IS_LSB_FIRST, 0, 0); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send 32 bit PulseWidth 0x87654321 LSB first")); - // Serial.flush(); - // // Real PulseDistanceWidth (constant bit length) does not require a stop bit - // IrSender.sendPulseDistanceWidth(38, 1000, 500, 600, 300, 300, 300, 0x87654321, 32, PROTOCOL_IS_LSB_FIRST, 0, 0); - // delay(DELAY_AFTER_SEND); - // } + Serial.println(F("Send 32 bit PulseWidth 0x87654321 LSB first")); + Serial.flush(); + // Real PulseDistanceWidth (constant bit length) does not require a stop bit + IrSender.sendPulseDistanceWidth(38, 1000, 500, 600, 300, 300, 300, 0x87654321, 32, PROTOCOL_IS_LSB_FIRST, 0, 0); + delay(DELAY_AFTER_SEND); + } - // Serial.println(F("Send Onkyo (NEC with 16 bit command)")); - // Serial.flush(); - // IrSender.sendOnkyo(sAddress, s16BitCommand, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Onkyo (NEC with 16 bit command)")); + Serial.flush(); + IrSender.sendOnkyo(sAddress, s16BitCommand, sRepeats); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Apple")); - // Serial.flush(); - // IrSender.sendApple(sAddress & 0xFF, sCommand, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Apple")); + Serial.flush(); + IrSender.sendApple(sAddress & 0xFF, sCommand, sRepeats); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Panasonic")); - // Serial.flush(); - // IrSender.sendPanasonic(sAddress & 0xFFF, sCommand, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Panasonic")); + Serial.flush(); + IrSender.sendPanasonic(sAddress & 0xFFF, sCommand, sRepeats); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Kaseikyo with 0x4711 as Vendor ID")); - // Serial.flush(); - // IrSender.sendKaseikyo(sAddress & 0xFFF, sCommand, sRepeats, 0x4711); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Kaseikyo with 0x4711 as Vendor ID")); + Serial.flush(); + IrSender.sendKaseikyo(sAddress & 0xFFF, sCommand, sRepeats, 0x4711); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Kaseikyo_Denon variant")); - // Serial.flush(); - // IrSender.sendKaseikyo_Denon(sAddress & 0xFFF, sCommand, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Kaseikyo_Denon variant")); + Serial.flush(); + IrSender.sendKaseikyo_Denon(sAddress & 0xFFF, sCommand, sRepeats); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Denon")); - // Serial.flush(); - // IrSender.sendDenon(sAddress & 0x1F, sCommand, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Denon")); + Serial.flush(); + IrSender.sendDenon(sAddress & 0x1F, sCommand, sRepeats); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Denon/Sharp variant")); - // Serial.flush(); - // IrSender.sendSharp(sAddress & 0x1F, sCommand, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Denon/Sharp variant")); + Serial.flush(); + IrSender.sendSharp(sAddress & 0x1F, sCommand, sRepeats); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Sony/SIRCS with 7 command and 5 address bits")); - // Serial.flush(); - // IrSender.sendSony(sAddress & 0x1F, sCommand & 0x7F, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Sony/SIRCS with 7 command and 5 address bits")); + Serial.flush(); + IrSender.sendSony(sAddress & 0x1F, sCommand & 0x7F, sRepeats); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Sony/SIRCS with 7 command and 8 address bits")); - // Serial.flush(); - // IrSender.sendSony(sAddress & 0xFF, sCommand, sRepeats, SIRCS_15_PROTOCOL); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Sony/SIRCS with 7 command and 8 address bits")); + Serial.flush(); + IrSender.sendSony(sAddress & 0xFF, sCommand, sRepeats, SIRCS_15_PROTOCOL); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Sony/SIRCS with 7 command and 13 address bits")); - // Serial.flush(); - // IrSender.sendSony(sAddress & 0x1FFF, sCommand & 0x7F, sRepeats, SIRCS_20_PROTOCOL); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Sony/SIRCS with 7 command and 13 address bits")); + Serial.flush(); + IrSender.sendSony(sAddress & 0x1FFF, sCommand & 0x7F, sRepeats, SIRCS_20_PROTOCOL); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Samsung 8 bit command")); - // Serial.flush(); - // IrSender.sendSamsung(sAddress, sCommand, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Samsung 8 bit command")); + Serial.flush(); + IrSender.sendSamsung(sAddress, sCommand, sRepeats); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Samsung 16 bit command")); - // Serial.flush(); - // IrSender.sendSamsung(sAddress, s16BitCommand, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Samsung 16 bit command")); + Serial.flush(); + IrSender.sendSamsung(sAddress, s16BitCommand, sRepeats); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send Samsung48 16 bit command")); - // Serial.flush(); - // IrSender.sendSamsung48(sAddress, s16BitCommand, sRepeats); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send Samsung48 16 bit command")); + Serial.flush(); + IrSender.sendSamsung48(sAddress, s16BitCommand, sRepeats); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send RC5")); - // Serial.flush(); - // IrSender.sendRC5(sAddress & 0x1F, sCommand & 0x3F, sRepeats, true); // 5 address, 6 command bits - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send RC5")); + Serial.flush(); + IrSender.sendRC5(sAddress & 0x1F, sCommand & 0x3F, sRepeats, true); // 5 address, 6 command bits + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send RC5X with 7.th MSB of command set")); - // Serial.flush(); - // IrSender.sendRC5(sAddress & 0x1F, (sCommand & 0x3F) + 0x40, sRepeats, true); // 5 address, 7 command bits - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send RC5X with 7.th MSB of command set")); + Serial.flush(); + IrSender.sendRC5(sAddress & 0x1F, (sCommand & 0x3F) + 0x40, sRepeats, true); // 5 address, 7 command bits + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send RC6")); - // Serial.flush(); - // IrSender.sendRC6(sAddress, sCommand, sRepeats, true); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send RC6")); + Serial.flush(); + IrSender.sendRC6(sAddress, sCommand, sRepeats, true); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send RC6A with 14 bit 0x2711 as extra")); - // Serial.flush(); - // IrSender.sendRC6A(sAddress & 0xFF, sCommand, sRepeats, 0x2711, true); - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send RC6A with 14 bit 0x2711 as extra")); + Serial.flush(); + IrSender.sendRC6A(sAddress & 0xFF, sCommand, sRepeats, 0x2711, true); + delay(DELAY_AFTER_SEND); - // Serial.println(F("Send MagiQuest")); - // Serial.flush(); - // IrSender.sendMagiQuest(0x6BCD0000 | (uint32_t) sAddress, s16BitCommand); // we have 31 bit address - // delay(DELAY_AFTER_SEND); + Serial.println(F("Send MagiQuest")); + Serial.flush(); + IrSender.sendMagiQuest(0x6BCD0000 | (uint32_t) sAddress, s16BitCommand); // we have 31 bit address + delay(DELAY_AFTER_SEND); - // /* - // * Next example how to use the IrSender.write function - // */ - // IRData IRSendData; - // // prepare data - // IRSendData.address = sAddress; - // IRSendData.command = sCommand; - // IRSendData.flags = IRDATA_FLAGS_EMPTY; + /* + * Next example how to use the IrSender.write function + */ + IRData IRSendData; + // prepare data + IRSendData.address = sAddress; + IRSendData.command = sCommand; + IRSendData.flags = IRDATA_FLAGS_EMPTY; - // Serial.println(F("Send next protocols with IrSender.write")); - // Serial.flush(); + Serial.println(F("Send next protocols with IrSender.write")); + Serial.flush(); - // IRSendData.protocol = JVC; // switch protocol - // Serial.print(F("Send ")); - // Serial.println(getProtocolString(IRSendData.protocol)); - // Serial.flush(); - // IrSender.write(&IRSendData, sRepeats); - // delay(DELAY_AFTER_SEND); + IRSendData.protocol = JVC; // switch protocol + Serial.print(F("Send ")); + Serial.println(getProtocolString(IRSendData.protocol)); + Serial.flush(); + IrSender.write(&IRSendData, sRepeats); + delay(DELAY_AFTER_SEND); - // IRSendData.command = s16BitCommand; // LG support more than 8 bit command + IRSendData.command = s16BitCommand; // LG support more than 8 bit command - // IRSendData.protocol = SAMSUNG; - // Serial.print(F("Send ")); - // Serial.println(getProtocolString(IRSendData.protocol)); - // Serial.flush(); - // IrSender.write(&IRSendData, sRepeats); - // delay(DELAY_AFTER_SEND); + IRSendData.protocol = SAMSUNG; + Serial.print(F("Send ")); + Serial.println(getProtocolString(IRSendData.protocol)); + Serial.flush(); + IrSender.write(&IRSendData, sRepeats); + delay(DELAY_AFTER_SEND); - // IRSendData.protocol = LG; - // Serial.print(F("Send ")); - // Serial.println(getProtocolString(IRSendData.protocol)); - // Serial.flush(); - // IrSender.write(&IRSendData, sRepeats); - // delay(DELAY_AFTER_SEND); + IRSendData.protocol = LG; + Serial.print(F("Send ")); + Serial.println(getProtocolString(IRSendData.protocol)); + Serial.flush(); + IrSender.write(&IRSendData, sRepeats); + delay(DELAY_AFTER_SEND); - // IRSendData.protocol = BOSEWAVE; - // Serial.println(F("Send Bosewave with no address and 8 command bits")); - // Serial.flush(); - // IrSender.write(&IRSendData, sRepeats); - // delay(DELAY_AFTER_SEND); + IRSendData.protocol = BOSEWAVE; + Serial.println(F("Send Bosewave with no address and 8 command bits")); + Serial.flush(); + IrSender.write(&IRSendData, sRepeats); + delay(DELAY_AFTER_SEND); - // IRSendData.protocol = FAST; - // Serial.print(F("Send ")); - // Serial.println(getProtocolString(IRSendData.protocol)); - // Serial.flush(); - // IrSender.write(&IRSendData, sRepeats); - // delay(DELAY_AFTER_SEND); + IRSendData.protocol = FAST; + Serial.print(F("Send ")); + Serial.println(getProtocolString(IRSendData.protocol)); + Serial.flush(); + IrSender.write(&IRSendData, sRepeats); + delay(DELAY_AFTER_SEND); - // /* - // * LEGO is difficult to receive because of its short marks and spaces - // */ - // Serial.println(F("Send Lego with 2 channel and with 4 command bits")); - // Serial.flush(); - // IrSender.sendLegoPowerFunctions(sAddress, sCommand, LEGO_MODE_COMBO, true); - // delay(DELAY_AFTER_SEND); + /* + * LEGO is difficult to receive because of its short marks and spaces + */ + Serial.println(F("Send Lego with 2 channel and with 4 command bits")); + Serial.flush(); + IrSender.sendLegoPowerFunctions(sAddress, sCommand, LEGO_MODE_COMBO, true); + delay(DELAY_AFTER_SEND); - // /* - // * Force buffer overflow - // */ - // Serial.println(F("Force buffer overflow by sending 700 marks and spaces")); - // for (unsigned int i = 0; i < 350; ++i) { - // // 400 + 400 should be received as 8/8 and sometimes as 9/7 or 7/9 if compensation by MARK_EXCESS_MICROS is optimal. - // // 210 + 540 = 750 should be received as 5/10 or 4/11 if compensation by MARK_EXCESS_MICROS is optimal. - // IrSender.mark(210); // 8 pulses at 38 kHz - // IrSender.space(540); // to fill up to 750 us - // } - // delay(DELAY_AFTER_SEND); + /* + * Force buffer overflow + */ + Serial.println(F("Force buffer overflow by sending 700 marks and spaces")); + for (unsigned int i = 0; i < 350; ++i) { + // 400 + 400 should be received as 8/8 and sometimes as 9/7 or 7/9 if compensation by MARK_EXCESS_MICROS is optimal. + // 210 + 540 = 750 should be received as 5/10 or 4/11 if compensation by MARK_EXCESS_MICROS is optimal. + IrSender.mark(210); // 8 pulses at 38 kHz + IrSender.space(540); // to fill up to 750 us + } + delay(DELAY_AFTER_SEND); - // /* - // * Increment values - // * Also increment address just for demonstration, which normally makes no sense - // */ - // sAddress += 0x0101; - // sCommand += 0x11; - // s16BitCommand += 0x1111; - // sRepeats++; - // // clip repeats at 4 - // if (sRepeats > 4) { - // sRepeats = 4; - // } + /* + * Increment values + * Also increment address just for demonstration, which normally makes no sense + */ + sAddress += 0x0101; + sCommand += 0x11; + s16BitCommand += 0x1111; + sRepeats++; + // clip repeats at 4 + if (sRepeats > 4) { + sRepeats = 4; + } - //delay(DELAY_AFTER_LOOP); // additional delay at the end of each loop + delay(DELAY_AFTER_LOOP); // additional delay at the end of each loop }