0

I'm currently doing a project on an Arduino Uno. The project is based on receiving an IR Signal from an IR Remote and then based on the signal received, perform other operations.

The problem is that the signal gets reset every time. I want to store the value received from the IR Remote and then resets it if detects another pulse.

Here is my code :

int brojac = 0;
int pinData = 10;
unsigned long lengthHeader;
unsigned long bit;
int byteValue;
int vrime = 1000 ;
int storeValue = 0;

void setup()
{
 Serial.begin(9600);
 pinMode(pinData, INPUT);

}

void loop() {
 lengthHeader = pulseIn(pinData, LOW);
 if (lengthHeader > 1500)
 {
   for (int i = 1; i <= 32; i++) {
     bit = pulseIn(pinData, HIGH);

     if (i > 16 && i <= 24)
       if (bit > 1000)
         byteValue = byteValue + (1 << (i - 17));
   }
 }
 Serial.print("byteValue = ");
 Serial.println(byteValue);
 if(byteValue == 66){
   digitalWrite(11,HIGH);
 }
 else{
   digitalWrite(11,LOW);
 }
 delay(vrime);
 byteValue = 0;
 delay(250);

}

Shaam
  • 92
  • 13

1 Answers1

0

I got the answer by storing the value in a variable until a new variable is detected.

int pinData = 10;
int led = 11;
unsigned long lengthHeader;
unsigned long bit;
int byteValue;
int storeValue = 0;
int previousValue = 0;

void setup()
{
  Serial.begin(9600);
  pinMode(pinData, INPUT);
  pinMode(led, LOW);
}

void loop() {
  lengthHeader = pulseIn(pinData, LOW);
  if (lengthHeader > 1500)
  {
    for (int i = 1; i <= 32; i++) {
      bit = pulseIn(pinData, HIGH);

      if (i > 16 && i <= 24)
        if (bit > 1000)
          byteValue = byteValue + (1 << (i - 17));
    }
  }
Serial.print("byteValue = ");
Serial.println(byteValue);

  **storeValue = byteValue;
  if (storeValue != 0){
    previousValue = storeValue;
  }

  Serial.print("Previous value = ");
  Serial.println(previousValue);**
  byteValue = 0;
  delay(500);
}
Shaam
  • 92
  • 13