#define LED 13
#define CODIGO 16242856
#define INTERVALO 2000
long dato;
bool estado = false;
bool codigoValido = false;
unsigned long tiempoAnterior;
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0); // Recepción por interrupción 0 => Eso es en el pin 2
pinMode(LED, OUTPUT);
}
/*void loop() {
if (mySwitch.available()) {
dato = mySwitch.getReceivedValue();
mySwitch.resetAvailable();
}
if (dato == CODIGO){
dato = 0;
estado = !estado;
digitalWrite(LED,estado);
}
}*/
void loop() {
if (mySwitch.available()) {
dato = mySwitch.getReceivedValue();
mySwitch.resetAvailable();
}
if (dato == CODIGO) {
mySwitch.disableReceive();
codigoValido = true;
tiempoAnterior = millis();
dato = 0;
estado = !estado;
digitalWrite(LED, estado);
}
if (((millis() - tiempoAnterior) > INTERVALO) && (codigoValido == true)) {
codigoValido = false;
mySwitch.enableReceive(0);
}
}