//Include IR remote and Button libraries #include #include #include IRsend irsend; //create Button objects, assign pin number and mode Button pinky = Button(12,PULLDOWN);//Power On TV and AMVR Button uncage = Button(2,PULLDOWN);//Select Mode CBL/SAT, Button trigger = Button(4,PULLDOWN);//Volume Up/Down Button pickle = Button(5,PULLDOWN); //Select/enter Button Button up = Button(6,PULLDOWN);//Arrow Up Button down = Button(7,PULLDOWN); //Arrow Down Button left = Button(8,PULLDOWN);//Arrow Left Button right = Button(9,PULLDOWN); //Arrow Right // setup arrays for raw IR codes //unsigned int powerOn[68] = {4350,4600,450,1750,500,1750,500,1750,500,650,450,650,500,650,450,650,450,650,450,1800,450,1800,450,1800,500,650,400,700,400,700,450,700,400,750,400,650,450,1800,500,650,450,700,400,700,400,700,500,650,400,700,450,1850,350,700,450,1850,400,1800,450,1800,400,1800,450,1850,450,1750,500}; unsigned int powerOn[68] = {4450,4500,550,1700,500,1750,500,1750,500,600,550,600,500,600,550,600,500,600,550,1700,550,1700,550,1700,500,600,550,600,500,600,550,600,500,650,500,600,550,1700,500,650,500,600,550,600,500,600,550,600,500,600,550,1700,550,600,500,1700,550,1700,550,1700,550,1700,500,1750,500,1750,500}; unsigned int channelDown[19] = {5950,1250,1150,1250,550,650,550,650,550,650,1150,1200,1150,650,1150,650,1150,1250,550}; unsigned int channelUp [19] = {5900,1300,1150,1250,550,650,500,700,500,650,1150,1250,550,1250,1150,650,1150,650,500}; int pwrMode = 0; // What mode is the pinky switch in? void setup(){ Serial.begin(9600);//Start serial logging for troubleshooting pinMode(12,INPUT); pinMode(2,INPUT); pinMode(4,INPUT); pinMode(5,INPUT); pinMode(6,INPUT); pinMode(7,INPUT); pinMode(8,INPUT); pinMode(9,INPUT); } byte pressCount1 = 0; byte pressCount2 = 0; byte pressCount3 = 0; void loop(){ //Pinky Switch if(pinky.isPressed()){ irsend.sendRaw(powerOn,68,38); // Samsung Plasma power toggle delay(10); irsend.sendNEC (0x4B36D32C,32); //Onkyo AVR Power On code delay(10); Serial.println("Power On"); } //Pickle Button if (pickle.isPressed()) { irsend.sendNEC (0x4B4023DC,32); //Select/Enter delay(10); //irsend.sendNEC (0x75A956A7,32); //Select/Enter Cbl/Sat mode Serial.println("Enter Pressed"); } //Trigger Switch Volume UP/DOWN if (trigger.isPressed()){ pressCount1++; switch(pressCount1){ case 1: { while (trigger.isPressed()) irsend.sendNEC (0x4BB640BF,32); //Volume Up code delay(40); Serial.println("Volume UP"); break; } case 2: { while (trigger.isPressed()) irsend.sendNEC (0x4BB6C03F,32); // Volume Down code delay(40); Serial.println("Volume Down"); pressCount1 = 0; break; } } } //Missile uncage Button Multi-select if (uncage.uniquePress()){ pressCount2++; switch(pressCount2){ { case 1: irsend.sendNEC (0x4B40E11E,32); //Net/USB mode ; delay(40); Serial.println("NET/USB Mode"); break; case 2: irsend.sendNEC (0x4BB6708F,32); //CBL/SAT mode delay(40); Serial.println("CBL/SAT Mode"); break; case 3: irsend.sendNEC (0x4B3551AE,32);//IPod Port delay(40); Serial.println("Ipod PORT Mode"); pressCount2 = 0; break; } }} //China hat switch UP if(up.isPressed()){ irsend.sendRaw(channelUp,19,38); // Channel UP delay(100); irsend.sendNEC (0x4B4003FC,32); //Arrow Up Net/USB mode delay(100); Serial.println("China Hat UP"); } //China hat switch DOWN if(down.isPressed()){ irsend.sendRaw(channelDown,19,38); // Channel DOWN delay(100); irsend.sendNEC (0x4B40837C,32); //Arrow Down Net/USB mode delay(100); /*irsend.sendNEC (0xB489062B,32); //Arrow Down Cbl/Sat mode delay(40);*/ Serial.println("China Hat DOWN"); } //China hat switch RIGHT if(right.isPressed()){ irsend.sendNEC (0x4BB6A15E,32); //Arrow Right Net/USB mode delay(10); Serial.println("China Hat RIGHT"); } //China hat switch LEFT (EXIT/RETURN) if(left.isPressed()){ irsend.sendNEC (0x4B362AD5,32); //Return/back code (Net/USB mode) delay(10); irsend.sendNEC (0x4BB621DE,32); //Return/back code (Net/USB mode) delay(10); irsend.sendNEC (0x4B40619E,32); //Return/back code (Net/USB mode) delay(10); Serial.println("China Hat LEFT Back/Return"); } }