user34614: I used the following program to send an IR code and I got the an unexpected result as below:
/*
   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 j = 0;
void setup()
{
}

void loop() {
  for (int i = 0; i < 3; i++) {
    irsend.sendNEC(0xFF6897, 32);
    delay(40);
    j = j + 1;
  }
  delay(5000); //5 second delay between each signal burst
}

With the following schematic:

I expected to receive:

FF6897 Decoded NEC: FF6897 (32 bits) Raw (68): 8750 -4450 550 -550 500
  -600 550 -550 550 -550 550 -550 550 -600 500 -600 500 -600 500 -1650 550 -1650 550 -1650 500 -1650 550 -1650 550 -1650 500 -1700 500 -1650
  550 -550 500 -1700 550 -1600 550 -600 500 -1650 550 -600 500 -600 500
  -600 500 -1650 550 -550 550 -600 500 -1650 500 -600 500 -1700 500 -1650 550 -1650 550

Instead I receive consistently

C101E57B Unknown encoding: C101E57B (32 bits) Raw (68): 8850 -4450 500
  -650 450 -600 500 -600 550 -550 500 -650 450 -650 500 -600 450 -650 450 -1800 450 -1700 500 -1750 500 -1700 500 -1750 500 -1700 500 -1750
  450 -1750 500 -600 500 -1750 450 -1750 500 -600 450 -1750 500 -650 450
  -600 550 -600 500 -1700 500 -600 500 -600 500 -1750 500 -600 500 -1700 500 -1700 550 -1700 450

anyone knows how to fix this?
Code the Reciever uses to decode the just send signal:
/*
 * IRremote: IRrecvDump - dump details of IR codes with IRrecv
 * An IR detector/demodulator must be connected to the input RECV_PIN.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post)
 * LG added by Darryl Smith (based on the JVC protocol)
 */

#include <IRremote.h>

/* 
*  Default is Arduino pin D11. 
*  You can change this to another available Arduino Pin.
*  Your IR receiver should be connected to the pin defined here
*/
int RECV_PIN = 6;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}


void dump(decode_results *results) {
  // Dumps out the decode_results structure.
  // Call this after IRrecv::decode()
  int count = results->rawlen;
  if (results->decode_type == UNKNOWN) {
    Serial.print("Unknown encoding: ");
  }
  else if (results->decode_type == NEC) {
    Serial.print("Decoded NEC: ");

  }
  else if (results->decode_type == SONY) {
    Serial.print("Decoded SONY: ");
  }
  else if (results->decode_type == RC5) {
    Serial.print("Decoded RC5: ");
  }
  else if (results->decode_type == RC6) {
    Serial.print("Decoded RC6: ");
  }
  else if (results->decode_type == PANASONIC) {
    Serial.print("Decoded PANASONIC - Address: ");
    Serial.print(results->address, HEX);
    Serial.print(" Value: ");
  }
  else if (results->decode_type == LG) {
    Serial.print("Decoded LG: ");
  }
  else if (results->decode_type == JVC) {
    Serial.print("Decoded JVC: ");
  }
  else if (results->decode_type == AIWA_RC_T501) {
    Serial.print("Decoded AIWA RC T501: ");
  }
  else if (results->decode_type == WHYNTER) {
    Serial.print("Decoded Whynter: ");
  }
  Serial.print(results->value, HEX);
  Serial.print(" (");
  Serial.print(results->bits, DEC);
  Serial.println(" bits)");
  Serial.print("Raw (");
  Serial.print(count, DEC);
  Serial.print("): ");

  for (int i = 1; i < count; i++) {
    if (i & 1) {
      Serial.print(results->rawbuf[i]*USECPERTICK, DEC);
    }
    else {
      Serial.write('-');
      Serial.print((unsigned long) results->rawbuf[i]*USECPERTICK, DEC);
    }
    Serial.print(" ");
  }
  Serial.println();
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    dump(&results);
    irrecv.resume(); // Receive the next value
  }
}

Schematic wise:
one IR reciever with VCC and Ground connect and signal-out on pin 6

user32827: In the received RAW codes, the width of the modulated pulses is less than the expected value. And the width of the spaces is bigger than expected.
This is due to the lack of an infrared sensor.
Use infrared receiver another model. For example TSOP4838.
Or try reducing MARK_EXCESS in the IRremoteInt.h of the Arduino-IRremote library from 100 to 50 or 0.
...
// Pulse parms are ((X*50)-100) for the Mark and ((X*50)+100) for the Space.
// First MARK is the one after the long gap
// Pulse parameters in uSec
//

// Due to sensor lag, when received, Marks  tend to be 100us too long and
//                                   Spaces tend to be 100us too short
#define MARK_EXCESS    0
...

And please increase the delay time in transmitter sketch (to avoid codes overlapping) :
...
for (int i = 0; i < 3; i++){ 
  irsend.sendNEC(0xFF6897, 32); 
  delay(200); 
  j = j + 1; 
}
...


34614: <p>I used the following program to send an IR code and I got the an unexpected result as below:</p>

