user15807994
user15807994

Reputation:

Ir code not changing commands when I click the next button on the remote

I am building an IR controlled helicopter with Arduino and the code works, but when I click the next button for the helicopter to move somewhere else, it keeps printing the same thing in the serial monitor and the command does not change... Can someone please help me? Here is my code:

#include <IRremote.h>
#define in1 6
#define in2 7
#define in3 4
#define in4 5

int IR_RECEIVE_PIN = 2;
IRrecv IrReceiver(IR_RECEIVE_PIN);
decode_results results;

void setup(){
Serial.begin(9600);
IrReceiver.enableIRIn();

pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void loop(){
if(IrReceiver.decode(&results))
switch (results.value) {

case 0xFFA857:
Serial.println("case: UP");
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
break;

case 0xFFE01F:
Serial.println("case: DOWN");
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
break;

case 0xFF18E7:
Serial.println("case: FORWARD");
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
break;

case 0xFF10EF:
Serial.println("case: LEFT");
break;

case 0xFF5AA5:
Serial.println("case: RIGHT");
break;

case 0xFF48B5:
Serial.println("case: BACKWARDS");
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
break;

}



Serial.println(results.value, HEX);
IrReceiver.resume();
}

Upvotes: 2

Views: 49

Answers (1)

Nino
Nino

Reputation: 707

Try to run the code with curly brackets on the if:

#include <IRremote.h>
#define in1 6
#define in2 7
#define in3 4
#define in4 5

int IR_RECEIVE_PIN = 2;
IRrecv IrReceiver(IR_RECEIVE_PIN);
decode_results results;

void setup() {
  Serial.begin(9600);
  IrReceiver.enableIRIn();

  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
}
void loop() {
  if (IrReceiver.decode(&results)) {
    switch (results.value) {

      case 0xFFA857:
        Serial.println("case: UP");
        digitalWrite(in1, HIGH);
        digitalWrite(in2, LOW);
        break;

      case 0xFFE01F:
        Serial.println("case: DOWN");
        digitalWrite(in1, LOW);
        digitalWrite(in2, LOW);
        break;

      case 0xFF18E7:
        Serial.println("case: FORWARD");
        digitalWrite(in3, HIGH);
        digitalWrite(in4, LOW);
        break;

      case 0xFF10EF:
        Serial.println("case: LEFT");
        break;

      case 0xFF5AA5:
        Serial.println("case: RIGHT");
        break;

      case 0xFF48B5:
        Serial.println("case: BACKWARDS");
        digitalWrite(in3, LOW);
        digitalWrite(in4, HIGH);
        break;
    }

    Serial.println(results.value, HEX);
    IrReceiver.resume();
  }
}

Upvotes: 1

Related Questions