IR Send wrong timing

Hello,
I have a problem with the IR library (GitHub - Arduino-IRremote/Arduino-IRremote: Infrared remote library for Arduino: send and receive infrared signals with multiple protocols)
I have one Arduino Uno connected with an IR Transmiter and one with an IR Reciever.
When I press a key on my AC remote, the reciever reccords the following data:

Encoding  : NEC
Code      : C3FE5074 (32 bits)
Timing[212]: 
     -29584
     +9050, -4400     + 650, -1650     + 650, -1650     + 600, - 500
     + 650, - 500     + 600, - 500     + 650, - 500     + 600, -1650
     + 650, -1700     + 600, -1650     + 650, -1650     + 600, -1650
     + 650, -1650     + 650, -1650     + 600, -1650     + 650, -1650
     + 650, - 500     + 600, - 500     + 650, -1650     + 650, - 500
     + 600, -1650     + 650, - 500     + 600, - 500     + 650, - 500
     + 600, - 500     + 650, - 500     + 600, -1700     + 600, -1650
     + 650, -1650     + 650, - 500     + 600, -1650     + 650, - 500
     + 600, - 550     + 600, - 500     + 650, - 500     + 600, - 500
     + 600, - 550     + 600, - 500     + 600, -1700     + 600, - 500
     + 650, - 500     + 650, - 500     + 600, - 500     + 650, - 500
     + 600, - 500     + 650, - 500     + 600, - 500     + 650, - 500
     + 600, - 550     + 600, - 500     + 650, - 500     + 600, - 500
     + 650, - 500     + 600, - 500     + 600, - 550     + 600, -1700
     + 600, - 500     + 600, - 550     + 600, - 550     + 550, - 550
     + 600, - 500     + 600, - 550     + 600, - 500     + 650, - 500
     + 600, - 550     + 600, - 500     + 600, - 550     + 600, - 500
     + 600, - 550     + 600, - 500     + 650, - 500     + 600, - 500
     + 650, - 500     + 600, - 550     + 600, - 500     + 600, - 550
     + 600, - 500     + 600, - 550     + 600, -1700     + 550, - 550
     + 600, - 550     + 600, - 500     + 600, - 550     + 600, - 500
     + 600, - 550     + 600, - 550     + 550, - 550     + 600, - 550
     + 550, - 550     + 600, -1700     + 600, - 500     + 650, - 500
     + 600, - 500     + 650, - 500     + 600, - 500     + 650, - 500
     + 600, - 550     + 600, -1700     + 550, -1700     + 600, - 500
     + 650, -1650     + 600, -1700     + 600, -1700     + 600, -1650
     + 650, -1650     + 600, 
unsigned int  rawData[213] = {8456, 181,88, 13,33, 13,33, 12,10, 13,10, 12,10, 13,10, 12,33, 13,34, 12,33, 13,33, 12,33, 13,33, 13,33, 12,33, 13,33, 13,10, 12,10, 13,33, 13,10, 12,33, 13,10, 12,10, 13,10, 12,10, 13,10, 12,34, 12,33, 13,33, 13,10, 12,33, 13,10, 12,11, 12,10, 13,10, 12,10, 12,11, 12,10, 12,34, 12,10, 13,10, 13,10, 12,10, 13,10, 12,10, 13,10, 12,10, 13,10, 12,11, 12,10, 13,10, 12,10, 13,10, 12,10, 12,11, 12,34, 12,10, 12,11, 12,11, 11,11, 12,10, 12,11, 12,10, 13,10, 12,11, 12,10, 12,11, 12,10, 12,11, 12,10, 13,10, 12,10, 13,10, 12,11, 12,10, 12,11, 12,10, 12,11, 12,34, 11,11, 12,11, 12,10, 12,11, 12,10, 12,11, 12,11, 11,11, 12,11, 11,11, 12,34, 12,10, 13,10, 12,10, 13,10, 12,10, 13,10, 12,11, 12,34, 11,34, 12,10, 13,33, 12,34, 12,34, 12,33, 13,33, 12,0};  // NEC C3FE5074
unsigned int  data = 0xC3FE5074;

Using the following code I try to reproduce the signal on the transmitter:

#include <IRremote.h>

IRsend irsend;

void setup()
{
}

void loop() {
	
		irsend.sendNEC(0xC3FE5074, 32);
		delay(2000);

}

but I get the following results on the reciever:

