IR LED is transmitting for indefinite period

Hi

I am sending IR signal using Arduino UNO board. The problem I am having is it is transmitting for indefinite period. Can anyone help me how can I fix this problem.

My Arduino code:

int IRledPin = 13; // LED connected to digital pin 13

void setup() {
// initialize the IR digital pin as an output:
pinMode(IRledPin, OUTPUT);
Serial.begin(9600);
}

void loop()
{
Serial.println("Sending IR signal");
SendchannelA();
delay(1000);
}

void pulseIR(long microsecs) {

cli(); // this turns off any background interrupts

while (microsecs > 0) {
// 38 kHz is about 13 microseconds high and 13 microseconds low
digitalWrite(IRledPin, HIGH);
delayMicroseconds(8);
digitalWrite(IRledPin, LOW);
delayMicroseconds(8);

// so 26 microseconds altogether
microsecs -= 26;
}

sei(); // this turns them back on
}

void SendchannelA() {

pulseIR(1553);
delayMicroseconds(335);
pulseIR(771);
delayMicroseconds(335);
pulseIR(771);
delayMicroseconds(335);
pulseIR(771);
delayMicroseconds(335);
pulseIR(771);
delayMicroseconds(335);
pulseIR(771);
delayMicroseconds(335);
pulseIR(771);
delayMicroseconds(335);
pulseIR(771);
delayMicroseconds(335);
pulseIR(771);
delayMicroseconds(335);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(771);
delayMicroseconds(335);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(771);
delayMicroseconds(335);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(301);
delayMicroseconds(264);
pulseIR(771);
delayMicroseconds(335);
pulseIR(301);
delayMicroseconds(264);
pulseIR(771);
delayMicroseconds(335);
pulseIR(301);
delayMicroseconds(264);

}

The problem I am having is it is transmitting for indefinite period.

You've told it to? This loop infinitely cycles and pulses your IR pins.

void loop()                     
{
  Serial.println("Sending IR signal");
  SendchannelA();
  delay(1000);
}

When posting your sketches, always use the </> icon found in the posting menu.

Sorry. I aplogise. Here is my code.

int IRledPin =  13;    // LED connected to digital pin 13
 
void setup()   {                
  // initialize the IR digital pin as an output:
  pinMode(IRledPin, OUTPUT);      
  Serial.begin(9600);
}
 
void loop()                     
{
  Serial.println("Sending IR signal");
  SendchannelA();
  delay(1000);
}
 
void pulseIR(long microsecs) {
  
  cli();  // this turns off any background interrupts
 
  while (microsecs > 0) {
    // 38 kHz is about 13 microseconds high and 13 microseconds low
   digitalWrite(IRledPin, HIGH);  
   delayMicroseconds(8);         
   digitalWrite(IRledPin, LOW);   
   delayMicroseconds(8);         
 
   // so 26 microseconds altogether
   microsecs -= 26;
  }
 
  sei();  // this turns them back on
}
 
void SendchannelA() {
  
 pulseIR(1553);
  delayMicroseconds(335);
  pulseIR(771);
  delayMicroseconds(335);
  pulseIR(771);
  delayMicroseconds(335);
  pulseIR(771);
  delayMicroseconds(335);
  pulseIR(771);
  delayMicroseconds(335);
  pulseIR(771);
  delayMicroseconds(335);
  pulseIR(771);
  delayMicroseconds(335);
  pulseIR(771);
  delayMicroseconds(335);
  pulseIR(771);
  delayMicroseconds(335);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(771);
  delayMicroseconds(335);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(771);
  delayMicroseconds(335);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(301);
  delayMicroseconds(264);
   pulseIR(771);
  delayMicroseconds(335);
 pulseIR(301);
  delayMicroseconds(264);
 pulseIR(771);
  delayMicroseconds(335);
 pulseIR(301);
  delayMicroseconds(264);
  
  
}

can someone help me ?

Did you read reply #1?