Page 1 of 1

Need help to work with Panasonic AC

Posted: Wed May 29, 2019 8:40 am
by cpebrian
Hai All.

Today I am working with Infrared Transmitter and Receiver to turn ON and OFF my Panasonic AC. I using IRremote library by Ken Shirriff. Here is the link https://github.com/z3t0/Arduino-IRremote
I success get the raw data using both of program below. First I using example program by the library, it is IRrecvDumpV2. And this is the data show in my serial monitor.

Code: Select all

Encoding  : PANASONIC
Code      : 4004:7200000 (48 bits)
Timing[131]: 
     +3450, -1700     + 450, - 400     + 450, -1300     + 450, - 400
     + 450, - 400     + 450, - 400     + 500, - 350     + 500, - 400
     + 450, - 400     + 450, - 400     + 450, - 400     + 500, - 400
     + 450, - 400     + 450, - 400     + 450, -1300     + 450, - 400
     + 450, - 400     + 450, - 400     + 450, - 400     + 500, - 400
     + 450, - 400     + 450, - 400     + 450, -1300     + 450, -1250
     + 450, -1300     + 450, - 400     + 450, - 400     + 450, -1300
     + 450, - 400     + 450, - 400     + 450, - 400     + 450, - 400
     + 450, - 400     + 500, - 400     + 450, - 400     + 450, - 400
     + 450, - 400     + 500, - 400     + 450, - 400     + 450, - 400
     + 450, - 400     + 450, - 400     + 500, - 400     + 450, - 400
     + 450, - 400     + 450, - 400     + 500, - 400     + 450, - 400
     + 450, - 400     + 450, - 400     + 500, - 350     + 500, - 400
     + 450, - 400     + 450, - 400     + 450, - 400     + 500, - 400
     + 450, - 400     + 450, - 400     + 450, -1300     + 450, -1250
     + 450, - 400     + 450, - 400     + 500, - 400     + 450, - 400
     + 450, - 400     + 450
unsigned int  rawData[131] = {3450,1700, 450,400, 450,1300, 450,400, 450,400, 450,400, 500,350, 500,400, 450,400, 450,400, 450,400, 500,400, 450,400, 450,400, 450,1300, 450,400, 450,400, 450,400, 450,400, 500,400, 450,400, 450,400, 450,1300, 450,1250, 450,1300, 450,400, 450,400, 450,1300, 450,400, 450,400, 450,400, 450,400, 450,400, 500,400, 450,400, 450,400, 450,400, 500,400, 450,400, 450,400, 450,400, 450,400, 500,400, 450,400, 450,400, 450,400, 500,400, 450,400, 450,400, 450,400, 500,350, 500,400, 450,400, 450,400, 450,400, 500,400, 450,400, 450,400, 450,1300, 450,1250, 450,400, 450,400, 500,400, 450,400, 450,400, 450};  // PANASONIC 4004:7200000
unsigned int  addr = 0x4004;
unsigned int  data = 0x7200000;
sometimes I also got below data with the same program.

Code: Select all

Encoding  : UNKNOWN
Code      : E53352E7 (32 bits)
Timing[131]: 
     +3450, -1700     + 450, - 250     + 600, -1300     + 450, - 400
     + 450, - 300     + 550, - 300     + 550, - 400     + 500, - 250
     + 600, - 300     + 500, - 450     + 500, - 250     + 550, - 400
     + 500, - 400     + 450, - 400     + 450, -1300     + 450, - 200
     + 650, - 400     + 450, - 300     + 550, - 350     + 500, - 300
     + 600, - 400     + 400, - 450     + 450, -1300     + 450, -1250
     + 450, -1300     + 400, - 400     + 500, - 400     + 450, -1300
     + 400, - 300     + 600, - 250     + 600, - 300     + 550, - 250
     + 600, - 400     + 450, - 300     + 600, - 250     + 600, - 300
     + 550, - 300     + 550, - 300     + 550, - 400     + 500, - 300
     + 550, - 300     + 550, - 400     + 500, - 250     + 600, - 300
     + 550, - 300     + 550, - 300     + 550, - 400     + 450, - 350
     + 550, - 300     + 550, - 300     + 550, - 350     + 500, - 300
     + 600, - 300     + 500, - 350     + 550, - 300     + 550, - 300
     + 600, - 300     + 550, - 300     + 550, -1300     + 450, -1250
     + 450, - 400     + 450, - 300     + 550, - 350     + 550, - 300
     + 550, - 300     + 550
