IR-Emitter not working


I want to make a universal remote for TV and all my other electronic devices with IR-Emitter.
I was able to read HEX-Codes from my remote,

Now my Problem: I want to send a HEX-Code, which I got from my remote with my Arduino and IR-Emitter. But my TV does not react to this IR-Code and I really don't know why.

I am using the IRremote library by shirriff. My sketch is really short and simple. So I am wondering what I am doing wrong:

#include <IRremote.h>
IRsend irsend;
void setup()
void loop()  
  irsend.sendNEC(0xA0D47DD3, 12); 

What I already tried:

  • tested if the IR-Transmitter is not dead by using my smartphone camera (and it is working)
  • tried to use other IR-Transmitter
  • tried to user different codes from different tutorials

This is the first starter-project which makes some issues to me. I hope you can help me.

IR-remotes have different carrier-frequencies 36 kHz, 38 kHz, 40 kHz.
And there are different signal-definitions (signal-codecs) for different brands

If your signal does not match the carrier-frequency and the signal-definition the receiver will "not understand" the signal.

There are modules that send on different carrier-frequencies.

Is your IR-device a simple IR-diode or is it a module that creates the carrier-frequency on the module.

An IR-diode would need to be switched on/off with the carrier-frequency and in pulses representing the bitstream.

A module that creates the carrier-frequency on its own needs only the bitstream.

So did you analyse what carrierfrequency the original remote is creating? Can you provide a datasheet of the IR-device?

best regards Stefan

Ah okay I think I understand. But I didn't found what the carrier frequency of my TV is. I have an Philipps 37PFL5604H/12. It is a german brand. I don't know, if you know it. But I'll search for it. Maybe I find it and I will write again

change the 12 to 38 and try that.

Does also not work :frowning:

Replace the IR diode by e.g. a red one and try again. Do you see the LED blink at least once?

  1. Can you explain how you obtained this code and determined that the protocol was NEC ?
  2. Which version of the IR library are you using and did you use the same version of the library to obtain that code? Newer versions of the library appear to reverse both the byte order and the order of the bits within each byte for some protocols, including NEC.

You posted some kind of a picture which is not a real fotgraphic picture.
So it even unclear of you are using a simple IR-diode or a IR-send-module.
The code to use a IR-diode is substantial DIFFERENT from a code to use a IR-modul (with integrated carrier-frequency-creation)
So please post FOTOGRAPHIC pictureS made with your smartphone. Make pictures of both sides if there is a PCB.

Philipps uses RC5-encoding.
I guess you must adjust the encoding to RC5
Take a look into the documentation

not sure how to use the functions maybe SendRC5 is sufficient

best regards Stefan

My understanding is that the second argument is the number if bits to send. At least it was in the older versions of IRremote. It seems off that one would use all 32 bits to hold a 12-bit number. :frowning:

The new IRremote sendNEC() has more arguments, starting with 'address' and 'command'. There is a sendNECRaw(data, numberOfRepeats) and a sendNECMSB(data, nbits) which is compatible with codes from the older libraries.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.