Unknown manufacturer in controlling TV with Ir LED

Hello,

I am trying to make a system where I can control my TV using an IR LED with an arduino nano or uno. I have been able to get my TV to turn off and on, as well as a few other function that are related to the TV specifically. However, I can't find out how to control the cable (channels) with the LED. When I try to find out the manufacturer (so I know which "send__()" to use), I am getting responses of "unknown". This is the code I am using:

#include <IRremote.h>
 
// Define sensor pin
const int RECV_PIN = 4;
 
// Define IR Receiver and Results Objects
IRrecv irrecv(RECV_PIN);
decode_results results;
 
void setup(){
  // Serial Monitor @ 9600 baud
  Serial.begin(9600);
  // Enable the IR Receiver
  irrecv.enableIRIn();
}
 
void loop(){
  if (irrecv.decode(&results)){
        Serial.println(results.value, HEX);
        switch (results.decode_type){
            case NEC: 
              Serial.println("NEC"); 
              break;
            case SONY: 
              Serial.println("SONY"); 
              break;
            case RC5: 
              Serial.println("RC5"); 
              break;
            case RC6: 
              Serial.println("RC6"); 
              break;
            //case DISH: 
            //  Serial.println("DISH"); 
              break;
            case SHARP: 
              Serial.println("SHARP"); 
              break;
            case JVC: 
              Serial.println("JVC"); 
              break;
            //case SANYO: 
            //  Serial.println("SANYO"); 
              break;
            //case MITSUBISHI: 
            //  Serial.println("MITSUBISHI"); 
              break;
            case SAMSUNG: 
              Serial.println("SAMSUNG"); 
              break;
            case LG: 
              Serial.println("LG"); 
              break;
            case WHYNTER: 
              Serial.println("WHYNTER"); 
              break;
            //case AIWA_RC_T501: 
            //  Serial.println("AIWA_RC_T501"); 
              break;
            case PANASONIC: 
              Serial.println("PANASONIC"); 
              break;
            case DENON: 
              Serial.println("DENON"); 
              break;
          default:
            case UNKNOWN: 
              Serial.println("UNKNOWN"); 
              break;
          }
        irrecv.resume();
 }
}

(note this is not my code, I have modified it from something I found online).

When I hit any buttons that control my cable, I get strange responses in the serial monitor. I get things like this:

37910D
UNKNOWN
FFFFFFFF
UNKNOWN
37111D
UNKNOWN
FFFFFFFF
UNKNOWN

Is there any way I can still control the cable of the TV with the LED? I read that you can send values raw, but I didn't understand how I do this. For example, the TV which is sony needs each signal to be modulated three times. How would I know if something similar needs to be done with my cable? If you have any ideas on how I could send the signal, or on other ways I could control the cable with an ir LED, I would love to hear them.

Thanks in advance.

Different brands use different codes and even the same brand can use different codes.
Maybe other helpers would like to know which brand "my TV" is.

Do you have the cable tuner remote? What brand is the cable tuner?

Do you have an IR receiver that you can use to decode IR signals with your Arduino?

Try ReceiveDemo example

So it's the cable box that selects the channel number, not the TV. What's the make and model of the cable box, and its remote?

My TV is a sony TV. When I am clicking buttons that are connected to the TV itself, I have no problem (the check manufacturer code shown in the original post returns SONY).

That is not the problem, my problem is when I try and click buttons connected to my cable system. Then I am getting the UNKNOWN text in the serial monitor. My cable box is the scientific atlanta explorer 4290.

My cable box is the scientific atlanta explorer 4290. My remote is the URC1056B03. The remote appears to be able to run a variety of signals depending on your cable box. However, I don't know what signals it is using to control my box.

My cable box is the scientific atlanta explorer 4290. My remote is the URC1056B03.
I do have a IR receiver I can use to decode IR signals. For example, when I click channel 1, I get this code:
36113D
FFFFFFFF

The issue is that to send the hex code (36113D), I need to use the correct IRremote protocol (Eg sendSony(), sendNEC(), etc) so that it modulates correctly. Do you know how I could still send the code to the box?

I couldn't find any information on your cable box. But you might try using the IRMP library to decode the remote. It can decode 50 different protocols - a lot more than IRRemote.

Another possibility is to use raw receive and transmit. I've never used it, but the idea is it records the times on and off for each bit, and then duplicates that on sending. It doesn't have to know what the protocol is. Maybe someone else here can provide more information on raw.

Ok, thank you for the suggestion. I'll look in to using the raw receive.

I think it may help to see if you can first get raw receive and transmit working for the Sony remote. That would confirm that your code is working properly.

Edit: But if it works for Sony, but not for Scientific Atlanta, it could be because SA uses some frequency other that 38KHz to modulate. In that case you would need a scope to figure out what's going on. But almost all remotes use 38KHz, so hopefully SA does too.

That nice Mr Google found this code list ..

Any use?

That is a good idea, I'll make sure the code works using the Sony transmissions. Hopefully it is 38kHz.

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