Hola buenas, estoy iniciando en esto y necesito ayuda por favor, resulta que hice un circuito facil para aprender un poco y funciona bien pero tengo un problema con el codigo, hay tres leds y quiero que presionando un solo boton del control remoto pueda cambiar el led que esta encendido uno por uno, o sea si presiono se apaga el led 1 y se enciende el 2, si presiono denuevo se apaga ese y se enciende el 3 y así. disculpas si es que hay algo raro pero estoy aprendiendo recien.
#include <IRremote.h>
#define RECV_PIN 12
boolean led1;
boolean led2;
boolean led3;
boolean led4;
IRrecv irrecv(RECV_PIN);
decode_results results;
int modo = 0;
const int N=3;
void setup()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
led1=0;
pinMode(11,OUTPUT);
led2=0;
pinMode(10,OUTPUT);
led3=0;
pinMode(9,OUTPUT);
led4=0;
irrecv.enableIRIn();
}
void loop(){
if (irrecv.decode(&results))
{
Serial.print("Codigo: 0x") ;
Serial.println(results.value,HEX) ;
//Comprobamos si es la TECLA 1
if(results.value==0xE0E040BF)
{
if(led1==0)
{
digitalWrite(11,HIGH);
led2=1;
digitalWrite(13,HIGH);
led1=1;
}
else
{
digitalWrite(13,LOW);
led1=0;
digitalWrite(11,LOW);
led2=0;
digitalWrite(10,LOW);
led3=0;
digitalWrite(9,LOW);
led4=0;
}
}
delay(100);
// aqui abajo es donde esta el problema
if(results.value==0xE0E048B7){
modo++;
modo = modo % N;
while(results.value==0xE0E048B7);
}
switch(modo){
case 1:
digitalWrite(13,HIGH);
led1=1;
digitalWrite(11,LOW);
led2=0;
digitalWrite(10,HIGH);
led3=1;
digitalWrite(9,LOW);
led4=0;
break;
case 2:
digitalWrite(13,HIGH);
led1=1;
digitalWrite(11,LOW);
led2=0;
digitalWrite(10,LOW);
led3=0;
digitalWrite(9,HIGH);
led4=1;
break;
case 3:
digitalWrite(13,HIGH);
led1=1;
digitalWrite(11,HIGH);
led2=1;
digitalWrite(10,LOW);
led3=0;
digitalWrite(9,LOW);
led4=0;
break;
}
delay(100);
irrecv.resume();
}
}
Gracias!