Encoding  : NEC
Code      : C3FE5074 (32 bits)
Timing[68]: 
     -37804
     +9150, -4500     + 600, -1650     + 650, -1600     + 650, - 500
     + 600, - 550     + 600, - 500     + 650, - 500     + 600, -1650
     + 650, -1600     + 650, -1600     + 650, -1650     + 600, -1650
     + 650, -1650     + 600, -1650     + 650, -1600     + 650, -1650
     + 600, - 500     + 650, - 500     + 600, -1650     + 650, - 500
     + 600, -1650     + 650, - 500     + 600, - 550     + 600, - 500
     + 600, - 550     + 600, - 550     + 550, -1700     + 600, -1650
     + 600, -1650     + 650, - 500     + 600, -1700     + 550, - 550
     + 600, - 500     + 600, 
unsigned int  rawData[69] = {47942, 183,90, 12,33, 13,32, 13,10, 12,11, 12,10, 13,10, 12,33, 13,32, 13,32, 13,33, 12,33, 13,33, 12,33, 13,32, 13,33, 12,10, 13,10, 12,33, 13,10, 12,33, 13,10, 12,11, 12,10, 12,11, 12,11, 11,34, 12,33, 12,33, 13,10, 12,34, 11,11, 12,10, 12,0};  // NEC C3FE5074
unsigned int  data = 0xC3FE5074;

The code is the same but the data is not. When i try it near the AC it does not react to the code.
Does anyone have any experience with this?
Thank you.

bump

I'm not sure about sendNEC(), but when sending the Sony codes, they need to be sent 3 times. The example does this 40mS apart. Have you tried that?

I've only used 'sendSony()', so might be completely on the wrong track, but thought I'd mention it just in case it helps, since no one else has replied with suggestions yet.

IRremote measures only to the nearest 50 uSes by default & IR receivers distort the signal also.

Therefore you will also get different timings.

Change the values in your first post to the following:
9000
4500
560
1680
and it should work using sendRAW

You will also need to set the carrier frequency ... probably 38KHz

Alternatively, use the following to record the signal - as it is more accurate than IRRemote.

Thank you AnalysIR
Using the sketch from your site i was able to decode the signal and then reproduce it.
I got values like:
{9032, 4480, 604, 1680, 604, 1680, 600, 540, 600, 540, 572, 544, 596, 544, 572, 1684, 624, 1688, 596, 1684, 596, 1688, 596, 1688, 608, 532, 596, 544, 568, 548, 596, 1688, 592, 576, 564, 1692, 592, 548, 596, 1660, 620, 1664, 620, 548, 564, 548, 596, 548, 588, 552, 568, 1692, 612, 1668, 616, 552, 564, 1692, 592, 1692, 588, 1696, 612, 524, 596, 572, 572, 544, 584, 556, 568, 548, 572, 544, 592, 548, 564, 1696, 596, 544, 588, 1692, 620, 548, 564, 552, 588, 552, 564, 552, 584, 560, 560, 552, 576, 540, 588, 580, 560, 556, 564, 552, 580, 560, 560, 556, 580, 560, 556, 560, 580, 560, 572, 1712, 580, 560, 564, 572, 560, 560, 560, 556, 580, 564, 548, 568, 572, 568, 564, 596, 528, 584, 560, 584, 528, 588, 556, 584, 528, 588, 552, 588, 532, 584, 552, 588, 552, 592, 524, 592, 548, 592, 524, 588, 552, 588, 528, 1708, 576, 588, 552, 588, 556, 584, 528, 588, 556, 588, 524, 588, 548, 596, 524, 588, 540, 576, 556, 612, 524, 1708, 576, 588, 556, 584, 528, 588, 548, 592, 528, 588, 548, 568, 552, 616, 524, 1708, 576, 1708, 576, 588, 556, 584, 532, 1700, 580, 568, 576, 564, 572, 1688, 600, },

And the AC receives them perfectly. Only one more issue.
When i read the codes in NEC format i get results like: C3FE5074, and all the characters have meaning.
I saw that the first define the AC mode,
The second two give the temperature,
the third two the skip mode etc.

Does anyone know how I can get a similar logic from the above raw code? Or do I need an array for every possble settings combination?

On AnalysIR your signal decodes to OGAC104
as follows: 104 data bits as below in Hex

Row: 1
Hex: C3E2B0DC0500010000040080C9
Binary:
11000011 11100010 10110000 11011100
00000101 00000000 00000001 00000000
00000000 00000100 00000000 10000000
11001001

Your next step is to 'reverse engineer the protocol, to identify the indiviual bit patterns for fields like temperature etc and of course the checksum. There are quite a few posts on our blog covering this and related topics:
see Air Conditioner Archives - AnalysIR Blog

There are also examples of sending signals with long codes from HEX.