Quiero automatizar avanico y foco, pero no puedo :(

quiero hacer que con un aplauso prenda el foco de mi casa y que con un boton de un control prenda el avanico y pues tambien el foco… y que cuando el foco este prendido se prenda un led verde, y cuando el avanico este prendido un led rojo…

todo lo he hecho que funcione menos los led, no estan bien cuadrados, pero no se que hacer en la programacion, ayudenme plis… (osea aveces cuando prendo el foco no se prende el led verde y lo mismo con el led del avanico…)

este es el programa:

#include <IRremote.h>
#define AVANICO_1 0xFF30CF //BOTON 1… BOTON 3: FF7A85
#define FOCO_1 0xFF18E7 //BOTON 2

int SENSOR_SONIDO = A0;
int RELE_FOCO = 3;
int RELE_AVANICO = 5;
int VALOR; //ESTBLECEMOS UN PAR DE VARIABLES
int ESTADO;
int LED_FOCO = 8;
int LED_AVANICO = 9;
int RECEPTOR = 6;

IRrecv irrecv(RECEPTOR); //INICIALIZAMOS RECEPTOR CODIG
decode_results codigo;
//////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
void setup (){
irrecv.enableIRIn();
pinMode(SENSOR_SONIDO, INPUT);
pinMode(RELE_FOCO, OUTPUT);
pinMode(LED_FOCO, OUTPUT);

digitalWrite(RELE_FOCO, HIGH);

}
/////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
void loop (){
if (irrecv.decode(&codigo)){
if (codigo.value == AVANICO_1){
digitalWrite(RELE_AVANICO, !digitalRead(RELE_AVANICO));
digitalWrite(LED_AVANICO, !digitalRead(LED_AVANICO));
}

if (codigo.value == FOCO_1)
digitalWrite(RELE_FOCO, !digitalRead(RELE_FOCO));
digitalWrite(LED_FOCO, !digitalRead(LED_FOCO));

irrecv.resume();
}
//////////////////////////////////////////////////////////////////
if(analogRead(SENSOR_SONIDO) > 538) {
digitalWrite(RELE_FOCO, !digitalRead(RELE_FOCO));
digitalWrite(LED_FOCO, !digitalRead(LED_FOCO));
delay(1000);

}
}

Moderador
Por favor edita tu post usando etiquetas de código.

Normas del foro