Problema con ricevitore 433 Mhz

Buongiorno, sto provando a stilare uno sketch che deve accendere un led per 2"
e poi si deve spegnere definitivamente, naturalmente con trasmettitore spento.
Riceve bene ed accende il led, ma anche se spengo il trasmettitore il led lampeggia.
Come si vede in foto, appena accedo il trasmettitore vede il codice, lo spengo subito
ma continua a prenderlo in considerazione.
Come se memorizzasse il codice per poi restituirlo a "value", ma dove?
Cosa mi consigliate?

Grazie

#include <RCSwitch.h>
long value = 0;
int led = 12;
RCSwitch mySwitch = RCSwitch();
void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on interrupt 0 => that is pin #2;
  pinMode(12, OUTPUT);
  digitalWrite(led, LOW);
}
void loop() {

  if (mySwitch.available()) {
    value  = mySwitch.getReceivedValue();
  }

  if (value == 1234) {
    digitalWrite(led, HIGH);//si accende sempre anche con trasmettitore spento
    Serial.println(value); //stampa il codice  "1234"
    delay(2000);
  }

  digitalWrite(led, LOW); //spengo il led
  value = 0;             //forzo il valore a "0"
  Serial.println(value);// stampa "0"
  delay(2000);//resta spento 2"
}
Metti 
value = 0;             //forzo il valore a "0"
Dopo
delay(2000);
in 
if (value == 1234) {

Arco_500:

Metti 

value = 0;             //forzo il valore a "0"
Dopo
delay(2000);

Fatto, ma non cambia nulla, e come se il codice sia rimasto memorizzato
e venga riassegnato a "value".

Se guardi un semplice esempio della libreria:

usa il comando mySwitch.resetAvailable();

#include <RCSwitch.h>

long value = 0;
const byte LED = 12;
RCSwitch mySwitch = RCSwitch();

void setup()
{ Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on interrupt 0 => that is pin #2;
  pinMode(LED, OUTPUT);
  digitalWrite(LED, LOW);
}

void loop() 
{
  if (mySwitch.available()) 
  { value  = mySwitch.getReceivedValue();
    if (value == 1234) 
    { digitalWrite(LED, HIGH);    //si accende sempre anche con trasmettitore spento
      Serial.println(value);      //stampa il codice  "1234"
      delay(2000);
      digitalWrite(LED, LOW);     //spengo il led
      value = 0;                  //forzo il valore a "0"
      Serial.println(value);      //stampa "0"
      delay(2000);                //resta spento 2"
    }
    mySwitch.resetAvailable();
  }
}

Ok, grazie funziona. :slight_smile: +1

Ma ancora non ho finito, illustro il progetto completo:
Voglio che all'accensione del trasmettitore venga eccitato un relè
in un altra stanza, quando il trasmettitore viene spento
anche il relè sia diseccitato, ma va bene anche dopo 1/2 minuti.
Ma ancora non mi viene un'idea valida...se non ci riesco chiederò
un altro aiutino, ciao.