unsigned int  rawData[131] = {3450,1700, 450,250, 600,1300, 450,400, 450,300, 550,300, 550,400, 500,250, 600,300, 500,450, 500,250, 550,400, 500,400, 450,400, 450,1300, 450,200, 650,400, 450,300, 550,350, 500,300, 600,400, 400,450, 450,1300, 450,1250, 450,1300, 400,400, 500,400, 450,1300, 400,300, 600,250, 600,300, 550,250, 600,400, 450,300, 600,250, 600,300, 550,300, 550,300, 550,400, 500,300, 550,300, 550,400, 500,250, 600,300, 550,300, 550,300, 550,400, 450,350, 550,300, 550,300, 550,350, 500,300, 600,300, 500,350, 550,300, 550,300, 600,300, 550,300, 550,1300, 450,1250, 450,400, 450,300, 550,350, 550,300, 550,300, 550};  // UNKNOWN E53352E7
I also using other program to make sure the data is valid. I using code from analysIR blog https://www.analysir.com/blog/wp-conten ... als_10.txt
And got this result.

Code: Select all

Press the button on the remote now - once only

Raw: (439) 3468, -1724, 448, -404, 464, -1296, 444, -408, 464, -404, 464, -404, 468, -404, 464, -404, 468, -404, 464, -404, 468, -404, 464, -404, 464, -408, 464, -404, 464, -1296, 440, -408, 464, -408, 464, -404, 464, -408, 460, -408, 464, -408, 460, -408, 464, -1296, 444, -1296, 444, -1296, 444, -404, 464, -408, 460, -1300, 440, -408, 464, -408, 460, -408, 464, -404, 464, -408, 464, -404, 464, -408, 464, -404, 464, -408, 464, -404, 464, -408, 460, -408, 464, -408, 464, -404, 464, -404, 464, -408, 464, -404, 464, -408, 464, -404, 464, -408, 464, -404, 464, -408, 464, -404, 464, -408, 464, -404, 464, -408, 460, -408, 464, -408, 464, -404, 464, -404, 464, -1296, 444, -1296, 444, -408, 464, -404, 464, -408, 464, -404, 464, -408, 460, -10672, 3488, -1732, 444, -404, 464, -1296, 444, -408, 460, -408, 460, -412, 460, -408, 464, -404, 464, -408, 460, -408, 464, -408, 460, -408, 464, -428, 440, -408, 464, -1296, 444, -408, 460, -408, 464, -404, 464, -408, 460, -408, 464, -408, 464, -404, 464, -1296, 444, -1296, 444, -1296, 444, -404, 464, -408, 464, -1296, 444, -404, 464, -408, 460, -412, 460, -408, 460, -408, 464, -408, 460, -408, 464, -404, 464, -408, 464, -408, 460, -408, 464, -404, 464, -408, 460, -408, 464, -408, 464, -404, 464, -1296, 444, -1296, 444, -1296, 440, -412, 460, -408, 464, -404, 464, -1296, 444, -1296, 444, -404, 464, -1296, 444, -1296, 444, -408, 464, -404, 464, -408, 464, -404, 464, -408, 464, -404, 464, -404, 468, -404, 468, -404, 464, -1292, 444, -1296, 444, -1296, 444, -1296, 444, -1296, 444, -404, 464, -1296, 444, -408, 464, -1296, 440, -408, 460, -412, 460, -408, 464, -408, 464, -404, 468, -400, 468, -404, 464, -404, 468, -404, 464, -404, 464, -408, 468, -400, 468, -404, 464, -404, 492, -376, 468, -404, 468, -404, 464, -1292, 444, -1296, 444, -1296, 444, -408, 460, -412, 460, -404, 468, -404, 468, -400, 468, -404, 464, -404, 468, -404, 464, -404, 464, -1296, 444, -1296, 444, -1296, 444, -404, 468, -404, 464, -404, 468, -424, 444, -408, 464, -404, 468, -400, 464, -408, 464, -428, 444, -400, 468, -404, 492, -376, 468, -404, 468, -400, 468, -404, 464, -404, 468, -1292, 444, -408, 492, -376, 464, -408, 464, -404, 468, -400, 468, -428, 444, -1292, 448, -424, 444, -424, 448, -400, 468, -424, 444, -404, 492, -244, 600, -400, 472, -424, 448, -400, 464, -404, 464, -304, 572, -348, 520, -296, 572, -292, 580, -296, 572, -300, 572, -236, 632, -1296, 444, -344, 528, -284, 584, -1296, 448, -424, 444, -336, 532, -288, 584, 

