The Stack Overflow podcast is back! Listen to an interview with our new CEO.
5 added 50 characters in body
source | link

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

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.

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

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; 
}
...
4 deleted 796 characters in body
source | link

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:Use infrared receiver another model. For example TSOP4838.

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 experimentallyOr try reducing MARK_EXCESS in the (try at firstIRremoteInt.h of the Arduino-IRremote library from 100) to 50 or 0. To do this, change the receiver's sketch:

  
...
void// setupPulse parms are ((X*50)-100) {
for the gotOne=false;Mark gotNew=false;
and ((X*50)+100) codeProtocol=UNKNOWN;for the Space.
// First codeValue=0;MARK 
 is the Serial.begin(9600);
one after delay(2000);while(!Serial);the long gap
//delay forPulse Leonardoparameters in uSec
//

// Due Serial.println(F("Sendto asensor codelag, fromwhen yourreceived, remoteMarks and wetend willto recordbe it."));100us too long and
//  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  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; 
}
...

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

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.

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; 
}
...
    Post Undeleted by AltAir
3 added 1636 characters in body
source | link

The transmission timeIn the received RAW codes, the width of the NEC codemodulated pulses is 67less than the expected value.5 ms 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(150); 
     j = j + 1; 
}
...
for (int i = 0; i < 3; i++){ 
  irsend.sendNEC(0xFF6897, 32); 
  delay(200); 
  j = j + 1; 
}
...

The transmission time of the NEC code is 67.5 ms. Please increase the delay time:

for (int i = 0; i < 3; i++){ 
     irsend.sendNEC(0xFF6897, 32); 
     delay(150); 
     j = j + 1; 
}

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; 
}
...
    Post Deleted by AltAir
2 edited body
source | link
1
source | link