<pre class="lang-cpp prettyprint-override"><code>/*
   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 &lt;IRremote.h&gt;

IRsend irsend;

int j = 0;
void setup()
{
}

void loop() {
  for (int i = 0; i &lt; 3; i++) {
    irsend.sendNEC(0xFF6897, 32);
    delay(40);
    j = j + 1;
  }
  delay(5000); //5 second delay between each signal burst
}
</code></pre>

<p>With the following schematic:
<a href="https://i.stack.imgur.com/12thE.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/12thE.png" alt="enter image description here"></a></p>

<p>I expected to receive:</p>

<blockquote>
  <p>FF6897 Decoded NEC: FF6897 (32 bits) Raw (68): 8750 -4450 550 -550 500
  -600 550 -550 550 -550 550 -550 550 -600 500 -600 500 -600 500 -1650 550 -1650 550 -1650 500 -1650 550 -1650 550 -1650 500 -1700 500 -1650
  550 -550 500 -1700 550 -1600 550 -600 500 -1650 550 -600 500 -600 500
  -600 500 -1650 550 -550 550 -600 500 -1650 500 -600 500 -1700 500 -1650 550 -1650 550</p>
</blockquote>

<p>Instead I receive consistently</p>

<blockquote>
  <p>C101E57B Unknown encoding: C101E57B (32 bits) Raw (68): 8850 -4450 500
  -650 450 -600 500 -600 550 -550 500 -650 450 -650 500 -600 450 -650 450 -1800 450 -1700 500 -1750 500 -1700 500 -1750 500 -1700 500 -1750
  450 -1750 500 -600 500 -1750 450 -1750 500 -600 450 -1750 500 -650 450
  -600 550 -600 500 -1700 500 -600 500 -600 500 -1750 500 -600 500 -1700 500 -1700 550 -1700 450</p>
</blockquote>

<p>anyone knows how to fix this?</p>

<p>Code the Reciever uses to decode the just send signal:</p>

<pre><code>/*
 * IRremote: IRrecvDump - dump details of IR codes with IRrecv
 * An IR detector/demodulator must be connected to the input RECV_PIN.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 * JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post)
 * LG added by Darryl Smith (based on the JVC protocol)
 */

#include &lt;IRremote.h&gt;

/* 
*  Default is Arduino pin D11. 
*  You can change this to another available Arduino Pin.
*  Your IR receiver should be connected to the pin defined here
*/
int RECV_PIN = 6;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}


void dump(decode_results *results) {
  // Dumps out the decode_results structure.
  // Call this after IRrecv::decode()
  int count = results-&gt;rawlen;
  if (results-&gt;decode_type == UNKNOWN) {
    Serial.print("Unknown encoding: ");
  }
  else if (results-&gt;decode_type == NEC) {
    Serial.print("Decoded NEC: ");

  }
  else if (results-&gt;decode_type == SONY) {
    Serial.print("Decoded SONY: ");
  }
  else if (results-&gt;decode_type == RC5) {
    Serial.print("Decoded RC5: ");
  }
  else if (results-&gt;decode_type == RC6) {
    Serial.print("Decoded RC6: ");
  }
  else if (results-&gt;decode_type == PANASONIC) {
    Serial.print("Decoded PANASONIC - Address: ");
    Serial.print(results-&gt;address, HEX);
    Serial.print(" Value: ");
  }
  else if (results-&gt;decode_type == LG) {
    Serial.print("Decoded LG: ");
  }
  else if (results-&gt;decode_type == JVC) {
    Serial.print("Decoded JVC: ");
  }
  else if (results-&gt;decode_type == AIWA_RC_T501) {
    Serial.print("Decoded AIWA RC T501: ");
  }
  else if (results-&gt;decode_type == WHYNTER) {
    Serial.print("Decoded Whynter: ");
  }
  Serial.print(results-&gt;value, HEX);
  Serial.print(" (");
  Serial.print(results-&gt;bits, DEC);
  Serial.println(" bits)");
  Serial.print("Raw (");
  Serial.print(count, DEC);
  Serial.print("): ");

  for (int i = 1; i &lt; count; i++) {
    if (i &amp; 1) {
      Serial.print(results-&gt;rawbuf[i]*USECPERTICK, DEC);
    }
    else {
      Serial.write('-');
      Serial.print((unsigned long) results-&gt;rawbuf[i]*USECPERTICK, DEC);
    }
    Serial.print(" ");
  }
  Serial.println();
}

void loop() {
  if (irrecv.decode(&amp;results)) {
    Serial.println(results.value, HEX);
    dump(&amp;results);
    irrecv.resume(); // Receive the next value
  }
}
</code></pre>

<p>Schematic wise:</p>

<p>one IR reciever with VCC and Ground connect and signal-out on pin 6</p>
 32827: <p>In the received RAW codes, the width of the modulated pulses is less than the expected value. And the width of the spaces is bigger than expected.</p>

<p>This is due to the lack of an infrared sensor.</p>

<p>Use infrared receiver another model. For example TSOP4838.</p>

<p>Or try reducing MARK_EXCESS in the <a href="https://github.com/z3t0/Arduino-IRremote/blob/master/IRremoteInt.h" rel="nofollow noreferrer">IRremoteInt.h</a> of the Arduino-IRremote library from 100 to 50 or 0.</p>



<pre class="lang-cpp prettyprint-override"><code>...
// Pulse parms are ((X*50)-100) for the Mark and ((X*50)+100) for the Space.
// First MARK is the one after the long gap
// Pulse parameters in uSec
//

// Due to sensor lag, when received, Marks  tend to be 100us too long and
//                                   Spaces tend to be 100us too short
#define MARK_EXCESS    0
...
</code></pre>

<p>And please increase the delay time in transmitter sketch (to avoid codes overlapping) :</p>

<pre class="lang-cpp prettyprint-override"><code>...
for (int i = 0; i &lt; 3; i++){ 
  irsend.sendNEC(0xFF6897, 32); 
  delay(200); 
  j = j + 1; 
}
...
</code></pre>