Press the button on the remote now - once only

Raw: (439) 3464, -1728, 444, -404, 468, -1292, 448, -404, 464, -404, 468, -404, 464, -404, 468, -404, 464, -404, 468, -404, 464, -404, 468, -404, 464, -404, 464, -404, 468, -1292, 448, -404, 464, -404, 468, -404, 468, -400, 464, -408, 464, -404, 468, -400, 468, -1292, 444, -1296, 444, -1296, 444, -404, 468, -404, 468, -1292, 444, -408, 464, -404, 468, -400, 468, -404, 464, -404, 468, -404, 468, -400, 468, -404, 468, -400, 468, -404, 468, -400, 468, -400, 468, -404, 468, -400, 468, -404, 468, -400, 468, -404, 464, -404, 472, -400, 468, -400, 468, -404, 468, -400, 468, -400, 468, -404, 468, -404, 468, -400, 468, -404, 464, -404, 468, -400, 468, -404, 464, -1296, 444, -1296, 444, -404, 464, -408, 464, -404, 468, -404, 464, -404, 468, -10664, 3492, -1728, 444, -408, 460, -1296, 444, -408, 464, -408, 460, -408, 464, -408, 464, -404, 464, -404, 468, -404, 464, -404, 468, -404, 468, -400, 468, -400, 468, -1292, 444, -408, 464, -404, 468, -404, 464, -404, 464, -408, 464, -404, 468, -404, 464, -1296, 440, -1296, 444, -1296, 444, -408, 464, -404, 468, -1292, 444, -408, 464, -404, 464, -408, 464, -404, 468, -400, 468, -404, 468, -400, 468, -404, 464, -404, 472, -400, 464, -404, 468, -404, 464, -404, 468, -1292, 444, -408, 464, -404, 468, -1292, 444, -1296, 444, -1296, 440, -408, 464, -408, 464, -404, 464, -1296, 444, -1296, 444, -404, 464, -1296, 444, -1296, 444, -408, 464, -404, 464, -408, 464, -404, 464, -404, 468, -404, 468, -404, 464, -404, 464, -404, 468, -1292, 444, -1296, 444, -1296, 440, -1300, 444, -1296, 440, -408, 464, -1296, 444, -408, 464, -1292, 444, -408, 464, -404, 468, -404, 464, -408, 464, -400, 468, -404, 468, -404, 464, -404, 468, -404, 464, -404, 468, -404, 464, -404, 464, -404, 468, -404, 464, -408, 464, -404, 464, -404, 468, -1292, 444, -1296, 444, -1296, 444, -404, 464, -408, 464, -408, 464, -404, 464, -404, 472, -400, 468, -400, 468, -404, 468, -400, 468, -1292, 444, -1296, 444, -1296, 444, -404, 464, -408, 464, -404, 468, -404, 464, -404, 468, -404, 464, -404, 468, -404, 468, -400, 464, -428, 444, -404, 468, -424, 444, -404, 468, -400, 468, -404, 464, -404, 464, -1296, 444, -408, 464, -404, 464, -408, 464, -404, 464, -408, 464, -404, 468, -1292, 448, -300, 568, -404, 464, -428, 444, -400, 468, -404, 464, -408, 464, -428, 444, -424, 468, -248, 596, -404, 468, -300, 568, -296, 576, -296, 572, -296, 576, -404, 464, -300, 572, -1292, 452, -1288, 448, -340, 528, -292, 580, -1292, 448, -292, 580, -332, 536, -344, 524, 

Press the button on the remote now - once only
Then I try send the raw data but nothing happen to my AC, even bip sound when I using original remote. This is My code to send raw data.

Code: Select all

#include <IRremote.h>

IRsend irsend;

void setup()
{

}

