I wrote a code where while pressing 0,1,2,3 and 4 button on the IR adequate number of LEDs are turned on
#include <IRremote.h>
int IRpin=3;
IRrecv irrecv(IRpin);
decode_results results;
int LED1= 6;
int LED2= 8;
int LED3= 10;
int LED4= 12;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
}
void loop(){
if (irrecv.decode(&results)){
unsigned long read = results.value;
switch(read)
{
case 0xFF6897:
//Serial.println("0"); // button 0
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
break;
case 0xFF30CF:
//Serial.println("1"); // button 1
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
break;
case 0xFF18E7: // button 2
//Serial.println("2");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
break;
case 0xFF7A85: // button 3
//Serial.println("3");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, LOW);
break;
case 0xFF10EF: // button 4
//Serial.println("4");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
break;
}
}
{ Serial.println(results.value,HEX);
irrecv.resume();
}
delay(500);
}
This code is working properly but I have to include that unless button number 8 is pressed the program is not working and if it's pressed again then the whole program stops working and LEDs cannot be turned.( something like in power on/off button in a TV remote). I don't know how to do it because every time I try to include if statement before switch case like below or in another way none of the LED can be turned on. There's probably something missing in that if statement.
#include <IRremote.h>
int IRpin=3;
IRrecv irrecv(IRpin);
decode_results results;
int LED1= 6;
int LED2= 8;
int LED3= 10;
int LED4= 12;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
}
void loop(){
if (irrecv.decode(&results) ){
int sensorValue=0;
sensorValue = digitalRead(LED1);
sensorValue = digitalRead(LED2);
sensorValue = digitalRead(LED3);
sensorValue = digitalRead(LED4);
unsigned long read = results.value;
if (read==0xFF4AB5 ){ // if button number 8 is pressed
switch(read)
{
case 0xFF6897:
//Serial.println("0");
{digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
break;}
case 0xFF30CF:
//Serial.println("1");
{digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
break;}
case 0xFF18E7:
//Serial.println("2");
{digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
break;}
case 0xFF7A85:
//Serial.println("3");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, LOW);
break;
case 0xFF10EF:
//Serial.println("4");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
break;
}}
{ Serial.println(results.value,HEX);
irrecv.resume();
}
delay(500);
}}