IR Emitter works for most stuff, but not AC Units

Hey there!

I'm working on a simple internet controlled IR Remote, but I ran in a problem I just can't explain.

I'm recording the IR codes and playing them back, and that's working flawlessly - for must stuff. I can control my TV, toys, some remote controlled fans, the car radio, but air conditioners simply won't accept my signals!

First, I was using a single LED connected directly to the arduino and I had to get REAL close to the AC unit sensor for it to work (1 inch/2cm approx.), so I thought I was just not driving the IR LED properly.
I'm now triggering 5 IR LEDs in series using a BC338 and a 3.3ohms resistor on the collector, plus a 560 ohms for the base. It still doesn't trigger the AC! Now it won't work even if I get really close to it. All the other stuff are still working, and using a camera, the LEDs are shining a lot brighter.

Things I've tried:

  • Sending the code multiple times
  • Sending it in various frequencies (35 to 40khz)
  • Using the code from a generic universal remote
  • Sending a "blank" (4 bytes of 0xFF) burst right after the signal (some IR codes read that)

Here's an example of data extracted from my IR sensor:

  gelado18[BIT_LEN] = 11;
  gelado18[BIT_START_H] = 180;
  gelado18[BIT_START_L] = 90;
  gelado18[BIT_DATA_H] = 11;
  gelado18[BIT_DATA_L] = 34;
  gelado18[BIT_DATA_LEN] = 6;
  gelado18[BIT_DATA + 0] = 193;
  gelado18[BIT_DATA + 1] = 96;
  gelado18[BIT_DATA + 2] = 0;
  gelado18[BIT_DATA + 3] = 64;
  gelado18[BIT_DATA + 4] = 0;
  gelado18[BIT_DATA + 5] = 0;

I'm using an Arduino Mega 1280 and a random library I've found on the internet (it was the only I could find that would compile and work without having to mess a lot with the code).

Air conditioner codes are incredibly, incredibly long. Are you sure you have captured the full length? I have tried various libraries and they are not AC friendly at all when it comes to capturing AC IR codes. This is the only method that worked Air Conditioner Record long Infrared Remote control signals - Arduino. The full sketch to capture the IR code is on the website. You can then use the IRSendRaw from the IRRemote library to re-transmit your captured code.

Yay!

It worked flawlessly. Thanks a lot for the input! This solved the "mystery", but I wonder why that isn't mentioned in the library stuff :frowning:

Just a note: It records negative values using that library, just make sure to make them all absolute and it's good to go :slight_smile:

It took me many wasted hours of testing before figuring it out too initially, and you are right about the negative values part as well :slight_smile:

Great to read that our sketch helped.

FYI: IRremote only measures to +/- 50uSec accuracy & was never designed to handle AC codes originally, which i why we made the sketch available. All IR receivers add in some extra distortion of timings as well.