We’re rewarding the question askers & reputations are being recalculated! Read more.
3 of 5 added 1636 characters in body

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.

Cited from the documentation:

Depending on the type of IR receiver hardware you are using, the length of a mark pulse is over reported and the length of a space is underreported.

Based on tests performed by Ken Shirriff who wrote the original IRremote library upon which this library is based, the length of a received mark is about 100µs too long and space is 100µs too short. IRLib1.x used that value however my own experience is that 50µs is a better value so that is the default for IRLib2.

You can change that value based on your own experiences by changing the value for example…

myReceiver.markExcess= 75;

Please find this value experimentally (try at first 100). To do this, change the receiver's sketch:

...
void setup() {
  gotOne=false; gotNew=false;
  codeProtocol=UNKNOWN; 
  codeValue=0; 
  Serial.begin(9600);
  delay(2000);while(!Serial);//delay for Leonardo
  Serial.println(F("Send a code from your remote and we will record it."));
  Serial.println(F("Type any character and press enter. We will send the recorded code."));
  Serial.println(F("Type 'r' special repeat sequence."));
  myReceiver.enableIRIn(); // Start the receiver
  myReceiver.markExcess= 100; // by default is 50
}
...

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; 
}
...