int IRledPin = 13; // LED connected to digital pin 13 const int buttonPin = 10; int previousButtonState = 0; int buttonState = 0; // The setup() method runs once, when the sketch starts void setup() { // initialize the IR digital pin as an output: pinMode(IRledPin, OUTPUT); pinMode(buttonPin, INPUT); Serial.begin(9600); } void loop() { buttonState = digitalRead(buttonPin); if(buttonState != previousButtonState){ if(buttonState == HIGH){ //Sends the code every time the button is pressed. SendChannelUpCode(); } } previousButtonState = buttonState; } // This procedure sends a 38KHz pulse to the IRledPin // for a certain # of microseconds. We'll use this whenever we need to send codes void pulseIR(long microsecs) { // we'll count down from the number of microseconds we are told to wait cli(); // this turns off any background interrupts while (microsecs > 0) { // 38 kHz is about 13 microseconds high and 13 microseconds low digitalWrite(IRledPin, HIGH); // this takes about 3 microseconds to happen delayMicroseconds(10); // hang out for 10 microseconds digitalWrite(IRledPin, LOW); // this also takes about 3 microseconds delayMicroseconds(10); // hang out for 10 microseconds // so 26 microseconds altogether microsecs -= 26; } sei(); // this turns them back on } void SendChannelUpCode() { // This is the code for the CHANNEL + for the TV COMCAST delayMicroseconds(56048 ); //Time off (LEFT column) pulseIR(9260); //Time on (RIGHT column) <-------DO NOT MIX THESE UP delayMicroseconds(4500 ); pulseIR(560 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(600 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(600 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(580 ); delayMicroseconds(1720 ); pulseIR(580 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(580 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(580 ); delayMicroseconds(580 ); pulseIR(560 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(1760 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(580 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(1720 ); pulseIR(580 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(600 ); pulseIR(560 ); delayMicroseconds(600 ); pulseIR(560 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(580 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(580 ); delayMicroseconds(580 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(580 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(1720 ); pulseIR(580 ); delayMicroseconds(39340 ); pulseIR(9260 ); delayMicroseconds(4500 ); pulseIR(560 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(600 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(580 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR( 580 ); delayMicroseconds(1720 ); pulseIR( 580 ); delayMicroseconds(1740 ); pulseIR( 560 ); delayMicroseconds(600 ); pulseIR( 560 ); delayMicroseconds(580 ); pulseIR( 580 ); delayMicroseconds(580 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(580 ); delayMicroseconds(1740 ); pulseIR( 560 ); delayMicroseconds(1740 ); pulseIR( 560 ); delayMicroseconds(1760 ); pulseIR( 560 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(1740 ); pulseIR(580 ); delayMicroseconds(580 ); pulseIR( 560 ); delayMicroseconds(580 ); pulseIR( 580 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(600 ); pulseIR(560 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(580 ); pulseIR(560 ); delayMicroseconds(1740 ); pulseIR(580 ); delayMicroseconds(580 ); pulseIR(580 ); delayMicroseconds(1720 ); pulseIR(580 ); delayMicroseconds(1740 ); pulseIR(560 ); delayMicroseconds(580); pulseIR(580 ); }