SparkFun Forums 

Where electronics enthusiasts find answers.

For the discussion of Arduino related topics.
By dezelec
#194627
I am trying to turn my TV on and off using a cloud server. I tried the code below and it works but I would like to integrate a Push button effect. For example, when a specific pin (Pushbutton) is HIGH, the function that turns the tv on and off should come into effect. Does anyone know how this can be done?

int IRledPin = 13;
int Pushbutton = 5;

void setup(void)
{
// Start Serial
Serial.begin(9600);
pinMode (IRledPin, OUTPUT);

}

void loop() {


SendChannelUpCode();

delay (10000);
}


// 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 downstairs TV COMCAST
delayMicroseconds(3568); //Time off (Left Column on serial monitor)
pulseIR(9240); //Time on (Right Column on serial monitor)
delayMicroseconds(4540);
pulseIR(600);
delayMicroseconds(540);
pulseIR(620);
delayMicroseconds(520);
pulseIR(620);
delayMicroseconds(540);
pulseIR(600);
delayMicroseconds(540);
pulseIR(620);
delayMicroseconds(520);
pulseIR(600);
delayMicroseconds(540);
pulseIR(620);
delayMicroseconds(1680);
pulseIR(600);
delayMicroseconds(540);
pulseIR(620);
delayMicroseconds(1680);
pulseIR(620);
delayMicroseconds(1660);
pulseIR(640);
delayMicroseconds(1660);
pulseIR(620);
delayMicroseconds(1680);
pulseIR(600);
delayMicroseconds(1680);
pulseIR(620);
delayMicroseconds(1680);
pulseIR(620);
delayMicroseconds(520);
pulseIR(620);
delayMicroseconds(1680);
pulseIR(600);
delayMicroseconds(540);
pulseIR(640);
delayMicroseconds(1660);
pulseIR(600);
delayMicroseconds(540);
pulseIR(620);
delayMicroseconds(520);
pulseIR(620);
delayMicroseconds(1680);
pulseIR(640);
delayMicroseconds(500);
pulseIR(620);
delayMicroseconds(540);
pulseIR(600);
delayMicroseconds(540);
pulseIR(600);
delayMicroseconds(1680);
pulseIR(620);
delayMicroseconds(540);
pulseIR(600);
delayMicroseconds(1680);
pulseIR(620);
delayMicroseconds(1680);
pulseIR(620);
delayMicroseconds(520);
pulseIR(620);
delayMicroseconds(1680);
pulseIR(620);
delayMicroseconds(1680);
pulseIR(600);
delayMicroseconds(1680);
pulseIR(620);
delayMicroseconds(40780);
pulseIR(9260);
delayMicroseconds(2240);
pulseIR(620);
delayMicroseconds(32624);
pulseIR(9240);
delayMicroseconds(2260);
pulseIR(600);
delayMicroseconds(32644);
pulseIR(9240);
delayMicroseconds(2260);
pulseIR(620);
delayMicroseconds(32624);
pulseIR(9240);
delayMicroseconds(2260);
pulseIR(600);
delayMicroseconds(32644);
pulseIR(9240);
delayMicroseconds(2260);
pulseIR(600);


}