void loop() {
  int khz = 38; // 38kHz carrier frequency for the NEC protocol
  //unsigned int irSignal[] = {3450,1700,450,400,450,1300,450,400,450,400,450,400,500,350,500,400,450,400,450,400,450,400,500,400,450,400,450,400,450,1300,450,400,450,400,450,400,450,400,500,400,450,400,450,400,450,1300,450,1250,450,1300,450,400,450,400,450,1300,450,400,450,400,450,400,450,400,450,400,500,400,450,400,450,400,450,400,500,400,450,400,450,400,450,400,450,400,500,400,450,400,450,400,450,400,500,400,450,400,450,400,450,400,500,350,500,400,450,400,450,400,450,400,500,400,450,400,450,400,450,1300,450,1250,450,400,450,400,500,400,450,400,450,400,450};  // PANASONIC 4004:7200000
  //unsigned int irSignal[] = {3450,1700,450,250,600,1300,450,400,450,300,550,300,550,400,500,250,600,300,500,450,500,250,550,400,500,400,450,400,450,1300,450,200,650,400,450,300,550,350,500,300,600,400,400,450,450,1300,450,1250,450,1300,400,400,500,400,450,1300,400,300,600,250,600,300,550,250,600,400,450,300,600,250,600,300,550,300,550,300,550,400,500,300,550,300,550,400,500,250,600,300,550,300,550,300,550,400,450,350,550,300,550,300,550,350,500,300,600,300,500,350,550,300,550,300,600,300,550,300,550,1300,450,1250,450,400,450,300,550,350,550,300,550,300,550};  // UNKNOWN E53352E7
  //unsigned int irSignal[] = {3468,1724,448,404,464,1296,444,408,464,404,464,404,468,404,464,404,468,404,464,404,468,404,464,404,464,408,464,404,464,1296,440,408,464,408,464,404,464,408,460,408,464,408,460,408,464,1296,444,1296,444,1296,444,404,464,408,460,1300,440,408,464,408,460,408,464,404,464,408,464,404,464,408,464,404,464,408,464,404,464,408,460,408,464,408,464,404,464,404,464,408,464,404,464,408,464,404,464,408,464,404,464,408,464,404,464,408,464,404,464,408,460,408,464,408,464,404,464,404,464,1296,444,1296,444,408,464,404,464,408,464,404,464,408,460,10672,3488,1732,444,404,464,1296,444,408,460,408,460,412,460,408,464,404,464,408,460,408,464,408,460,408,464,428,440,408,464,1296,444,408,460,408,464,404,464,408,460,408,464,408,464,404,464,1296,444,1296,444,1296,444,404,464,408,464,1296,444,404,464,408,460,412,460,408,460,408,464,408,460,408,464,404,464,408,464,408,460,408,464,404,464,408,460,408,464,408,464,404,464,1296,444,1296,444,1296,440,412,460,408,464,404,464,1296,444,1296,444,404,464,1296,444,1296,444,408,464,404,464,408,464,404,464,408,464,404,464,404,468,404,468,404,464,1292,444,1296,444,1296,444,1296,444,1296,444,404,464,1296,444,408,464,1296,440,408,460,412,460,408,464,408,464,404,468,400,468,404,464,404,468,404,464,404,464,408,468,400,468,404,464,404,492,376,468,404,468,404,464,1292,444,1296,444,1296,444,408,460,412,460,404,468,404,468,400,468,404,464,404,468,404,464,404,464,1296,444,1296,444,1296,444,404,468,404,464,404,468,424,444,408,464,404,468,400,464,408,464,428,444,400,468,404,492,376,468,404,468,400,468,404,464,404,468,1292,444,408,492,376,464,408,464,404,468,400,468,428,444,1292,448,424,444,424,448,400,468,424,444,404,492,244,600,400,472,424,448,400,464,404,464,304,572,348,520,296,572,292,580,296,572,300,572,236,632,1296,444,344,528,284,584,1296,448,424,444,336,532,288,584}; //Code From analysIR
  unsigned int irSignal[] = {3464,1728,444,404,468,1292,448,404,464,404,468,404,464,404,468,404,464,404,468,404,464,404,468,404,464,404,464,404,468,1292,448,404,464,404,468,404,468,400,464,408,464,404,468,400,468,1292,444,1296,444,1296,444,404,468,404,468,1292,444,408,464,404,468,400,468,404,464,404,468,404,468,400,468,404,468,400,468,404,468,400,468,400,468,404,468,400,468,404,468,400,468,404,464,404,472,400,468,400,468,404,468,400,468,400,468,404,468,404,468,400,468,404,464,404,468,400,468,404,464,1296,444,1296,444,404,464,408,464,404,468,404,464,404,468,10664,3492,1728,444,408,460,1296,444,408,464,408,460,408,464,408,464,404,464,404,468,404,464,404,468,404,468,400,468,400,468,1292,444,408,464,404,468,404,464,404,464,408,464,404,468,404,464,1296,440,1296,444,1296,444,408,464,404,468,1292,444,408,464,404,464,408,464,404,468,400,468,404,468,400,468,404,464,404,472,400,464,404,468,404,464,404,468,1292,444,408,464,404,468,1292,444,1296,444,1296,440,408,464,408,464,404,464,1296,444,1296,444,404,464,1296,444,1296,444,408,464,404,464,408,464,404,464,404,468,404,468,404,464,404,464,404,468,1292,444,1296,444,1296,440,1300,444,1296,440,408,464,1296,444,408,464,1292,444,408,464,404,468,404,464,408,464,400,468,404,468,404,464,404,468,404,464,404,468,404,464,404,464,404,468,404,464,408,464,404,464,404,468,1292,444,1296,444,1296,444,404,464,408,464,408,464,404,464,404,472,400,468,400,468,404,468,400,468,1292,444,1296,444,1296,444,404,464,408,464,404,468,404,464,404,468,404,464,404,468,404,468,400,464,428,444,404,468,424,444,404,468,400,468,404,464,404,464,1296,444,408,464,404,464,408,464,404,464,408,464,404,468,1292,448,300,568,404,464,428,444,400,468,404,464,408,464,428,444,424,468,248,596,404,468,300,568,296,576,296,572,296,576,404,464,300,572,1292,452,1288,448,340,528,292,580,1292,448,292,580,332,536,344,524}; //Code From analysIR
  
  irsend.sendRaw(irSignal, sizeof(irSignal) / sizeof(irSignal[0]), khz); //Note the approach used to automatically calculate the size of the array.
  delay(5000); //In this example, the signal will be repeated every 5 seconds, approximately.
}
I also used code above to my other AC with NEC protocol. I read the remote data and trasmit the raw data to my AC and it worked very well. But nothing happen when I used to my panasonic AC.

Here is my original Panasonic AC remote
remote control AC.png
I use KY-022 IR Receiver And KY-005 IR Transmitter. I connected the +5v transmitter to external power supply (5V/5A) to avoid power issue. And connect all Gnd together (Power Suppy, Arduino, and IR Transmitter).

Please help me regarding this Problem.
Sorry For My Bad English.

Re: Need help to work with Panasonic AC

Posted: Wed May 29, 2019 11:44 am
by AnalysIR
I checked the signal used in the last piece of the code you posted and it decodes OK with AnalysIR to a 216 bit Panasonic AC signal.


try the following:

Code: Select all

/*
Automatically Generated by AnalysIR - Batch Export Utility
Registered to: xxxxxxxx
Session History
Type : Key : Value : Bits : Carrier Frequency (kHz)
0 : PANASONIC128_216_280AC :  : 400407200000006040040720009C6C01F5000070070000810000C8 : 216 : 0
Note: Be sure to use the correct Carrier frequency, for each individual signal, as(or if) indicated above
*/

// NB: Not all protocols are supported by IRremote or IRLib. You may need to edit the code below manually
// Automatically Generated by AnalysIR for xxxxxxxx, visit https://www.AnalysIR.com/ or email info@....... for further details
int khz=38; //NB Change this default value as necessary to the correct carrier frequency


uint16_t Signal_0_0[] = {3500,1750,435,435,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,1300,435,1300,435,435,435,435,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,1300,435,435,435,435,435,435,435,435,435,435,435,10664,3500,1750,435,435,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,1300,435,1300,435,435,435,435,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,435,435,435,435,1300,435,1300,435,1300,435,435,435,435,435,435,435,1300,435,1300,435,435,435,1300,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,1300,435,1300,435,1300,435,1300,435,435,435,1300,435,435,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,1300,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,1300,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435,1300,435,1300,435,435,435,435,435,1300,435,435,435,435,435,435,435}; //AnalysIR Batch Export (IRremote) - RAW

irsend.sendRaw(Signal_0_0, sizeof(Signal_0_0)/sizeof(int), khz); //AnalysIR Batch Export (IRremote) - RAW
 // AnalysIR IR Protocol: PANASONIC128_216_280AC, Key:  
If this does not work, then it is likely your IR emitter circuit, that is the problem.

There are examples of good IR circuits on our blog.